Android Programjaim

Android fejlesztes, java, kotlin, web.. miegymas:)

Chromatic Aberration demo Rajawaliban

2013. március 29. 10:34 - lacas82


Rajawaliztam kicsit megint, írtam egy saját kis filtert, ami nem PostProcessing-et valósít meg, hanem sima Processinget akárhány elemre.

1, Ez kb úgy néz ki, hogy normál módban kirajzolod 3D-ben azokat a dolgokat amikre nem akarsz custom filtert tenni.
2, Létrehozzuk a mProcessingFilterController osztályt, majd hozzáadjuk a ProcessingFilter-eket. A ProcessingFilter osztály egy FBOControllert használ, amibe belerakhatunk egy saját filtert. (pl egy chromatic aberration-t)
3, Ezután hozzáadjuk a processingFilter.setRenderObjects(objects); -el azokat az elemeket, amikre szeretnénk a filtert létrehozni. (Természetesen ezeket nem rajzoljuk ki a képernyőre, csak az FBO-ra)
4, Kirajzoljuk a 3D kirajzolás után az FBO-kban lévő képet (ezt ugye 2D Camera-val egy Plane-re és Blending-el)

Lehetőség van elviekben akárhány filtert létrehozni 1-1 objectre, vagy csak a shaderben több fázisban rendereljük ki. Fontos tényező, hogy a mobil eszközök nem nagyon bírják a fragment cuccokat (főleg blur, vagy light scattering megvalósítása, pláne ha a device screen size nagyobb mint 1000 pixel, ekkor ugyanis a GPU megizzad és laggolás jelentkezik) ezért a ProcessingQuality minőségét célszerű MEDIUM-ra vagy LOW-ra rakni.

https://github.com/lacasrac/switch_custom_fbo_on_rajawali