Hlavní navigace

Názor k článku OpenGL a Direct3D (3) od Jmeno - Podle mě je to jinak - autor si...

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

    Jmeno (neregistrovaný)

    Podle mě je to jinak - autor si uvědomil, že celá řada jeho srovnání OpenGL a DirectX fakticky stojí na vodě, protože DirectX nezná a neví, jaxe v něm pracuje stejně jednoduše, jako v OpenGL.

    To je jediná faktická výhrada, seriál klidně může pokračovat dál, ale aby byl vyváženej, musel by být ze strany DX veden stejně kvalifikovaně, jako v případě OpenGL.

    Mě víc vadí, že autor je motivovanej z pozice odporu k Microsoftu a že se tím odporem navíc netají. Já sem třeba hodně MS orientovanej, ale nikdy bych třeba nanapsal, že se v OpenGL nedá programovat úplně v pohodě - protože to prostě není pravda.

    Ovšem objektové programování má hodně do sebe, pokud máte kvalitní IDE, které objektovou strukturu vidí a masivně napovídá programátorovi, co má psát, viz screenshot. Bez kvalitního IDE naopak práci ztěžuje, protože do jeho struktury nevidíte a musíte si ji pamatovat celou. To je pak jednodušší mít plochej, procedurální model, podobně jako mít všechny soubory v jednom adresáři, když nemáte file manager se stromečkem na procházení adresářů.

    http://zephir.wz.cz/images/directx.gif

    Díky tomu může být rozhraní DirectX mnohem bohatší, protože je strukturovaný (je jasný, že ve stromový struktuře deseti objektů klidně schováte 100 funkcí, aniž by v jediném objektu bylo víc jak tři prvky interface - na to stačí čtyři úrovně). A v managed DirectX pro .NET se do rozhraní schová ještě mnohem bohatší funkcionalita s ohledem na volitelný parametry a přetěžování metod.


    Analogicky - Linux byl dlouho konzolově orientovanej, konzole stromeček nepodporuje, protože sroluje, proto je koncepce adresářový struktury úplně odlišná a všechny binárky sou pohromadě.

    Stejně tak výměna dat redirekcí do pajpy - lineární záležitost, zatímco v COM je všechno v hiearchickejch strukturách, zato potřebujete stromovou databázi aka LDAP indexovanou dle GUIDs - čili registry.

    Linuxovej svět je to prostě jinej, robustnější, ale primitivnější, flat model. Otázka teda je, kam se bude evoluce ubírat - ale obávám se, že směrem ke větší komplexnosti a provázanosti.

    Dál je tu ještě jedna podstatná výhoda - samotnej graf scény je přirozeně objektovej v duchu zásad OOP - představte si třeba animaci s rotujícím objektem s texturou - pokud má textura rotovat s objektem, její UV mapování se přirozeně odvozuje od UV koordinát toho objektu, čili je z něj poděděný !

    A podobně i skládání složitějších maticovejch transformací (měsíce rotujou kolem planet, ty zase kolem slunce) se objektově řeší úplně přirozeně a elegantně jako skládání transformací jednotlivejch objektů - v OpenGl na to musíte roubovat evaluátory a matrix stack.

    Takže ten, kdo popírá OOP v 3D grafice vlastně popírá objektovej scene graph !