Všechny komentáře k článku:Bořiči mýtů na výstavě nVISION 08
Tak to sem nepochopil
trošku sem nepochopil, jako co tim předvádí. Jako to, že CPU je na grafiku pomalé oproti GPU?
asi tak ... prostě že CPU umí za dlouhou dobu namalovat smailíka no a GPU rouvnou fofrem vyflusne obraz
@neotomas:
Presne :-) Je to prostě na principu mnoha vyp. jednotek - napriklad 9800GTX nebo 8800GTS ma 128 Stream Procesoru a 8800GT 112 atd. Nejnovejsi GTX280 jich ma 240 a treba takova 4800ka ma 800 proc. jednotek - nedaji se samo porovnavat AMD a NVIDIA jen čistě poctem jednotek.
Takze jde o soubeznou praci mnoha procesorovych jednotek jak "vyplivnou" tu Monu Lisu :-)...
@neotomas: Samozřejmě, jedná se totiž o odlišné postupy, nevím co tím sledují protože to jako nebe a dudy..
CPU počítá kazdej bod, tzn. hodně zjednodušeně začne v levém horním rohu a jede řádek po řádku než se dostane do pravýho dolního, takhle vykreslí jeden snímek a to dělá pořád dokola. Grafika jen hází textury na určitej model, takže jí stačí propočítat pár bodů, kde se textura zalamuje, např u krychle jen vrcholy ahrany krychle, tzn. počítá pár bodů oproti CPU, který musí spočítat celou plochu, tzn. např. cca 1 300 000 b. u 1280*1024.
@Mira Rasin:
Tak s tim vyrazne nesouhlasim! Na monitor se obraz dostane nasledujicim zpusobem:
Mejme nejake objekty (=obrazky a tzv. meshe, skladaji se z mnoha trojuhelnicku - polygonu) nahazene v nejake bedne (=pameti GPU)
1. Nastavime si jak ma scena vypadat (kamera, svetla atd.).
2. Vezmeme kazdy objekt z bedny a umistime ho na sve misto. Kazdy takovyto objekt ma definovano, kde a jakou ma mit texturu - tu si vezme z ty bedny sam.
3. Ted prijde to nejtezsi - kresleni. Diky tzv. Z-Bufferu (u DirectX, u OpenGL se to jmenuje trochu jinak) a Culling se "odstrani" ze sceny vsechny polygony, ktere nebudou videt. Napr. za stenou, na druhe strane auta apod. No a pak se kazdy bod (vertex, tvori ty polygony) posle na zpracovani. Ma v sobe ulozene i souradnice textury, takze se nevykresli jenom pradne trojuhelnicky, ale bude na nich i textura.
4. A mame 2D obraz. Ale jeste ne na monitoru, je jenom v jednom backbufferu (pameti). V modernich hrach se jeste pouziva tzv. post processing. Ten jenom jeste muze pozmenit tento backbuffer - nejake rozmazani, cernobily filtr atd.
5. Nyni graficka karta uvolni tento backbuffer a vezme si na vykreslovani ten druhy. (muze mit i 3 backbuffery - triplebuffering)
Pri kazdem obnoveni obrazu monitoru graficka karta posle tento uvolneny backbuffer na monitor. Zde take jeste muzu zminit znamy Vertical sync. To znamena, ze graficka karta strida tyto backbuffery stejne rychle jako se obnovuje monitor. Kdyz Vertical sync. vypnete, monitor je treba v pulce vykreslovani a rychla graficka karta uz vymeni buffery a druha cast obrazu uz bude tedy trochu jina. To se pak projevi prave v horizontalnich "rezech" v obraze.No a ted tedy k CPU x GPU. CPU je jeden velmi rychly procesor, co umi vse. GPU je hrozne moc pomalejsich ale vysoce specializovanych procesoru.
Vemte si, jaky je tedy rozdil. CPU v kazdem kroku vezme max 1 (dobra, az ctyri - quadcore) vertex a pomalu ho vykresli. GPU v jednom kroku vezme treba 280 vertexu a kazdy vykresli rychle, protoze to je to jedine, co umi. Tot cela veda o renderingu ;-)
@Petr Ujezdsky: Jo a taky podotykam, ze cely ten postup se kompletne opakuje v kazdem framu. Pri zacnuti noveho framu se totiz vse jakoby "resetuje" a delate vsechno nanovo. Takze treba 150fps znamena, ze tohle vsechno udela graficka karta 150 krat za vterinu... Slozity co? ;-)
Asi takhle. Teď je doba, kdy GPU začíná dělat pár prací procesoru a procesory začnou zase dělat grafiku a tak začíná válka GPUxCPU.