2012-12-11 52 views
1

我試圖在iPhone上的頂點着色器中使用採樣器。 documentation表示這在PowerVR SGX上不受支持。然而,似乎at least someone讓它在模擬器中工作,雖然不是沒有問題。iPhone上活動頂點着色器採樣器的實現限制

當我嘗試在模擬器(iOS 6中)上運行,我得到在編譯以下錯誤消息的着色器:

ERROR: Implementation limit of 0 active vertex shader samplers 
(e.g., maximum number of supported image units) exceeded, 
vertex shader uses 1 samplers 

other question是什麼改變得到了問?他們只是添加了一個(正確的!)錯誤信息?或者現在有可能在頂點着色器中使用採樣器? 手指交叉 ...

+0

你能否提供着色器代碼? – keaukraine

回答

2

我有完全相同的問題,所以我在WWDC詢問了幾位蘋果的OpenGL ES工程師。據他們說,在iOS 4.x中某些設備上的頂點着色器中的紋理採樣支持是一個錯誤,並且在iOS 5.x中已被刪除。

它從未得到官方的支持,而這個新的錯誤信息只是描述了爲什麼會失敗。在iOS 5.x以及運行iOS 4.x的大多數設備上,如果您嘗試過此操作,則只會顯示一個黑屏,並且不會有任何警告。他們所做的只是爲這種行爲添加一些解釋。

+0

謝謝!這就是我所懷疑的。看起來我必須在片段着色器中執行鎖定,這很好,但在頂點着色器中它會快得多:-( – hanno

+1

@hanno - 你可能會更有創意,並加載你的查找信息轉換爲屬性,就像我在這裏所做的:http://stackoverflow.com/questions/10316708/ios-glsl-is-there-a-way-to-create-an-image-histogram-using-a-glsl-着色器/ 10359305#10359305。但是,這可能不適用於你的情況。 –

+0

感謝你的聰明主意!這實際上可能工作,但我有點悲觀,它會快得多在我的情況下(我的情況是GPU如果你有興趣,這是我得到了多少:http://youtu.be/zh2SXx4vHpw – hanno