» »

DX 9 vs. DX 10

DX 9 vs. DX 10

1
2
»

Izi ::

Senitelu, hvala za pojasnila glede grafike.

Drugače pa ne vem kje je kdo omenil, da je DX10 nateg ?
Omenja se samo, da smo vse grafične efekte že videli in da DX10 ne bo nekaj revolucionarnega iz gledišča igričarja.
Za programiranje bo lažji in zadeve bodo tekle hitreje. Lepo.
Jaz sem samo namigoval, da zaradi DX10 igre ne bodo prav nič lepše. Nekateri namreč pričakujejo, da se bo videlo ali goniš DX9 ali DX10 že od daleč, kar pa ni res.

Jasno pa je, da bo moja naslednja grafična kartica imela DX10 podporo. O tem sploh ni dileme. Ta trenutek kupovati grafično ki ne podpira DX10 je po moje nespametno dejanje.

Zgodovina sprememb…

  • premaknilo od: STASI ()

simnov ::

saj pri cmr dirt je tudi razlika opazna če igraš v visti oziroma v xp samo je pa directx 10 tudi veliko bolj požrešen.

Zgodovina sprememb…

  • premaknilo od: STASI ()

_Enterprise_ ::

Senitel:

Stalkerjev pogon temelji na DirectX8.1

x800xt:

DiRT ne poganja DX 10, tako, da, če je razlika, ta ni zaradi tega


Pa ja, sej vem kako deluje renderiranje ja... Efekte DX20 že zdaj poznamo. Kako? 3DS Max, Cinema 4D, ...

Tile programi res nudijo uber efekte (recimo, da od DX20) in v tem tudi tekmujejo, fora je v tem, da so strašansko počasni.

Primer:

V Cinemi 4D dam na preprost bel pravokotnik kroglo. Izklopim AA. Dam na renderirat na 800 X 600. Render time? 0.2 sekunde na 2-jedrnem procu. 5 FPS. Da ne govorimo, ko vklopiš sence, kaj šele, ko ti more preračunavat photone. Takrat znaša render tudi po več ur.

Zgodovina sprememb…

  • premaknilo od: STASI ()

Mavrik ::

Hja, a misliš da bi bilo renderiranje poligonov na procesorju kaj hitrejše? 3D programi uporabljajo večinoma Raytracing z precej več podrobnosti kot igre. Če bi mel raytracing čip, bi zadeva bila opazno hitrejša.
The truth is rarely pure and never simple.

Zgodovina sprememb…

  • premaknilo od: STASI ()

Senitel ::

Če so programerji začel pisat engine na DX 8.1 to niti približno ne pomeni, da je DX 8.1 osnova. Kot sem že omenil, osnovne ideje (deferred rendering) Stalkerjevega pogona NI MOGOČE implementirat v D3D8. Stalkerjev pogon temelji na DX 8.1 toliko kot temelji Airbus A380 na letalcu bratov Wright (beri: da tudi v DX 8.1 je mogoče izrisovati grafiko ampak deferred renderinga pač ne moreš naredit). :\

Cinema4D, Maya, 3DS Max in tudi famozni Renderman niso več to kar bo možno v DX20... Vse to kar naredi Renderman se da narediti že danes v DX10. Algoritmi, ki se uporabljajo v real time grafiki so že zelo blizu in v nekaterih primerih enaki tistim, ki se uporabljajo v high end filemski produkciji. Z nekaj zelo velikimi razlikami, ki jih igre ne bodo NIKOLI premostile: 1. filmski studijo si lahko privošči renderiranje določenih slikic bistveno dlje časa (recimo eno uro) z računsko močjo, ki je omejena samo s proračunom filma (gruče CPU/GPU-jev, ki lahko nesejo katero koli rešitev za končnega uporabnika scat). 2. filmski studiji tudi točno vedo iz katerega zornega kota bodo gledalci videli določen prizor in se lahko temu prilagodijo. 3. trenutno največja prednost filmskih studijev ni to, da uporabljajo ray tracing ali global illumination (da, to ni eno in isto in ray tracing ne reši vseh problemov vključno z lakoto v afriki in globalnim segrevanjem...), ampak v tem, da si enostavno lahko privoščijo zarenderirat vsako piko 100 in večkrat, da se lahko igrajo kolikor jim paše z teksturirnimi filtri (če ena tekstura izgleda grdo, lahko dejansko napišeš svoj "aniso" filter samo za to teksturo).

Raytracing ni rešitev za vse... Tudi filmi ne uporabljajo samo raytracinga. Ni niti najmanjšega razloga, da bi recimo na GPU-jih šli iz scanline renderiranja (kar počnejo že vse od Voodoo 1) na ray tracing. To ne pomeni, da ray tracing nima smisla, ampak pomeni, da bodo GPU-ji eventuelno streljali žarke po tistem, ko je pika že zrenderirana (torej v pixel shaderju).

Zgodovina sprememb…

  • premaknilo od: STASI ()

Meizu ::

Hej, a mi lahkoSentinel sam nekaj obrazložiš, ker zdej sm se ob branju čisto zares zmedel. Nekaj postov višje se je omenilo, da majo DX10 karte močnejši GPU in zato ne žerejo tolko proca. A potem, če jst navijem GPU grafe, potem vedno manj obremenjujem proc, al kako?

Prosim za obrazlago...:8)

Zgodovina sprememb…

  • premaknilo od: STASI ()

TechBeats ::

Pa še to se ne sme pozabit, da bomo lahko u dx10 vse pogosteje vidl karakterje z pravimi lasmi ne pa eno 2d texturo nalimano na glavo, ker se trenutna dx9 tesselacija las izvaja izkljčuno na cpuju ( in zato ni vidt nobenih 3d las v dx9, ker je preveč cpu požrena zadeva), v dx10 pa se vse izvaja na grafični, pa še oblačila, tekočina dim,... Tko da bo vse kakor bolj interaktivni dx10 kot 9 pa še hitrejši bo v vseh pogledih.

Aja pa pr stalkerju je ta dynamic lightning zato tolk požrešen, ker spet dx9 ne more prebavt oz. ni tako zoptimiziran da ves breme prenese na grafično in more zato cpu izvajat vse te lightning efekte (cikle), kar bi u dx10 lahko vse to opravila grafična in bi bila spet pohitritev špilke, na račun dx10. Zdej nevem, za stalkerja 100% če se res ves ta lightning izvaja na cpuju sam nek sem prebrau da je full dynamic lightning glih cpu bound, in ubistvu iz tega sklepam da je tko kor sm napisu.

edit:
kle imate na dolgo in široko, napisano dx10 in geforce8 arhitekturo in kaj je zmožna.
DX10
geforce 8 arhitektura
hehe, prijetno branje :D
AciD TriP

Zgodovina sprememb…

  • premaknilo od: STASI ()

Senitel ::

Magarac: Ne! DX10 je bolj učinkovit API, kar pomeni, da če igra naredi recimo 20000 klicev za posamezno slikico v D3D9 zna to že precej obremenit CPU. D3D10 je glede tega bistveno hitrejši (tudi do 10x) in posledično bo za 20000 klicev porabil bistveno manj CPU časa (torej do 10x manj). Ob koncu dneva D3D10 igre potrebujejo bistveno manj CPU ciklov, da GPU-ju povedo kaj hočejo narisat in posledično lahko izrišejo več stvari ali pa porabijo ta CPU čas za kaj drugega. Poglej si D3D10 pdf na linku od DiGiTaL DopE stran 9 oni graf...

DiGiTaL DopE:
Prvi problem: Za renderiranje las sploh ne potrebuješ teselacije. Igra lahko povsem enostavno pride že z na DVD zapečeno geometrijo za lase, ki jo potem vertex shaderji animirajo. Problem ob tem je, da postane zadeva enormno požrešna po vertex shaderjih (in zelo neoptimalna v pixel shaderjih), ali pa ne zgleda cool.
Drugi problem: CPU v Stalkerju niti približno ne izvaja vseh lighting efektov. Kaj ko bi še enkrat prebral tisto?

Zgodovina sprememb…

  • premaknilo od: STASI ()

_Enterprise_ ::

Ja, jest sem povedu samo, da to, kar so zmožni poganjat tele 3D programi bo se dogajalo čez 10 let v igrah. S tem mislim lase(dlako), obleke, tekočino in to. Vse, kar morejo narest je, da nardijo DX primeren za to pa grafe primerne za to.

Zgodovina sprememb…

  • premaknilo od: STASI ()

Senitel ::

DX je primeren za to, grafe tudi, samo hitrost je daleč od primerne...

Zgodovina sprememb…

  • premaknilo od: STASI ()

TechBeats ::

Ok zakj pa piše potem to v zvezi z teselacijo?

With DirectX 9, the physics simulation of the hair is performed on the CPU. Interpolation and tessellation of the control points of the individual hairs in the physics simulation is also performed by the CPU. Next, the hairs must be written to memory and copied to the GPU, where they can finally be rendered. The reason we don’t see very realistic hair with DirectX 9 games is that it’s simply too CPU-intensive to create, and developers can’t afford to spend huge amounts of CPU cycles just creating and animating hair at the expense of other more important game play objects and functions.


Algorithm
GeForce 7 Series / GeForce 8 Series
Physical simulation on control points
CPU / GPU
Interpolate and tessellate control points
CPU / GPU – GS
Save tessellated hairs to memory
CPU / GPU – SO
Render hair to deep shadow map
GPU / GPU
Render hair to back buffer
GPU / GPU

Aja, pa sej kokr sm vidu ima tud nvidija podobno teselacijo kot ATI,

Displacement Mapping with Tessellation
The geometry shader will finally allow generalized displacement mapping on the
GPU. Displacement mapping is a popular technique used in offline rendering
systems that allows very complex models to be rendered using a simple model and
special textures called height maps. A height map is a grayscale texture that expresses
the height of vertices at each point in the model. During rendering, the low-polygon
model is tessellated with additional polygons and, based on information encoded in
the height map, the polygons are extruded to give the representation of the full
detailed model.
Since no part of the GPU could generate additional data in DirectX 9, the lowpolygon
model could not be tessellated. Hence only a limited implementation of
displacement mapping was possible. Now with DirectX 10 and the power of the
GeForce 8800 GTX, thousands of additional vertices can be generated on the fly,
allowing true displacement mapping with tessellation to be rendered in real time.


Lol, ok smo že kr dost off topic klele, back to Crysis:D
AciD TriP

Zgodovina sprememb…

  • premaknilo od: STASI ()

OChack ::

DX10 je vsaj v tem trenutku do neke mere metanje denarja stran oziroma da se zacne nova tehnologija prodajat, ceproav po mojem mnenju y danasnimi dx10 karticami dx10 igre ne bojo ravno hudo letele
Int€l inside, IDIOT Outside

Zgodovina sprememb…

  • premaknilo od: STASI ()

Senitel ::

DiGiTaL DopE: Ja stvari se da lotiti na več načinov... Jaz se ne bi lotil las tako kot je tamle opisano. Sicer pa tudi ta teselacija pri NVIDI-ji ni isto kot pri ATI-ju, ker spet lahko delaš to na več načinov.

Zgodovina sprememb…

stock ::

Na prerjšnji strani je bilo napisano, da v DX10 lahko za razliko od DX9 nariše le eno teksturo in jo nato pomnoži. To uzame manj časa -uwalla že mamo prednost u DX10 -MY ASS. zakaj se tega ni nekdo že prej spomnu?? in bi blo to že u DX9.. pa ceu napredek te industrije je zanalašč tolk počasn da se nabere največ denarja... komot bi bli špili DX8 -osebno so mi bli špili takrat še najbolši...

Sam hočm poudart, da za to kar ponuja DX10 ne rabimo mi sploh nobene nadgradnje... hardwerske kot softwerske... sam so oni tko nardil, da ne dela! -Kao DX10 nimožn na XPjih -my ass. še kako bi se dal..

LP

Senitel ::

Eno teksturo in jo nato pomnoži? Kaj naj bi to pomenilo? Pomnoži s čim?
Seveda bi bil lahko DX10 bil za WinXP, bi pa to pomenilo ali da se bi bilo potrebno odpovedat efektivnemu API-ju, ali pa izdat zelo obsežen service pack za WinXP, ki bi zamenjal cel kernel (in sesu milijon cel kup obstoječih stvari ter letu ali dveh beta testiranja).

stock ::

Ja nevek kaj tisto teksturo to si ti neki pisu na uni strani, tun nism šteku lih...

Pa tudi hardwersko bi se dalo to poganjat brezda na grafični piše DX10, samo je to spet ena marketniška poteza..

jeryslo ::

lol stock, posluši kaj piše Senitel, DX10 bi za winxp bil potrata, ker bi s sabo potegnu preveč sprememb v samem jedru OS. Še enkrat preberi vse Senitel-ove poste o DX10, ker je mislim da verjetno edini, ki ve kako deluje in gre stvar.

stock ::

Ali pa edini, ki te vleče za nos?;) Service Pack nebi biu glih nevem kako obsežen (Beri: manj obsežen kot cela Vista!) in tako nam nebi bilo potrebno nadgrajevati tako softwera kot hardwera. Lahko bi naredili ta SP-DX10 plačljiv...npr. 15€ in evoga!

Pa brez zamere (Senitel)..
samo zadnje čase sem malo nagnjen k prepričanju, da kolior majhen je napredek (v hardweru kot softweru) je velik nateg.

lp

destroyer2k ::

stock

Vista je 60% čist drugače nareta zaradi dx10 od xp-ja tak da ne rečit da nebi biv obsežen.

Senitel ::

Kot sem rekel: ali bi se bilo potrebno odpovedati glavni prednosti DX10 (čist in učinkovit API) ali pa bi bilo potrebno spremeniti driver level v kernelu od WinXP. Definitivno bi bila zadeva bistveno manj obsežna kot Vista (glede velikosti potrebnega popravka v MB), ampak bistveno bolj občutljiva! V bistvu bi iz WinXP naredil Visto, kar se situacije z driverji tiče. Ne rečem, da je to optimalna rešitev ampak se je MS pač tako odločil. Po mojem ko bodo začele resne DirectX 10 igre hodit ven to ne bo več noben problem. Še vedno je možnost, da se bo kdo spravil DX10 wrapat čez OpenGL v WinXP...

Napredek tako kar se GPU-jev tiče kot samega API-ja je očiten. Ampak očitno nisi prebral enega mojih prejšnjih komentarjev. Potrebno je razmišljati o novih algoritmih. Razmišljanje da bo raytracing rešil vse probleme je zgrešeno. Kolikšna pa je razlika recimo med Shrek 1 in Shrek 3? Kaj pa ko Shreka primerjaš z Toy Story? Kaj pa recimo Core 2 Duo lahko izračuna več kot en star 80386?

Pa kje sem jaz kakšno kopiranje tekstur omenjal? Ne moreš kar kopirat stvari okrog... A tovarna avtomoobilov tud sestavi en avto in ga potem kopira al morajo vsakega posebej sestavit? Grafični lahko tako v DX9 kot v DX10 rečeš: "tu imaš drevo in milijon transformacij" in ti bo narisala milijon dreves. To ne prihrani čisto nič GPU časa, prihrani cel kup CPU časa (ker ni enega kupa klicev čez D3D), razlika med D3D9 in D3D10 je pa v tem, da v D3D10 lahko posamezne instance (posamezna drevesa) vmes spreminjaš (recimo da nimajo vsa drevesa iste teksture).

TechBeats ::

Torej the big question is, a bo DX10 zmožen recimo prikazat tako grafiko kot je v Shreku, to sm nekako pričakoval vendar, bolj ko gledam ta DX10 manj se mi zdi da je zmožen take grafike, ali pač?
AciD TriP

Zgodovina sprememb…

dzinks63 ::

:)) Ko bodo čez pet ali 10 let namizni računalniki tako zmogljivi, kot so danes profesionalne filmske grafične pastaje, takrat boš tudi doma imel tako grafiko na svojem PC. Saj bo , samo malo bo pa vendarle trebalo še počakati.

Senitel ::

DX10 recimo da ja, samo hardware ne... Pixar je recimo leta 2003 ( Klik) nadgradil svojo render farmo na 1024 Xenon 2.8GHz procesorjev. Vsak CPU ima recimo 5,6G flops računske moči in z 1024 procesorji to znese vsega skupaj 5734,4G flopsov. R600 ima maksimum 473,6G flopsov, G80 čez 345,6G flopsov. Torej imamo za real time danes še vedno več kot 10x manj flopsov kot Pixar leta 2003. Do konca leta bodo zunaj GPU-ji ki se bodo vrteli okrog 1000G flops, če štiri povežeš prideš že praktično do zmoglijvosti one render farme. Še vedno pa imaš problem da si Pixar na render farmi lahko vzame recimo 30 minut za render ene slikce medtem ko je v igrah že 30 milisekund (1800000x manj) komaj sprejemljivo. Upam da tole postavi celoten problem malce bolj v perspektivo. >:D
Še vseeno pa bodo developerji z DX10 vnesli v igre marsikaj novega, kar je bilo nemogoče v DX9.

Izi ::

Še vedno pa imaš problem da si Pixar na render farmi lahko vzame recimo 30 minut za render ene slikce medtem ko je v igrah že 30 milisekund (1800000x manj) komaj sprejemljivo.

Če se torej zmogljivosti računalnikov na vsaki 2 leti podvojijo lahko z nekaj matematike ugotovimo, da bomo čez približno 42 let že lahko v realnem času renderirali to za kar sedaj Pixar rabi po 30 minut na slikco.
Se pravi grafiko Shreka bomo v igrah dosegli čez 42 let :D Če se bo seveda računalništvo razvijalo tako hitro kot sedaj z konstantno hitrostjo tudi naprej.

Zgodovina sprememb…

  • spremenil: Izi ()

destroyer2k ::

Izi

42 let to mi nekam ne gre v glavo. Kak si dobil ti toliko let. Moreš računati tudi na novo tehniko grafične kot bo menda za 2 leti prišla fusion kartica. Tak da po mojem bo veliko hitreje.

Izi ::

Jaz sem že prav izračunal, glede na Senitelov izračun, da imamo 1.800.000-krat prepočasne računalnike, kar pa ni res. Senitelu matematika ne gre najbolje od rok >:D
Torej gremo od začetka.
Če danes rabimo 30 minut za eno slikico, to pomeni, da se slika Shrek kvalitete izdeluje 1800 sekund.
Mi pa rabimo 30 slik na sekundo, da bo to vse lepo teklo v realnem času kar pomeni 1800 x 30 = 54.000.
Se pravi, da so naši današnji računalniki prepočasni "samo" 54.000-krat.

Če smo velikodušni in vzamemo, da se hitrost računalnika podvoji na vsaki 2 leti (kar se ponavadi ne)
Potem bodo naši računalniki čez 2 leti samo še 27.000-krat prepočasni, čez 4 leta bodo še 13.500-krat prepočasni, čez 6 čet bodo 6750-krat prepočasni, čez 8 let bodo 3375-krat prepočasni, ..... , čez 30 let bodo 1,65-krat prepočasni in čez 31 let bomo dosegli tisto željeno hitrost.

Pravilno je torej, da bomo čez 31 let lahko Shreka renderirali v realnem času na naših domačih računalnikih.

Upam, da se nisem kje zmotil.
Naj kakšen diplomirani matematik preveri moj izračun :D

destroyer2k ::

Sam shrek je biv rendiran na cpu kar cpu je pa veliko bol počasen od gpu.

Senitel ::

Se posipam s pepelom, pozabil delit nakoncu. V zagovor povem, da je zame sprejemljivo 1000 fps. >:D

Tako da ja, ~54.000x prepočasno. Fusion? Kaj ima fusion pri vsem tem? Čisto nič.
So pa še olajševalne okoliščine:
-GPU-ji so 2x hitrejši prej kot v dveh letih
-pri vseh unih flopsih na G80 in R600 so štete samo shader enote brez teksturirnih, ki dodajo še kar precejšnje število flopsov, ki jih morajo CPU-ji v render farmi sami predelat.
Še vedno pa pomojem ne prideš kaj hudo bliže kot ~10 let.

Jst ::

Jaz sem 2004 akademsko računal in filozofiral, da bomo videli čez 8 let prve zametke filmske grafike. Torej 2012. Sedaj mislim, da bomo s tretjo naslednjo generacijo gpujev tole dosegli. Če recimo da rabijo za generacijo dve leti, bomo to dosegli čez 6 let. Hardwaresko bomo skoraj zagotovo tega zmožni... We'll see.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Tr0n ::

franci ::

Izi: Pravilno je torej, da bomo čez 31 let lahko Shreka renderirali v realnem času na naših domačih računalnikih.

Kaj pa resolucija? Nima veze pri tem?
Ker za domač računalnik ne rabiš take resolucije kot za kino dvorano.
Hello, hello, hello, how low?

Izi ::

Trenutna resolucija ki jo uporabljajo pri Pixarju je 2K resolucija. To resolucijo tudi uporabljajo najnovejši digitalni projektorji.
Gre se za 2048 x 1080 pik.
To je dejansko ista resolucija, ki jo uporabljamo tudi doma (1920 x 1080), z to razliko, da je v kinu vse skupaj še za 128 pik bolj široko.

Moram pa še dodati, da je verjetno Senitel že malo v zaostanku glede tehnike renderiranja pri Pixarju :D
Ker tehniko renderiranja vedno bolj izpopolnjujejo (vedno bolj realna slika) se pri vsakem novem filmu čas renderiranja slike močno podaljša.

"Rowe said. "In going from a more traditional approach in the movie "The Incredibles," to ray tracing in "Cars," it increased the render time by a factor of 10. One frame typically takes about eight hours to render at 2K resolution."

Pri filmu "The Incredibles" so uporabljali še tradicionalne pristope k renderiranju, ki so jih nato pri filmu "Cars" tako doterali, da sedaj za eno samo sliko rabijo že kar 8 ur za renderiranje v 2K resoluciji 8-O
Glede na to lahko rečemo, da grafike iz Pixarjevih risank v igrah ne bomo ugledali za časa našega življenja >:D

Naj še dodam, da so za izdelavo filma "Cars" od koncepta do izdaje, rabili točno 7 let. :D

Zgodovina sprememb…

  • spremenil: Izi ()

destroyer2k ::

Jaz se ne strinjam z vami, ker ne bo moglo toliko dovgo tudi trajat razvoj za tako grafiko.
Dal vam bom primer kaj lahko naredi cryengine2 (pogon crysis-a) in boste vidli da je pogon veliko zmožen. Sam ne moremo pa imeti še tako grafiko na pc-ju, ker menda za 18 mesecev pride nova tehnologija, za ki bo lepša slika par takih patentov ima crysis tudi notri, ker oni hočejo da bo igra par let najbolj lepša.


http://www.crytek.com/screenshots/index...
http://www.crytek.com/screenshots/index...
http://www.crytek.com/screenshots/index...
http://www.crytek.com/screenshots/index...
http://www.crytek.com/screenshots/index...

In pomojem so se kr približal.

Senitel ::

Izi: Se zelo dobro zavedam kaj počenjo pri Pixarju, tudi podatki ki sem jih dal niso za ta tenutek ampak so iz leta 2003. Tisto je bil edini pameten podatek, ki sem ga pač našel o računski zmogljivosti Pixarjeve render farme. Posamezne slikce pa se definitivno ne renderirajo 8 ur na render farmi. Workstation ja, renderfarm no way (oziroma 8 ur na posameznem CPU-ju v render farmi in 1024+ slik hkrati)... Če bi render farma porabila 8 ur za eno sliko potem bi Cars gledali šele čez ~120 let. :\

Izi ::

Tukaj sem našel podatek, da je izdelava ene slike pri "Cars" trajala približno 8 ur.
Za "The Incredibles" so menda rabili 50 minut na sliko, kot je razbrati iz istega članka.
Se zavedam, da to traja 118 let za 90 minut filma, zato sem sklepal, da pač delajo več slik naenkrat.
Zato sem tudi omenil, da so film naredili v sedmih letih.

destroyer2k ::

Sam izi pa sentinel cpu ali gpu sta pa zelo različna. Zdaj bom jaz kr vzev za primer geforce 8800tesla ta grafična preračuna nekaj v 27minutah kar nuca cpu 110ur.

Izi ::

Sicer bo o tem več in bolj natančno vedel Senitel, ampak meni se zdi, da vedno sodelujeta oba procesorja CPU in GPU.

Ven, da sta načina renderiranja za igre in za filme različna.
Filmi uporabljajo Raytracing renderiranje, igre pa Scanline renderiranje.
Jaz mislim, da sta pri obeh vprežena tako GPU kot CPU in z skupnimi močni izdelujeta slike.
Naj Senitel pove, če mogoče res za Raytracing renderiranje uporabljajo samo CPU brez grafičnih kartic. Jaz dvomim, da je tako.

Raytracing renderiranje da za rezultat popolne in fotorealistične slike, ki pa so hudo zahtevne in torej počasne za izdelavo.
Scanline renderiranje pa ne da takih rezultatov, da bi jih lahko zamenjal za fotografijo, so pa zato precej hitrejši in manj zahtevni za izdelavo.

Jst ::

Raytracing na GPUju, not just yet.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Fury ::

Vse v igrah se renderira v paketih (batch-ih). ZELO simplisticno gledano:

1.CPU - Igra poslje paket DirectX-u
2.CPU - DirectX forwarda zadevo driverju
3.CPU - Driver nato zadevo predela v eno graficni specificno in razumljivo stvar in ji jo poslje.
4.GPU - Graficna dobi paket in ga sprocesira in izrise

V DX9 sta koraka 2 (in 3) procesorsko zahtevna, v DX10 pa sta blazno zoptimizirana. V DX9 je zadeva tok pocasna, da lahko ze nekaj cez 1000 paketov zabije celoten procesor, v DX10 pa je ta cifra tam pri 10000 paketih.

Ce ti das notr eno turbo jebacko graficno (GF8), al mas pa eno staro (recimo GF6) so koraki 1-3 se VEDNO ISTO POCASNI, ker se IZVEDEJO CISTO POPOLNOMA SAMO IN LE na glavnem procesorju.

En paket pa pomeni render enega (ali vec instanciranih) objektov z isto texturo in istim shaderjem. Menjava shaderja - nov paket, menjava texture - nov paket, drugacna geometrija - nov paket. To je cel problem. Pol pa ruknes not hiso, ki se iz 1 sesede v 50 kosov in si hitro fucked pri DX9 ko mas 20 bajt na enkranu :)

Tr0n ::

In kdaj bomo ta optimiziran API videli v akciji?

Ker to kar so developerji dosedaj pokazali je crap.

Fury ::

Dejansko bo to dobr vidno sele takrat, ko bo DX9 install base tok majhen, da se ga ne bo vec splacal podpirat in bo slo vse cist na DX10. Zdej pac naredis za DX9, ker ma to 95% folka, pol pa ruknes za DX10 par efektov cez, ker se ti vec ne splaca investirat.

Hopefully bo Crysis ze kej izkoristu, glede na to, da je paradni konj 10ke.

Senitel ::

No Fury lepo povedal kako je z CPU vs. GPU v DX. ;) Glede Crysisa je pa tako (ker sem imel pač šanso videti zadevo zelo od blizu :8)), da je Crytek precej "pretiraval." No streljali so čez, ogromno batchov, ogromno trave, ogromno dreves. V stanju kakršnega sem jaz videl je bila na 7900 GTX CPU bound (na Athlon 64 X2 CPU-jih). Ko bo pač igra izšla bodo vsi ti detajli (vsa ta drevesa) v DX10 verziji (bolj optimalen API), DX9 verzija igre pa bo morala to skalirat navzdol (močno navzdol).

Kar se pa Pixarja, CPU/GPU, ray tracing tiče:
Sem vedel da so bo v kratkem našel en "raytracing will solve everything..." >:D
Vpiši v wikipediji Global illumination in bo zelo hitro jasno, da ray tracing ne reši vseh problemov (zakaj bi sicer imeli radiosity, ray tracing, beam tracing, cone tracing, path tracing, metropolis light transport, ambient occlusion, photon mapping,...?).
Pri Pixarju je potrebno zadevo najprej ločit na produkcijo in končni izdelek. Pri produkciji se seveda uporabljajo grafične kartice in relativno hitro zarenderirani približki na GPU (mogoče Gelato? not sure). V finalni verziji pa se vse renderira izključno na render farmi iz CPU-jev in povsem brez GPU-jev. Tako da ne, v filemski produkciji CPU in GPU NE sodelujeta.

Sedaj pridemo do razlik med CPU in GPU in ko je že destroyer omenil NV Tesla... Med CPU in GPU so fundamentalno zelo velike razlike in tisto kar bo na GPU teklo bistveno hitreje kot na enem samem CPU (paralelni problemi kot je računalniška grafika) se da tudi zelo enostavno razbiti in izvajati hitro na gruči večih CPU-jev (clustrih, render farmah,...).

Tu pridemo pa do ray tracinga... Ray tracing je med amaterji hudo popularen, ker je že praktično vsak programer kdaj napisal svoj ray tracer in občudoval lepe svetleče krogle in kocke. Profesionalci ga imajo radi, ker da v kombinaciji z drugimi metodami oziroma izboljšavami zelo prepričljive rezultate. Konec dneva pa obstajajo že tudi GPU implementacije ray tracerjev, ki sproducirajo lepo število čudovitih svetlečih krogel, kock, piramid na povsem zglednih (60+) fps-jih pa za to niti ne rabiš npr. GeForce 8800.
Tu nastopita dve težavi, ki v filmskem svetu sploh ne nastopita. Prva je ta, da ray tracing ni "immediate mode." Povedano po domače: nemogoče je začeti izrisovati sceno, dokler nimaš CELOTNE SCENE pripravljene. Običajen rasterizer (GPU) povsem brez problema dobi trikotnik ga izriše, dobi naslednji trikotnik ga izriše,... V bistvu lahko počenja vse mogoče vragolije (trikotniki ne bodo nujno zapuščali cevovoda v istem vrstnem redu kot vanj vstopajo). Ray tracer mora imeti kompletno sceno, da lahko začne z delom.
Druga težava pa je, da če hočeš imeti vsaj približno uporaben ray tracer moraš NUJNO zgradit neko "pospeševalno strukturo," ki ti bo MOČNO zmanjšala število testiranj "ali je ray zadel trikotnik." Brez te strukture boš za vsak pixel na sliki moral pregledati recimo 1 milijon trikotnikov (vse trikotnike v sceni pač) in se prav tolikokrat vprašat "ali je ray zadel ta trikotnik." Ni treba bit genij, da ugotoviš, da bi bilo to povsem neuporabno. Bistveni problem pa je, da gradnja te strukture ni problem, ki bi se ga dalo dobro paralelizirat (torej poganjat na več CPU-ji, večih pipeline-ih znotraj GPU-ja,...).
Filmarji to zelo enostavno naredijo, saj uporabljajo CPU-je... En CPU naredi strukturo, jo pošlje vsem ostalim in vsi skupaj veselo renderirajo eno slikco. Cell je tudi hudo dobra arhitektura za ray tracing: PPU naredi strukturo, SPE-ji pa potem izvajajo teste kater ray je zadel kaj kot odštekani.
Rešit problem na GPU-ju pa sploh ni enostavno. IMO na GPU-ju ne bomo nikoli videli ray tracinga kot ga uporablja recimo Pixar ali Mental Ray na domačih PC-jih. To ne pomeni, da ga ne bomo videli! Bo pa zelo verjetno prišlo do kakšne hibridne rešitve. Ker samo pri primary rayih nima raytracing nobene prednosti pred rasterizacijo (ki je strašno hitra in poceni na GPU-jih). Tako načeloma ni problema pač zarenderirat sceno nekako tako kot sedaj, si med tem nekako zgradit eno pametno strukturo za raytracing in potem v naslednjem passu postrelat raye kamor ti paše...

kobilica ::

Half life 2 episode 2 Ima kar lepo grafiko,ceprav je dx9.

Poglejta kak trailer na youtube :D
1
2
»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Nov članek: DirectX 11

Oddelek: Novice / Nova vsebina
265470 (3064) Senitel
»

DirectX 11

Oddelek: Programska oprema
61967 (1634) BigWhale
»

directX 10 in windows xp (strani: 1 2 )

Oddelek: Pomoč in nasveti
7012391 (8801) bluefish
»

DX 10 ali DX 9 grafa? (strani: 1 2 3 414 15 16 17 )

Oddelek: Kaj kupiti
80137626 (21845) macgajver
»

Lahko že februarja pričakujemo cenejše izvedenke grafičnih kartic Geforce 8800? (strani: 1 2 )

Oddelek: Novice / Grafične kartice
636974 (5154) Pesimist

Več podobnih tem