Sissejuhatus Android-i OpenGL-i

OpenGL tähistab avatud graafikakogu. Põhimõtteliselt on see API, mida android kasutab suure jõudlusega graafika, näiteks 2D ja 3D graafika toetamiseks. OpenGL-i üldine kasutamine andmete edastamiseks protsessorilt GPU-le. Seda teevad OpenGL Objects. See on platvormideülene graafiline API. Selles teemas õpime tundma Androidi OpenGL-i.

OpenGL-objektid koosnevad olekutest ja andmetest ning need on abiks andmete edastamiseks CPU ja GPU vahel. OpenGL ES on OpenGL API populaarne spetsifikatsioon, mis on spetsiaalselt pühendatud manustatud süsteemidele.

Android toetab OpenGL-i Android, kasutades Native Development Kit (NDK) ja selle raamistiku API-sid. Androidi raamistiku põhiklassid aitavad teil graafikat luua ja redigeerida. Nendes klassides kasutatavat OpenGL ES API-t nimetatakse GLSurfVaceiew.Renderer ja GLSurfaceView. Hea tundmine nende klasside rakendamisel on abiks OpenGL-i kasutamisel teie Androidi rakenduses.

GLSurfaceView

Selles vaates saate objekte joonistada ja nendega manipuleerida. Seda klassi on lihtne kasutada, kuna saate luua GLSurfaceView objekti ja lisada sellele renderdaja. Puuteekraani sündmusi saate jäädvustada, laiendades puutetundlike kuulajate rakendamiseks klassi GLSurfaceView.

GLSurfaceView.Renderer

Liides GLSurfaceView.Renderer sisaldab meetodeid, mida on vaja graafika joonistamiseks GLSurfaceView-s. Selle liidese rakendamine tuleks pakkuda eraldi klassina, mis on lisatud GLSurfaceView eksemplarile, kasutades rakendust GLSurfaceView.setRenderer () .

GLSurfaceView.Renderer-i liidese rakendamiseks peate rakendama järgmised meetodid:

  • onSurfaceCreated () : Seda meetodit nimetatakse GLSurfaceView loomise ajal.
  • onDrawFrame () : Seda meetodit kutsutakse GLSurfaceView iga uuesti joonistamise ajal.
  • onSurfaceChanged () : Seda meetodit nimetatakse siis, kui GLSurfaceView geomeetria muutub (suurus, suund jne).

Kuidas OpenGL Androidis töötab?

OpenGL-objekte on mitut tüüpi. Näiteks Vertexi puhverobjekt, mis võib salvestada märgi tippe. Teine näide on tekstuur, mis suudab salvestada pildiandmeid.

Võrgusilma omadusi esindavad andmed, näiteks tipud, normaalid ja UV-koordinaadid, laaditakse Vertexi puhverobjekti ja saadetakse seejärel töötlemiseks GPU-le. Kui see on GPU-s, lähevad need andmed läbi, seda nimetatakse OpenGL-i renderdamise torujuhtmeks.

Peamised ülesanded, mille eest torujuhtme renderdamine vastutab, on tippude teisendamine õigeks koordinaatsüsteemiks, märgi tippude kokkupanek, värvi või tekstuuri rakendamine ja tähemärgi kuvamine vaikeraamipuhvril, mis on ekraan.

OpenGL-i renderdusprotsesside protsess Androidis koosneb kuuest järgmisest etapist:

  1. Per-Vertexi operatsioon
  2. Primitiivne assamblee
  3. Primitiivne töötlemine
  4. Rasterdamine
  5. Fragmentide töötlemine
  6. Fragmentidevaheline operatsioon

Per-Vertexi operatsioon

Kujutise esmane ja peamine samm on geomeetria andmed teisendada ühest koordinaatsüsteemist teise koordinaatsüsteemiks.

Primitiivne assamblee

Tipud kogutakse selles etapis paaridesse 2, 3 ja enam ning primitiiv pannakse kokku näiteks kolmnurgaks.

Primitiivne töötlemine

Kui primitiivid on kokku pandud, testitakse neid, et kontrollida, kas need jäävad vaatemahu alla. Kui nad seda konkreetset testi ei läbi, ignoreeritakse neid järgmistes sammudes. Seda testi tuntakse kui lõikamist.

Rasterdamine

Seejärel jaotatakse primitiivid väiksemate ühikute tükkideks ja vastavad pikslitele raamipuhvris. Igaüks neist väiksematest ühikutest on tuntud kui killud.

Fragmentide töötlemine

Kui primitiivne on rasterdatud, kantakse geomeetriale värv või tekstuur.

Fragmentidevaheline operatsioon

Lõpuks antakse fragmentidele mitmesuguseid katseid, näiteks:

  • Piksliomandi test
  • Kääride test
  • Alfa test
  • Šabloonitesti
  • Sügavustesti

Nendest kuuest etapist kontrollivad kahte etappi programmid, mida nimetatakse Shaderiteks.

Shader, lühidalt öeldes, on teie poolt välja töötatud väike programm, mis elab GPU-s. On olemas spetsiaalne graafiline keel, mida nimetatakse OpenGL varjutamiskeeleks (GLSL) ja milles kirjutatakse varjutaja. OpenGL-i torujuhtme kahte olulist etappi, kus varjutaja toimub, nimetatakse etappideks Per-Vertexi töötlemine ja Per-fragmentide töötlemine.

Shader, mida töödeldakse etapis “Per-Vertex”, on tuntud kui Vertex Shader. Shader, mida töödeldakse etapis „Per-fragment”, on tuntud kui Fragment Shader. Tippvarjutaja peamine ja põhieesmärk on anda tegelase tippudele lõplik teisendus renderdamise torustikule, samal ajal kui fragmentide varjutaja eesmärk on anda värvimis- ja tekstuuriandmed iga piksli päise kohta raamipuhvrisse.

Kui andmed edastatakse OpenGL-i renderdamise torujuhtme kaudu, ilmub teie seadme ekraanile kas 3D- või 2D-mudel.

GL-programm

Nõuanded OpenGL-i jaoks Androidis

Kui olete OpenGL-i programmeerija algaja, siis võib-olla pole mõni neist allpool toodud punktidest teiega veel kokku puutunud. Allpool on toodud mõned juhised, kuidas hoolitseda OpenGL-i kasutamisel Androidis. Need on tavalised vead. Nii et pidage neid alati meeles.

  1. Valgustuse normaalide ebaõige skaleerimine
  2. Kehv Tessellatsioon häirib valgustust
  3. Pidage alati meeles oma maatriksrežiimi
  4. Projektsioonimaatriksi korstna ületäitumine
  5. Kõigi Mipmap-tasemete määramata jätmine
  6. Tagasi heleduse pikslite lugemine

Androidi OpenGL-i eeltingimused

Allpool on toodud eeltingimus, mis on vajalik Androidi OpenGL-i kasutamiseks.

Tarkvaraoskused

  • C, see tähendab programmeerimiskeel.
  • C ++ teadmised pole vajalikud, kuid neist on abi.
  • Erinevate raamatukogude kasutamine, mis võivad olla kas staatilised või dünaamilised.

Matemaatika

  • Teadmised vektoritest nii 2D kui ka 3D-s.
  • Maatriksid
  • Põhitaseme matemaatika mõisted.

Need on kõik peamised ja põhimõisted, mida on OpenGL-i alustamiseks vaja. Võib-olla peate õppima veel mõnda matemaatikakontseptsiooni, kuid pärast keskmisele tasemele jõudmist. Kuid see sõltub täiesti teist. Erinevate raamatukogude abil saate paljudest asjadest üle minna.

Järeldus: OpenGL Androidis

Seetõttu on OpenGL täiesti funktsionaalne API, mis on primitiivsel tasemel ja võimaldab programmeerijal tõhusalt käsitleda graafikatarkvara ja seda ära kasutada. Suur arv kõrgetasemelisi teeke ja ka rakendusi kasutab OpenGL-i selle toimivuse, programmeerimise lihtsuse, laiendatavuse ja laialdase toe tõttu.

Soovitatav artikkel

See on olnud Android-is OpenGL-i juhend. Siin oleme arutanud Androidi OpenGL-i tööprotsessi ja eeltingimusi. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. WebGL vs OpenGL
  2. Mis on Cognos?
  3. Mis on Jira tarkvara?
  4. Karjäär Azure'is

Kategooria: