Bevezetés az Android OpenGL-hez

Az OpenGL az Open Graphics Library kifejezést jelenti. Alapvetően egy olyan API, amelyet az android használ a nagy teljesítményű grafikák, például a 2D és a 3D grafika támogatására. Az OpenGL általános használata az adatoknak a CPU-ról a GPU-ra történő átviteléhez. Ezt az OpenGL Objects végzi. Ez egy platformközi grafikus API. Ebben a témában megismerjük az OpenGL-t az Androidon.

Az OpenGL objektumok állapotokból és adatokból állnak, és ezek segítenek az adatok továbbításában a CPU és a GPU között. Az OpenGL ES az OpenGL API népszerű specifikációja, amelyet kifejezetten a beágyazott rendszerek számára különítettek el.

Az Android OpenGL-ét az Android támogatja a Native Development Kit (NDK) és annak keret API-jával. Az Android keretrendszer alapvető osztályai segítenek a grafikák létrehozásában és szerkesztésében. Az ezekkel az osztályokkal használt OpenGL ES API GLSurfVaceiew.Renderer és GLSurfaceView. Ezen osztályok megvalósításának jó megértése hasznos az OpenGL alkalmazásában az Android alkalmazásban.

GLSurfaceView

Ebben a nézetben rajzolhat és manipulálhat tárgyakat. Könnyű használni ezt az osztályt, mivel létrehozhat egy objektumot a GLSurfaceView-ból, és hozzáadhat egy Renderert. Az érintőképernyő eseményeit rögzítheti a GLSurfaceView osztály kibővítésével, hogy megvalósítsa az érintőképernyőket.

GLSurfaceView.Renderer

A GLSurfaceView.Renderer felület olyan módszereket tartalmaz, amelyek szükségesek a grafika rajzolásához a GLSurfaceView alkalmazásban. Ennek a felületnek a megvalósítását külön osztályként kell biztosítani a GLSurfaceView példányhoz csatolva, a GLSurfaceView.setRenderer () használatával .

A következő módszereket kell végrehajtania a GLSurfaceView.Renderer felület megvalósításához:

  • onSurfaceCreated () : Ezt a módszert a GLSurfaceView létrehozásakor hívják.
  • onDrawFrame () : Ezt a módszert a GLSurfaceView minden újragondolásakor hívják meg.
  • onSurfaceChanged () : Ezt a módszert akkor hívják, amikor a GLSurfaceView geometria megváltozik (méret, tájolás stb.).

Hogyan működik az OpenGL az Android-ban?

Többféle OpenGL objektum létezik. Például egy Vertex pufferobjektum, amely egy karakter csúcsait képes tárolni. A második példa a textúra, amely képes tárolni a képadatokat.

A háló jellemzőit képviselő adatokat, például csúcsokat, normál értékeket és UV koordinátákat a Vertex pufferobjektumba töltik, majd feldolgozás céljából elküldik a GPU-hoz. Amint a GPU-ban megtalálják ezeket az adatokat, az úgynevezett OpenGL renderelési csővezetékön keresztülmennek.

A fő feladatok, amelyekért a Rendering Pipeline felelős, a csúcsok átalakítása a megfelelő koordinátarendszerré, egy karakter csúcsainak összeszerelése, szín vagy textúra alkalmazása és a karakter megjelenítése az alapértelmezett framebufferben, amely a képernyő.

Az OpenGL renderelési folyamatának folyamata az Android hat szakaszból áll, az alábbiak szerint:

  1. Per-Vertex művelet
  2. Primitív szerelvény
  3. Primitív feldolgozás
  4. raszterizációs
  5. Fragment feldolgozása
  6. Töredékenkénti művelet

Per-Vertex művelet

A kép előállításának első és legfontosabb lépése a geometria adatainak átvitele az egyik koordinátarendszerről egy másikra.

Primitív szerelvény

A csúcsokat ebben a lépésben 2, 3 és annál több párra gyűjtik, és az primitívet összeállítják, például egy háromszöget.

Primitív feldolgozás

A primitívek összeszerelése után megvizsgálják őket, hogy ellenőrizzék, nem esnek-e a nézet-kötetbe. Ha nem teljesítik ezt a tesztet, akkor további lépésekben figyelmen kívül hagyják őket. Ez a teszt Clipping néven ismert.

raszterizációs

Ezután az Primitíveket kisebb egységekre bontják, és azok megfelelnek a keretpuffer pixeleinek. Ezeknek a kisebb egységeknek azután Fragments néven ismert.

Fragment feldolgozása

Ha az primitívet raszteresítik, akkor színt vagy textúrát alkalmaznak a geometriára.

Töredékenkénti művelet

Végül a fragmentumokat különféle teszteknek vetik alá, például:

  • Pixel tulajdonjogi teszt
  • Ollós teszt
  • Alfa teszt
  • Stencil teszt
  • Mélységi teszt

Ebből a hat szakaszból két stádiumot irányítanak Shader-nek nevezett programok.

A Shader egy rövid program, amelyet csak Ön fejlesztett ki, és amely a GPU-ban él. Van egy speciális grafikus nyelv, az úgynevezett OpenGL Shading Language (GLSL), amelybe shader van írva. Az OpenGL-csővezeték két fontos szakaszát, ahol a shader zajlik, „Per-Vertex Processing” és „Per-Fragment Processing” szakaszoknak nevezzük.

A „Per-Vertex” szakaszban feldolgozott shader Vertex Shader néven ismert. A „Per-Fragment” szakaszban feldolgozott shader Shared Shader néven ismert. A csúcs-árnyékoló végső és alapvető célja, hogy a karakter csúcsainak végső átalakulását a megjelenítő csővezetékbe töltse be, míg a töredék-árnyékoló célja, hogy a színezéssel és a textúrával kapcsolatos adatokat a pixel mindegyik fejlécére eljuttassa a framebufferhez.

Ha az adatokat továbbítják az OpenGL renderelési csővezetéken, akkor a 3D képernyő vagy a 2D modell jelenik meg a készülék képernyőjén.

GL program

Tanácsok az OpenGL alkalmazáshoz Androidon

Ha Ön kezdő az OpenGL programozóban, akkor az alábbi pontok némelyikével valószínűleg még nem találkozott veled. Az alábbiakban bemutatunk néhány útmutatást, amellyel ügyelhet az OpenGL használatára az Android rendszerben. Általános hibák. Tehát ezeket mindig tartsa szem előtt.

  1. A normál fények megvilágítása nem megfelelő
  2. A gyenge testelés megvilágítja
  3. Mindig emlékezz a mátrix üzemmódra
  4. A vetítési mátrix verem túlcsordulása
  5. Nem állítja be az összes Mipmap szintet
  6. A háttérvilágítás pixeleinek olvasása

Az Android OpenGL előfeltételei

Az alábbiakban bemutatjuk az OpenGL alkalmazáshoz szükséges előfeltételeket az Android rendszerben.

Szoftver ismeretek

  • C, vagyis a programozási nyelv.
  • A C ++ ismeretek nem szükségesek, de hasznosak.
  • Különböző könyvtárak használata, akár statikus, akár dinamikus lehet.

Matematika

  • A vektorok ismerete mind 2D, mind 3D formátumban.
  • mátrixok
  • Alapszintű matematikai fogalmak.

Ezek mind a fő és az alapvető fogalmak, amelyekre az OpenGL indításához szükség van. Lehet, hogy meg kell tanulnia még néhány matematikai fogalmat, de miután elértél a középszintre. De ez teljesen tőled függ. Különböző könyvtárak segítségével sok mindent átadhat.

Következtetés: OpenGL Androidon

Ezért az OpenGL teljesen funkcionális API, amely primitív szintű, és lehetővé teszi a programozónak, hogy hatékonyan foglalkozzon a grafikus hardverekkel és kihasználja azokat. Számos magas szintű könyvtár és alkalmazás használja az OpenGL-t teljesítménye, programozási egyszerűsége, bővíthetősége és széles körű támogatása miatt.

Ajánlott cikk

Ez egy útmutató az OpenGL-hez az Android-ban. Itt megvitattuk az Android működésének folyamatát és az OpenGL előfeltételeit. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. WebGL vs OpenGL
  2. Mi a Cognos?
  3. Mi a Jira Software?
  4. Karrier az Azure-ban

Kategória: