2012-06-03 49 views

回答

7

不是詢問,卻得到了答案,可能會或可能不會在未來是正確的,你的應用程序應該使用這樣的事情在運行時編程檢查:

glGetIntegerv(GL_MAX_TEXTURE_UNITS, &MaxTextureUnits); 
+0

GL_MAX_TEXTURE_UNITS沒有在gl.h中定義iOS –

+2

對不起 - 在ES 2.0中,它是'GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS'。 – user1118321

+2

實際上有'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS',和'GL_MAX_TEXTURE_IMAGE_UNITS'和'GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS'枚舉。首先是在頂點着色器中允許使用的紋理單元數量,第二個用於片段着色器,第三個組合用於兩個着色器。 –

0

其實答案就在同一頁你在問題地連接:

的OpenGL ES 2.0上的PowerVR SGX

限制

...

片段着色器中最多可以使用8個紋理。您不能在頂點着色器中使用紋理查找。

....

+0

「您可以在片段着色器中使用最多8個紋理。」與最大紋理單位不同。我可以使用多於1片段着色器。 –

+0

我很確定他們的意思是紋理單元。 –

+1

如果我使用2片段着色器,該怎麼辦?我可以加載到內存16紋理單位? –

2

有蘋果的iOS Device Compatibility Reference

在此基礎上跨所有iPhone和iPad的硬件的詳細列表,你是安全的使用高達 紋理單位任何 iOS設備。

+1

有用的答案 - 很好的瞭解*最小*期望值,而不僅僅是運行時的任意數字,因爲它會影響着色器的核心設計。 –

+0

鏈接已死亡 –