2012-05-21 52 views
1

我有一個簡單的問題,檢查內存中的整數值還是要求opengl做一些簡單的事情,比如使用程序,還是綁定紋理? 我正在寫着色器管理器類,只是想知道是否有任何差異,從我的角度來看,它看起來像檢查整數以避免不需要的調用更便宜。Opengl Es 2.0着色器管理器

回答

2

避免不必要的管線狀態變化總是一件好事,我可以想象檢查整數值將比製作glUseProgram調用便宜。在渲染時只需要「程序一致性」,所以大多數時候你都不會同時執行(check和glUseProgram)。我也建議你閱讀本指南http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008793-CH1-SW1。它會幫助您優化。

1

優化代碼的最佳方法之一就是避免儘可能多的OpenGL/DX函數調用。所以在大多數情況下,只檢查一個局部變量應該比使用openGL代碼更好。

有時OpenGL會與CPU同步執行一些代碼:像glGetTexImage,getPixels等......這會嚴重影響性能。

當談到'使用程序'或'綁定紋理'我不確切知道成本是多少。這取決於規格和設備實施。

相關問題