1. 程式人生 > >關於OpenGL ES繪製效率問題的認識

關於OpenGL ES繪製效率問題的認識

OpenGLES一般在Render的OnDrawFram()進行繪製函式的呼叫,並實時重新整理繪製。繪製函式裡會將物體的頂點座標、法向量座標、紋理座標等實時渲染。對於渲染的資料流最好掌握一個“少次多量”的原則,涉及頂點和片元著色器的IO呼叫,所以避免“少量多次”會導致繪製卡頓現象,直接影響GLSurfaceView介面的互動。 舉例:解析一個obj檔案,裡面有很多面face,並且不同的面對應不同紋理材質Newmtl。如果以面為單位進行渲染,資料量大一點,直接卡死。。。。最好的辦法是建立一個材質集合,將每個材質對應的資料統一到對應的集合裡,然後以每個材質為單位進行渲染,實現“少次多量”,實時繪製時間大幅提高,介面也非常流暢。