2012-01-17 82 views

回答

6

OpenGL ES 2.0在所有頂點處理中使用着色器。所以它取決於你可以創建多少個統一的矩陣。這是一個實現定義的限制,因此它因硬件而異。

您還可以使用四元數+位置代替全矩陣來節省空間。

+0

如果ES 2.0支持頂點紋理處理,您也可以使用紋理作爲轉換數據,這可能會提供更多的內存。但我想表現不會那麼好。 – 2012-01-17 17:38:07

+0

感謝您的回答!正如蘋果指定的[這裏](http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESPlatforms/OpenGLESPlatforms.html)PowerVR SGX上的OpenGL ES 2.0支持「多達128個統一頂點着色器中的向量「。這如何轉化爲統一矩陣的最大數目? – 2012-01-17 17:54:24

+6

@JonasBromö:這取決於。如果你使用'mat4's,那麼你將數字除以4,所以32.如果你使用'mat3x4'並做一些換位工作,那麼你將數字除以3,所以42.如果使用四元數+位置作爲我建議,只需要2個向量,所以你可以有64個。減去你可能需要的任何其他制服,比如投影矩陣等等。 – 2012-01-17 18:22:30

1

從iOS 7開始,您可以從頂點着色器訪問紋理單元,因此您可以製作紋理,用矩陣填充它並從頂點着色器訪問矩陣。這將允許訪問更多的矩陣,代價是更復雜的實現。