Hirdetés

Aktív témák

  • rudi

    nagyúr

    Hú ez jó kis téma lesz :D

    Az első és legfontosabb:
    A DirectX (garfikus rész a Direct3D) KŐBE VAN BETONOZVA VERZIÓNKÉNT, olyan szentírás jelleggel, mígy az OpenGL kiegészítésekkel (extension) állandóan bővül.

    Az OpenGL alaposabb profeszionálisabb, a D3D kommerszebb. Jó példa erre, hogy a LoD (level of detail váltó) OpenGL-ben 8 bites, míg D3D-ben csak 5. Programozás tekintetében most a shaderek világában már nem olyan nagy az eltérés, de korábban az OpenGl sokkal kényelmesebb volt és a Microsoft HATALMAS pénzeket fektetett a D3D népszerűsítésébe a játékfejlesztőknél. Mivel a D3D M$ tulajdon ezért (és még a rugalmasság, pontosság és társai miatt) a profi alkalmazók maradtak OpenGL-en, az megy Mac, SGI meg mindenféle platformon.

    Szemre eltérés nincs ha ugyanúgy van megvalósítva egy efektus, de sok függ a megvalósítás módjától. Általában OpenGL-ben több lehetőség van mindenre mint D3D-ben, de a D3D-s lehetőség megvan OpenGL-ben. Példa erre a bump mapping, amire D3D-ben van 1-2 módszer, míg OpenGL-ben több, sok olyan, amit csak bizonyos hardverek támogatnak.

    És itt van talán az alapvető eltérés:
    A D3D úgy készül, hogy megszabnak követelményeket (X shaderkódhossz, Y regiszter, Z utasítá, W bitmélység stb) és ehhez kell (érdemes) a hardvergyártóknak alkalmazkodniuk. OpenGL-ben fordított a helyzet: csinál a gyártó egy hardvertének egy tulajdonságot és ahhoz egy OpenGL extensiont, amivel ez a tulajdonság kihasználható.

    Persze ezzel megérkeztünk egy újabb szintre, ahol az a kérdés, hogy hol is helyezkedik el a D3D és OpegGL a programozó és a hardver közötti úton.

    Induljunk a hardvertől
    hardver
    hardverközeli mikrokód
    driver
    API (openGL és D3D)
    programozói felület - HLSL, CG, ASHLI, RenderMonkey stb.

    A szintek között fordítók és értelmezők (compilerek) vannak. A legtöbb programozó valamilyen felületet használ, ami egy magasszintű programozási nyelvre (jellemzőne C++ jellegű) támaszkodik és abból egy beépített fordító csinál az API-nak megfelelő kódot, amiben aztán optimalizáln lehet.

Aktív témák