Android Programjaim

Android, Flutter/Dart, Kotlin, Java, Unity, HarmonyOS

Opengl ES 2.0

2012. január 05. 18:04 - lacas8282

Rájöttem, hogy az én "kicsi" jözel 100 classból álló engine-emnek nem tesz jót ha 1.0-1.1-et használok hozzá.

Így most nekikezdtem átírni 2.0-ra.

Nézzük milyen dolgokkal kell szembesülni 1.x után 2.0-val.
 

-a 2.0 nem lefelé kompatibilis, így egy rakás cucc nincs benne, át kell írni
-a fixed pipeline eltűnt
-nincs tehát pushmatrix, popmatrix, translate, rotate, stb.
-ezeket mind magunknak kell már lekódolni az opengl Matrix osztályával.
-ez elsőre annyira nem egyszerű, pláne, hogy elég sok filet érint a dolog
-viszont vannak shaderek!
-fragment/vertex shaderek, és ezeket nagyon szépen lehet kódolni GLSL-ben
-persze a shadereknél sincsenek alap GLSL funkciók
-mint pl. gl_Vertex, stb
-így magunk írhatjuk meg a scale-et is, sőt akármit
--hogy kezdjünk bele:

1, kéne egy matrix stack
2, kell projectionmatrix,modellviewmatrix, stb (float[16])
3, a matrix stack felváltja a glpushmatrix/popmatrix szerepét
4, a matrix osztályban letárolt rotate, translate, scale stb algoritmussal elvileg minden jó lesz

komment

Opengl-es 1.0-1.1 engine (lacroix3d)

2012. január 03. 09:39 - lacas8282

Pár újdonság:

-gyorsuló parserek
-object clone-ozás
-text3D deprecated (lassú volt)
-text2D deprecated (FPS-ek miatt, 4-5 karakter akár 3-4 FPS-t is levett)
-FixedText3D (sokkal gyorsabb, csak egyszer kell létrehozni, egy nagy textúrán)

-jelenleg a glpicking-el szórakozom, sugárkövetéssel

Az engine jelenleg: 5 animated actorra 9-12 MB-ot eszik (függ a TRI mérettől, és a bitmapektől, ezek átlag 400 TRI-sek), interpolated keyframe aniamtion-el közel 42 FPS. Ami szépnek mondható, mivel nem használok native hívást sem.

A parser betöltés sokkal gyorsabb lett, a clone-nak köszönhetően már csak már ms-t várakozik, és betölti a másolatot. Ahol lehetett inkább fixed length arraylist-et használtam, ez abrátságosabb, és nem sokkal gyorsabb az array sem.
 

komment
süti beállítások módosítása