Vlákno názorů k článku OpenGL a Direct3D (3) od Kania - Ten článek je spíš než o 3D grafice...

  • Článek je starý, nové názory již nelze přidávat.
  • 18. 8. 2004 3:48

    Kania (neregistrovaný)

    Ten článek je spíš než o 3D grafice o psychice průměrného *nixáka, který se vyznačuj animozitou vůči všemu, co pochází od Microsoftu, MSIE, ActiveX a "věčně padavá Windows" nevyjímaje. A pak zkusí svoje postoje extrapolovat do oblasti, kterou zná a nestačí se divit...

    ...neustále přibývajících reklam v počítačových časopisech...?

    Tohle někdo může chápat jako soumrak impéria Microsoftu, někdo jako návrat k normálním tržním poměrům. Faktem je, že Microsoftu kromě reklam přibývaj i miliardy na účtu, svou pozici na dektopech si udržuje, expanduje i na servery - takže zánik impéria se zatím nekoná.

    ....můj "osobní odpor" ke všemu, co nese označení Microsoft...

    To je relativní, někdo zase ze stejného důvodu nedůvěřuje Linuxovým řešením. I mě připadají větší programové celky pod Linuxem podivně nestabilní a nerobustní. To neplatí o tom základu jako je kernel a konzolové utility - ale popravdě řečeno, viděl snad někdy nekdo padat utility v DOSu ? btw Malá věcná: pokud nechcete, aby na Vaše výroky někdo nereagoval, nedopouštějte se jich, a když už se ji dopustíte, nežádejte o to...;o)

    ...dokud si ho nedosadíte za šelmu do Janovy Apokalypsy nebo za Velkého bratra do románu 1984 od George Orwella, nemyslím, že budete mít mrazení v zádech a neurčité pocity obav....

    A co Linux a jeho strašidlo, strašidlo komunismu ? Nechte na hlavě - zatímco Janova Apokalypsa se zatím díkybohu nevyplnila, s reálným komunismem (každému zdrojáky dle jeho potřeb) už nějaké ty historické zkušenosti máme... ;-) Vnitřní hlasy jsou OK, ale člověk by měl dát občas i na racionálně podložená stanoviska.

    ....jsem potkal pouze jednoho člověka, který přešel z OpenGL na DirectX...

    Udělejte si další čárku - já třeba s OpenGL taky začínal, přišlo mi taky jednodušší, jako vám - dokud jsem se neseznámil s Retained Mode DX - a pak jsem si nestačil říkat - no, vždyť takhle jsem si vždycky 3D API představoval..! Co se týče širší podpory DirectX oproti OpenGL, to je prostě fakt, se kterým nic nenaděláte. Hry, to už dávno není jen 3D grafika.

    ...máte k dispozici na jednom místě snad všechno, co potřebujete, a nemusíte po Internetu složitě hledat, jak loadovat a vykreslit 3ds model (Umí Direct3D i tohle ?)...

    Persistence grafu scény do souboru byla jedna z prvních fíčur DX, která mě na něm zaujala - popravdě řečeno, uměl to již DX 3.0. Samozřejmě, nativně je podporován X formát, ne formát zrovna nějakého 3DStudia (nebo POVRaye, nebo snad rovnou Softimage ?) Ale zrovna podpora 3DS formátu je v rámci DX SDK docela dobrá (MS dodává konvertory pro 3DSMax a Maya).

    a podíváme-li se na nástroje typu Blender, 3D Studio Max, Mayu, Solid Works a další, i v dnešních dobách OpenGL jasně vede - k čemu by v těchto programech byly zvuky nebo multiplayer....?

    Konkurence je hybná síla vývoje a nechť čistě grafické programy využívaj možnosti přepínat mezi oběma knihovnami - čas od času se stane, že prostě podpora toho kterého ovladače je lepší a hodí se mít další variantu. Ale dnešní 3D balíky se zvukem běžně pracujou, zvláště ty zaměřené na animace (jako Cinema, 3DSMax nebo trueSpace) - je celkem jedno, jak si třeba pořešej scrubbing v animaci, jestli přes DXSound buffer nebo nějakej SDLMixer, ale tuhle funkcionalitu by asi dneska měl mít každej pro facial animace, lips-phoneme postsynchrony, atd...

    Argument, že DirectX používá v současnosti cca 99 procent všech nových her, je sice pravdivý, ale nic neříká o tom, jestli je D3D opravdu lepší než OpenGL...

    Lepší, lepší... co pak tedy znamená slovo "lepší" ? Není právě obliba primárním měřítkem kvality ? Kvalita dle ISO definice je komplexní schopnost uspokojovat potřeby uživatelů - sem spadá i synergie funkcionality. Tedy SW balík, který má širší záběr je objektivně vzato lepší v oblasti komplexnosti a vzájemné provázanosti služeb. Kdyby byla kvalita renderingu OpenGL doprovázena objektovým modelem, perzistencí formátu, mesh skinama, billboardy, integrace s multimédia (např. 3D sound, renderování videa na povrchy) - určitě by bylo lepší, než DirectX. Jenže - ono to nepodporuje. Ale i co se čistě 3D grafiky týče, mám pocit, že se vývoj OpenGL v poslední době trochu upnul na grafickou pipeline a zanedbal ostatní věci, které se dnes odehrávaj kvůli přenosovýmu pásmu na opačný straně sběrnice, než je procesor (vertex transformace, shadery, etc.). 3D procesor - to už dávno není jen rychlej blbec na sortování voxelů v Z-bufferu - dnes to je samostatná výpočetní jednotka, s větším počtem tranzistorů a víc pararelní architekturou, než CPU


    ...většina tzv. kancelářských uživatelů si myslí, že Internet = prohlížeč MS IE, a absolutně nedokáží pochopit, že se na web dá dostat i pomocí jiných programů.... To je čistá smeč na nekončící flame - ale nechápu, proč pro změnu nechápete je. Opravdu si myslíte, že vaše máma je tak utržená z tabbed browsingu a lepší podpory CSS ? Jako fanda 3D byste mohl aspoň tušit, že ten blbý, totálně zastaralý MSIE je zrovna v téhle oblasti už řadu let před jakoukoliv konkurencí a 3D API má dokonce integrovaný v DOM (sorry, níže uvedené linky just for MSIE only) ...

    http://www.absolutnet.cz/net/demoz/danim/tree.htm
    http://www.absolutnet.cz/net/demoz/danim/cradle.htm

    ...Nevýhodou oproti strukturálnímu OpenGL může být složitější napojení na nejrůznější programovací jazyky a především mnohem náročnější učení....

    Zrovna v těchhle bodech si dovolím zdvořile, ale důrazně oponovat - DirectX není jen objektové, ale současně komponentní rozhraní založené na COM. A hlavní výhoda COM je právě ve snazším napojení na ostatní jazyky - ano, ano - ty různé Java/VBScripty, ASP, ActivePythony, VBA makra Officce a .NET spolu radostně a šťastně kooperujou právě díky COM integraci !
    V Linuxu podobná infrastruktura chybí, takže si zřejmě její výhody a možnosti nejspíš ani nedokážete představit. Místo toho musíte udržovat language bindings z Perlu do Pythonu, z Pythonu do Tk, z Tk do GTK, z GTK do Perlu... to není žádná infrastruktura, ale chaos.

    Je otázkou, zda se při kompletní softwarové emulaci nějakého efektu nestane hra natolik trhanou, že bude nehratelná..

    V DirectX je to jinak, hra se musí dotázat DX na capabilites grafárny a přizpůsobit se mu. Plně SW emulace je referenční legacy režim, kterej si musíte speciálně vyžádat a v defaultní instalaci DX ani není povolenej.

    ...Jde o to, že cca 20 % všech instrukcí CISC (sčítání, odčítání, porovnání...) se vyskytuje v kódu v 80 % všech případů a zbývajících 80 % instrukcí (multimedia ap.) se využívá ve 20 % - tzv. zákon osmdesát dvaceti, dvacet osmdesáti...

    Nexi tu startovat další flame na téma RISC vs. CISC - ale zkuste se zamyslet nad tím, proč se naprostá většina pracovních stanic v tichosti překulila z SGI na CISC, neřkuli rovnou na Wintel... ? Protože poměr cena-výkon. Proč si vlastně myslíte, že vzniká 3DNow!, MMX a další instrukční sety ? A budete-li sledovat výkon, pak nutně časem přijdete na to, že CISC neznamená nic jiného, než SW emulace RISCu ! Pokud bude stejná rychlost sběrnice a takt procesoru, vždycky budete s CISC rychlejší - a zrovna v multimédiích ten náskok jen vynikne...

    Nekompatibilita jednotlivých verzí DirectX: Osobně s tímto nemám žádné zkušenosti, ale když to řekne devět a půl člověka z deseti lidí...

    Je to zase trochu jinak - DX jsou shora kompatibilní až někam do verze DX3 ? Proč ? Protože COM - ten totiž nic jiného než plnou kompatibilitu rozhraní nepodporuje. Výsledkem je, že dnešní DX podporujou několik verzí rozhraní současně. S tím základním nikde nenarazíte, ale taky se sním nepotěšíte. Ale zkuste si pustit nějakou starší hru třeba pro DX3 (Testdrive, apod.) pod dnešníma DX9.0c ? Poběží zcela bez problému. Na straně programátora je to horší - zvlášť mezi verzema DX 6.0 a 8.0 bylo několikrát překopanýzákladní rozhraní, takže tu panuje zmatek nad zmatek, poslední verze DX nese jakési náznaky kontinuity, ale zase je tu managed DX. Jenže to není kruciální problém, pokud máte dobrý IDE s Intellisense schopný využívat IDL. A jak jsem řekl - stačí, když se chytnete poslední verze a na straně binárek vám problém nevznikne, všechny starší rozhraní jsou mapovaný na stuby v HAL.

    ...maximálně ve zlomových verzích, např. chystané OpenGL 2.0....

    Jsem docela zvědav, jak to bude v tomhle směru s binární kompatibilitou OpenGL 2.0...;o) Přelomový verze DX byly obecně lichý verze (DX 3-5-9).

    ...cílem byl ekvivalentní grafický efekt, NE zdrojový kód...

    O tom není sporu, pokud jste chtěl dokázat, že OpenGL vyjde kratší - jenže takovému cíli nelze podřídit vše... DirectX má Retained mod, sice obsoletní, nicméně v jeho rámci se prováděj makroakce, jako v GLUT - když budu chtít, ukážu vám v každý knihovně zdroják, kterej při stejným efektu bude vždycky kratší než v druhý - stačí jen šáhnout do správný podskupiny API.

    ...existuje spousta odborníků např. na Windows i Linux, kteří se je pokoušeli veřejně porovnat, a v důsledku toho je přestaly uznávat obě strany...

    Srovnání (arci, že kvalifikovaný) DX vs. OpenGL by mohlo bejt navýsost užitečný pro oba tábory, ale nesmělo by bejt vedený tak zaujatým a konfrontačním stylem.

  • 18. 8. 2004 10:45

    x (neregistrovaný)

    esteze tento komentar je cely objektivny a nezaujaty..
    sova hovori vrabcovi, ze ma velku hlavu ..
    ci ako to hovori to prislovie :)

  • 18. 8. 2004 11:29

    Rejpal (neregistrovaný)

    "Opravdu si myslíte, že vaše máma je tak utržená z tabbed browsingu a lepší podpory CSS ?"
    Prijde mi, ze by je spise mohlo zajimat to, ze MSIE je temer neudrzovany sw, ktery ma bezpecnostni diry, ktere mj. dovoli spustit cizi kod na clientskem pc bez vedomi clienta...
    A treba moje mama si tabbed browsing pochvaluje ;).

  • 18. 8. 2004 11:35

    Diagon Swarm (neregistrovaný)

    "A co Linux a jeho strašidlo, strašidlo komunismu ? Nechte na hlavě - zatímco Janova Apokalypsa se zatím díkybohu nevyplnila, s reálným komunismem (každému zdrojáky dle jeho potřeb) už nějaké ty historické zkušenosti máme... ;-) Vnitřní hlasy jsou OK, ale člověk by měl dát občas i na racionálně podložená stanoviska."

    Nemohl by mi někdo vysvětlit proč někteří stále spojují Linux (potažmo OSS) s komunismem, já jsem nad tím bádal a nějak nemůžu najít tu spojitost.

  • 18. 8. 2004 11:46

    Jmeno (neregistrovaný)

    Bádal jste málo, komunismus i Free SW je o společenském vlastnictví know-how a dalších výrobních prostředků, což v IT oblasti představuje především vlastnictví zdrojáků.

    Je to o to horší, že jakmile si jednou informaci znárodníte, už nikdy ji nezprivatizujete zpět.

  • 18. 8. 2004 13:51

    Pichi (neregistrovaný)

    A znarodnena fabrika (zdrojak) tomu burzoustovi pak nepatri a on ji (ho) pak nemuze nadale pouzivat. Fakt trefne srovnani. Tak at ho neznarodnuje. Nebo snad musi?

  • 18. 8. 2004 17:52

    mk (neregistrovaný)

    mohl by jste mi ukazat nekoho, kdo ostatnim "znarodnuje" zdrojaky? jestli se nemilim, tak to lide delaji dobrovolne. to je podstatny rozdil oproti komunismu, ktery jste evidentne nepochopil. nevim, proc bych si s necim, co jsem vytvoril nemohl delat co chci? oproti tem firmam podporujicich "kapitalismus" a "trh" v oblasti IT pomoci patentu, coz je ekvivalentni vytvareni administrativniho monopolu, to znamena socialni inzenyrstvi v podani statu na natlak techto "konkurentu". tohle je z definice socialismus. freeSW nikdo nasilim nemuze nutit, narozdil od patentu. to, ze existuje je proste vyvoj. mozna se udrzi, mozna ne. ale srovnavat ho s komunismem je naproste nepochopeni co tento termin obnasi a co v dejinach obnasel.(a tim myslim vsechny formy komunismu, od platona, pres saint-simona, marxe, lenina, stalina, hitlera atd, apod.)
    btw, jake dalsi vyrobni prostredky jste myslel ze chce "freeSW" spoluvlastnit? jako ze muj pocitac nebo jak to vlastne myslite?

  • 18. 8. 2004 17:57

    Hellas (neregistrovaný)

    Jak už jsem zde napsal, komunista není ten, kdo svůj majetek nechává znárodňovat z donucení - ale právě ten, kdo tak činí z vnitřního přesvědčení !

    Pokud si nechám vyvlastnit majetek, nejsem komunista, ale oběť komunismu.

    Řekl bych, že máte trochu zmatek jak v pojmech, tak ve svých životních postojích.... ;-)

  • 19. 8. 2004 19:53

    Rejpal (neregistrovaný)

    Ano, dejme tomu (ackoliv mi to tak neprijde), ze to komunismus je, ale rozdil oproti komunismu aplikovanem na fyzicky majetek ma tak jako tak jeden rozdil -- naklady na rozmnozeni objektu -- povetsinou jsou limitne blizke nule, coz je podle mne ten rozdil, proc "komunismus" (kdyz chcete) ve svete sw muze byt dobrym systemem, ackoliv komunismus s fyzickym vlastnictvim se neosvedcil.

  • 20. 8. 2004 2:47

    Kania (neregistrovaný)

    Domnívám se, že pro individuální význam vlastnictví je rozhodující fitness, které musíte vynaložit do jeho pořízení, ne na šíření. Náklady na šíření nehmotného majetku jsou pochopitelně nižší, ale jednou zveřejněné duševní vlastnictví už nikdy nevrátíte zpět a tedy s ním přestáváte dispnovat trvale.

  • 19. 8. 2004 11:07

    Josef Masek (neregistrovaný)

    Vy jste totiz nepochopil ten rozdil. Kdyz to bude CISC a bude vykonavat instrukce stejne rychle jako RISC tak bude opravdu vyrazne rychlejsi. Jenze v tom je prave ta vyhoda RISC - instrukce neodpovidaji taktu CPU! On dokaze pri stejne technologii vykonat diky jednodussim instrukcim o tolik vic instrukci (a nebo i bezet na vyssim kmitoctu), ze i pres jejich mensi vykon je celkovy vykon cpu o nekolik desitek procent vyssi.
    Napr. (tipuju od boku) Kdyz bude nejaky RISC procesor vykonavat instrukce za 1-2 takty, tak u CISC se kazda instrukce prelozi na sadu mikroinstrukci a bude je vykonavat 2-12 taktu. Ty CISC instrukce udelaji vic a ale kdyz se porovna celkovej vykon tak RISC porad vesele vede.
    S pozdravem, Josef Masek

  • 19. 8. 2004 11:41

    KKING (neregistrovaný)

    Presne naopak to co provede CISC na 1-2 (obvykle vic)takty si RISC procesor musi prelozit na sadu mikroinstrukci a teprve zpracovat....
    Vyhoda RISC je ovykle v tom, ze je mensi a zvlada vyssi frekvence, kdezto se schopnostmi CISC roste jeho velikost spotreba tepelna zatez a pritom vetsina funkci je nevyuzivana, ale ma mensi casovou narocnost na jednu operaci, no ted je treba najit kompromis...

  • 19. 8. 2004 12:10

    Diagon Swarm (neregistrovaný)

    To co tady ještě nikdo nezmínil (až se vážně divim, když se tu všichni považujete za takové odborníky): hlavní výhodou RISC procesoru je, že všechny instrukce jsou stejně dlouhé (tj. provádí se stejnou dobu), a tak uplatnit mnohem lépe pipelining. Díky tomu se může provést několik instrukcí najednou. U CISC procesoru je problém v tom, že instrukce jsou jinak dlouhé, a v tomto případě by se muselo počkat vždy až se provedou instrukce ve všech pipelines. V tomto případě by byly nějakou dobu některé pipelines (ty ve kterých probíhala nejkratší instrukce) nevyužité.

  • 20. 8. 2004 2:35

    Kania (neregistrovaný)

    Ano, to je správná odpověď a taky - vedle výrobní jednoduchosti - jedna z mála výhod RISC. Odvod ztrát nehraje roli, zde rozhoduje počet tranzistorů na jednotku plochy - a ten je u obou technologií přibližně stejný.

  • 20. 8. 2004 15:32

    junix (neregistrovaný)

    Souhlas, objevila se tu spousta odborniku siricich bludy. Tak pro upresneni par zakladnich veci:

    1) 1 takt != 1 instrukce
    1 instrukce trva nekolik taktu - u RISC ma vetsina instrukci stejnou delku a vsechny instrukce maji stejne faze. Proto se velmi jednoduse da provest pipeline - paralelni zpracovani instrukci a v idealnim pripade se po pocatecnim naplneni pipeline na kazdy takt dokonci jedna instrukce, takze je to, jako by kazda instrukce trvala jeden takt.
    CISC ma sice komplexni instrukce, ale s naprosto ruznymi delkami a ruznymi fazemi, takze paralelizace je obtiznejsi a vyrazne mene efektivni.

    2) RISC procesory NEMAJI vyssi taktovaci frekvenci nez CISC procesory. CISC (napr. intel) dohani prave zmineny nedostatek v pipeline vyssi frekvenci.

    3) Prosim neplest instrukce a mikroinstrukce. Kazdy program, at je na RISC, nebo CISC se prelozi na instrukce, akorat u kazde architektury na jine, protoze maji jinou instrukcni sadu. Mikroinstrukce provadi radic procesoru, a jsou to akce provadene behem jednoho taktu. Jsou bud napevno zadratovane v radici, nebo jsou mikroprogramovatelne v pameti radice. Nesouvisi se spoustenym programem, ale s instrukcni sadou procesoru.

  • 24. 8. 2004 17:31

    lubos (neregistrovaný)

    Presne tak !