Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor

[es] :: 3D programiranje :: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor
(TOP topic, by reject)
Strane: 1 2

[ Pregleda: 5450 | Odgovora: 33 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Reljam
Relja Markovic
Seattle, WA

Član broj: 531
Poruke: 1738
*.hsd1.wa.comcast.net.

Sajt: www.linkedin.com/in/relja..


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor08.06.2006. u 17:57
Hehe, stvarno dosta pitanja :)

Kod samog APIja, prakticno sve je jeftinije: razlog za to je nova arhitektura DX-a (neki cesti pozivi se sada izvrsavaju za manje od 100 ciklusa u d3d10core.dll-u), i nov drajver model (VDDM). Nov drajver model je inace razlog zbog cega je D3D10 samo namenjen za Vistu. Potrebni su novi drajveri da bi se ovo dobilo, i nov Microsoftov lejer u kernelu i user modu da bi ovo radilo.

Medjutim, glavni razlog zbog cega je D3D10 brzi od D3D9 je u fleksibilnosti samog API-ja. Primera radi, uveli smo ideju niza tekstura. Nizovi tekstura mogu da se zakace na obican texture slot (znaci ponasaju se kao da je jedna tekstura), ali su zato indexibilni iz shadera. To znaci da mozes da imas shader koji ce sam da bira koju teksturu da primeni na nekom objektu – ovo ranije nije bilo moguce. Samo ovom promenom se smanjuje broj neophodnih promena stanja.

Jos jedan primer je geometry shader: nov tip sejdera koji sedi izmedju VS i PS-a (dakle ide VS-GS-PS), i koji ‘vidi’ celu primitivu na kojoj radi, kao i njene susede. To znaci da neke kalkulacije mozes da uradis na nivou primitive umesto na nivou vertexa – eto ubrzanja od 3x. GS takodje moze da ispise proizvoljan broj primitiva, tako da mozes da napises GS koji uzima jednu tacku, i od nje generise sprajt (4 tacke). Ovim se dobija da mnogo manje podataka moras da saljes GPU-u kao i to da mozes da radis odredjene efekte kompletno na GPU-u: recimo particle systems, limitiran vid teselacije (posto vidis susede, mozes da ‘zaoblis’ trougao), itd.

Znaci na GS-u mozes da uradis efekte za koji su ti ranije bili potrebni dodatni pass-ovi ili racunanje na CPU-u.

Sada imamo i univerzalnost resursa – (skoro) svi D3D10 resursi su samo baferi, koji se onda kastuju u Vertex Buffers, Index Buffers, teksture, itd. GS moze opcionalno da upisuje podatke u neki drugi D3D10 resurs, i da onda taj drugi resurs ponovo provuce kroz pipeline. Znaci mozes da napises GS koji ce da ispuni VB i IB, i da onda ta dva ponovo provuces kroz pipeline – i to bez ikakve interkacije sa procesora (!). Ovo ti je instancing on steroids :)

Eto nama nekoliko pasova manje, i vise slobodnog CPU vremena, dakle igra radi brze. :)

Imamo nov shader model (4.0) koji omogucuje jos opstije shadere, prakticno bez limitacije duzine, sa jaaako dobrim flow controlom i branchingom, tako da ono sto si ranije radio u gomili sitnih shadera, sada mozes da uradis u jednom shaderu sa if / for petljama.
Problem specijalizacije shadera je i dalje tu, i to upravo sada i razmatram za DX11 – nisam zadovoljan fragment linkerom, i preporucujem ti da ga ne koristis ako ne moras, ili da iskompajliras shadere unapred ako je moguce.

Apropos rendering sistema – deferred shading ili direct ili hibridni – D3D10 to ne zanima. Ovo je vise platforma na kojoj mozes da napravis sta god hoces. Sve ovo sto sam naveo gore moze da bude korisno za bilo koj pristup renderingu. Znaci ne postoji neki metod koji D3D10 inherentno preferira.

Zbog svih ovih promena, ocekuje se drasticna promena engine designa, ali to je naravno i neminovno kada se donosi ovoliko novih featurea. Ne kazem da ljudi moraju da promene engine, ali ako ih ne promene, njihova konkurencija koja odluci da koristi D3D10 ce mnogo bolje proci. Ako ti je neka uteha, svi gamedev-ovi sa kojima sam pricao (mi smo u redovnom kontaktu sa triple-A developerima, community je u stvari jako mali) su presrecni idejom da mogu da isprobaju nove algoritme. Uostalom na E3-u smo imali nekoliko interesantnih demoa :)

Unified shader achitecture je definitivno interesantna arhitektura, ali to je implementacioni detalj (D3D10 to ne zanima). Ako neki proizvodjac hardvera misli da ce mu kartica bolje raditi ako je unified ili ne, to je njihova stvar. Kapitalizam pobedjuje.

Availability novog hardvera – pogadjas da je ovo top secret informacija nasih partnera, tako da na to pitanje ne mogu nista da kazem. Nama je inace zabranjen trading firmi koje se bave grafikom iz ovakvih razloga :/

D3D10 on 360 – no comment. :)

Fallback – ne moze tehnicki da se izvede; D3D10 je suvise drugacije. D3D9 hardvera nema nista od onoga sto sam gore napisao. Drajveri ce morati da se prave i za D3D9 i D3D10, ali to je standardna stvar svaki put kada izadje nov D3D.

Transition time je malo teze predvideti ovaj put jer u igru ulazi Vista – sa jedne strane D3D10 je Vista only, ali sa druge strane ovo je prvi put da sam OS zahteva graficki hardver, tako da to moze da podigne adoption rate. Izlazak novog OSa takodje dosta povecava prodaju novih racunara… Moj licni ‘gut feeling’ je dve godine posle Vista releasea.

To je jedna zeznuta stvar sa radom na D3D-u: znas da sve sto radis jeste interesantno, ali ce proci mnoogo dugo pre nego sto postane mainstream. Zavrsis proizvod i onda cekas dve godine. Ali, bice, bice… :)
08.06.2006. u 17:57 

Filip Strugar
Filip Strugar
Nottingham, UK

Član broj: 9871
Poruke: 327
...52.130.235.dc.telemach.net.

Sajt: www.frd.co.uk


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor08.06.2006. u 22:16
Ej, hvala na odgovorima!

Citat:
Medjutim, glavni razlog zbog cega je D3D10 brzi od D3D9 je u fleksibilnosti samog API-ja. Primera radi, uveli smo ideju niza tekstura. Nizovi tekstura mogu da se zakace na obican texture slot (znaci ponasaju se kao da je jedna tekstura), ali su zato indexibilni iz shadera. To znaci da mozes da imas shader koji ce sam da bira koju teksturu da primeni na nekom objektu – ovo ranije nije bilo moguce. Samo ovom promenom se smanjuje broj neophodnih promena stanja.


Uh, to je super, time mogu da se zbudze razne stvari - npr neka opasna tile-mapping tehnika - el to radi i u vertex i u pixel shaderima? (Da li je moguc texture sampling u GS-u? - da li je slucajno latency texture samplinga u VS-u manji ili je to do hardvera i mora tako?) Koliko maximum tekstura moze da se indeksira? Da li to vazi i za 3d texture, ili je to 'ispod haube' neka modifikacija samplinga 3d texture tako da je z zapravo index vise 2d texture-lejera?

Citat:
Znaci mozes da napises GS koji ce da ispuni VB i IB, i da onda ta dva ponovo provuces kroz pipeline – i to bez ikakve interkacije sa procesora (!). Ovo ti je instancing on steroids :)


Wow, super! To otvara raznorazne mogucnosti. Steta sto nemam mnogo prilike da radim rendering... bice do tada, valjda.. :)

i da, umalo da zaboravim, sta sta je bolje, opengl ili directx? ;)
08.06.2006. u 22:16 

Reljam
Relja Markovic
Seattle, WA

Član broj: 531
Poruke: 1738
*.microsoft.com.

Sajt: www.linkedin.com/in/relja..


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor08.06.2006. u 22:53
Semplovanje tekstura je dozvoljeno (brzina je implementacioni detalj) u sva tri shadera. Maksimalno mozes da indeksiras 128 tekstura po shaderu (PS-VS-GS), a svaki slot moze da sadrzi niz od do 512 tekstura. 3D teksture nisu nista specijalno.

A za OGL vs D3D10 - to je pitanje za advocacy. Mislim da je sa tehnicke strane sve dovoljno jasno :p

Cross postovacu ovo u 3D programiranje, mislim da i njih tamo ovo moze da zanima.
08.06.2006. u 22:53 

Filip Strugar
Filip Strugar
Nottingham, UK

Član broj: 9871
Poruke: 327
...52.130.235.dc.telemach.net.

Sajt: www.frd.co.uk


Profil

icon Re: Direct3D 10 - novosti u odnosu na D3D912.06.2006. u 21:28
Jos jedno pitanje!

Citat:
Sada imamo i univerzalnost resursa – (skoro) svi D3D10 resursi su samo baferi, koji se onda kastuju u Vertex Buffers, Index Buffers, teksture, itd.


Da li se svi mip-leveli texture cuvaju u tom jednom bufferu? Tojest, da li moras texturi assignovati buffere za svaki surface level ili moze sve odjednom?
12.06.2006. u 21:28 

Reljam
Relja Markovic
Seattle, WA

Član broj: 531
Poruke: 1738
*.microsoft.com.

Sajt: www.linkedin.com/in/relja..


Profil

icon Re: Direct3D 10 - novosti u odnosu na D3D912.06.2006. u 22:18
Svi mip leveli su u istom baferu. Znaci, velicina bafera je na primer 128*128 + 64*64 + 32*32 + .. + 1*1 * sizeof(texel) bajta. Ako zelis da updateujes samo jedan deo bafera, mozes i to.
12.06.2006. u 22:18 

bkaradzic
Branimir Karadžić
EA/Pandemic
Los Angeles, CA

Član broj: 14953
Poruke: 1543
67.151.201.*

Sajt: www.mercs2.com


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor27.06.2006. u 18:51
The People Behind DirectX 10—Part 1: Microsoft
http://www.extremetech.com/article2/0,1697,1982041,00.asp
27.06.2006. u 18:51 

isatche
Ivan Isakovic
Graficki/web dizajner
Beograd

Član broj: 36962
Poruke: 5
62.193.143.*



Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor29.06.2006. u 22:57
Relja, hvala ti MNOGO na vise nego opsirnom odgovoru!
Seize that cursed wizard before he cast a spell
29.06.2006. u 22:57 

bkaradzic
Branimir Karadžić
EA/Pandemic
Los Angeles, CA

Član broj: 14953
Poruke: 1543
*.hsd1.ca.comcast.net.

Sajt: www.mercs2.com


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor18.08.2006. u 06:12
DX10 hype:
http://blogs.technet.com/windowsvista/articles/447226.aspx
18.08.2006. u 06:12 

camp
Ne mogu da trijangulisem!

Član broj: 8291
Poruke: 67
168.120.17.*

Sajt: Vid je dobar jos uvek


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor09.10.2006. u 09:12
ja planiram da pocenm da ucim dx9, studiram trenutno, ima li smisla uciti ga ako ce dx10 da izadje i verovatno ce biti drasticnih izmena u sintaksi i principima "crtanja" linija na ekranu, dodavanje extra fx... i uopste toga sto je pisan iz pocetka, znaci li to da ce sve biti drugacije i da bi trebalo da sacekam dx10 tutorijale i knjige ili? jer planirao bih da naucim to, ali ne bih da gubim vreme sa necim sto ce biti obsoletno posto bih mogao da naucim neke druge stvari koje bi mi mogle koristiti vise, itd?
09.10.2006. u 09:12 

tosa
Miloš Tošić
上海,中国

Moderator
Član broj: 1811
Poruke: 1238
*.ubisoft.com.cn.

Sajt: www.EndWarGame.com


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor09.10.2006. u 11:22
Šta god da naučiš, imaće svoju primenu kasnije. To je neki generalni savet...
DX9? Možeš da ga učiš, biće koristan ako budeš učio DX10. U stvari, možeš da učiš i DX8 pa i starije...
API postaju moćniji u smislu što omogućavaju da se urade stvari koje su ranije bile nemoguće na
isti/sličan način. DX10 će ti omogućiti da napraviš efekte koji nisu bili mogući sa DX9 i ranijima, ali
to ti nije ni malo bitno ako ne razumeš teorijsku osnovu tih efekata.
Dakle slobodno uči šta god ti padne pod ruke :)

Soylent green: over 6 billion served!
09.10.2006. u 11:22 

yooyo
Centroid / Technical director

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor12.10.2006. u 10:20
Jel moze neko da kaze kako se DX10 snalazi u SLI modovima? Da li postoji podesavanje GPU afiniteta? Npr.. da li je moguce da biram koje cu draw pozoive da radim na GPU1, a koje na GPU2. Ovo bi moglo korisno za rendering shadow mapa scene dok drugi GPU renderuje ostatak.

12.10.2006. u 10:20 

tosa
Miloš Tošić
上海,中国

Moderator
Član broj: 1811
Poruke: 1238
*.ubisoft.com.cn.

Sajt: www.EndWarGame.com


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor12.10.2006. u 11:34
Nisam siguran koliko je to ok rešenje. Shadow mapa će se, sve jedno, izrenderovati drastično brže od ostatka scene.
Budući da si hteo da radiš rendering scene i shadow mape paralelno, pretpostavljam da je shadow mapa jedan frejm unapred?
Ako je to slučaj, već imaš optimalno rešenje za shadow mapu. Generalno će GPU morati da čeka da se rendering
shadow mape završi da bi je bindovao kao teksturu i tu nastaje stall. Sa renderingom senke unapred možeš mnogo
ubrzati stvari, meni je zbog ovakvog scenarija FPS jednom skočio tri puta i aplikacija je iz GPU prešla u CPU bound!
Dakle stari dobri double buffer je zakon :)
SLI bih ostavio da sam "mozga" šta treba da radi, stvari počinju preterano da se komplikuju sa svim tim inovacijama hardware-a...

Soylent green: over 6 billion served!
12.10.2006. u 11:34 

yooyo
Centroid / Technical director

Član broj: 4891
Poruke: 1101
*.dynamic.sbb.co.yu.



Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor12.10.2006. u 12:13
Ovo sa shadow mapom je samo jedan od primera. To moze da se koristi i u druge svrhe...

Ovo me interesuje jer NVidia planira da izbaci OGL extenziju koja regulise GPU afinintet tako da mozes da balansiras load GPU-a iz aplikacije. Obzirom na to da je SLI/Crossfire vec dugo na sceni cudi me da DX10 tim nije uzeo i ovo u obzir.
12.10.2006. u 12:13 

bkaradzic
Branimir Karadžić
EA/Pandemic
Los Angeles, CA

Član broj: 14953
Poruke: 1543
67.151.201.*

Sajt: www.mercs2.com


Profil

icon Re: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor14.12.2006. u 18:39
December 2006 DirectX SDK Downloads
http://msdn.microsoft.com/directx/sdk/

14.12.2006. u 18:39 

[es] :: 3D programiranje :: izlazi DX10 i poteze neka pitanja na koje bih zeleo odgovor
(TOP topic, by reject)
Strane: 1 2

[ Pregleda: 5450 | Odgovora: 33 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.