在GLSL中爲renderscript創建自定義着色器時,程序生成器似乎將所有綁定爲統一常量的結構成員轉換爲浮點或vec,而不管它們的指定類型是什麼。此外,我有一個統一的編譯時報告以下錯誤:「無法鏈接程序,L0010,統一」統一名稱在這裏「精度不同。」我在兩個不同的結構中有相同的命名統一體,它們分別綁定到頂點和片段着色器。編輯] 感謝您對第二部分的回答。關於第一部分,我會嘗試更加清晰。在java端構建我的着色器程序時,我將常量綁定到程序構建器(包括頂點和片段),輸入是綁定到renderscript結構的java變量。一切都很好,所有我的浮點變量都可以在着色器程序中作爲制服完全訪問。然而,如果結構有一個如bool或int類型的成員,並且我嘗試了諸如if(i == UNI_memberInt),其中我是在着色器中聲明的整數計數器,或者如果(UNI_memberBool)那麼我得到錯誤「不能將int與float進行比較」或「if()條件必須是布爾類型」,這暗示了數據並未完整地呈現給GLSL程序。我可以通過使它們浮動值並使用像0.0這樣的東西來解決這個問題,因爲GLSL要求浮點值0總是精確的,但對我來說似乎很粗糙。如果我嘗試在for循環中使用UNI_memberInt作爲停止條件,則會發生類似的情況。Renderscript GLSL着色器將所有制服轉換爲浮動
0
A
回答
1
感謝您在開發者環聊中詢問此問題。不幸的是,Renderscript團隊的工程師不太理解您的問題的第一部分。如果你可以澄清那會很好。至於第二部分,這是一個已知的錯誤。
基本上,如果你在頂點和片段着色器中都有一個統一的「foo」,那麼頂點着色器是高精度的,片段着色器是中等的,GLSL編譯器無法處理。不幸的是,解決方案是兩者之間沒有任何名稱衝突。
相關問題
- 1. 將混合cg/hlsl着色器轉換爲glsl es
- 2. GLSL着色器
- 3. 將表面着色器轉換爲片段着色器
- 4. 將OpenGL HQX着色器轉換爲LibGDX
- 5. 將浮點數轉換爲GLSL中的十進制數字?
- 6. GLSL:頂點着色器無片段着色片段着色器
- 7. 滾動紋理的GLSL着色器
- 8. OpenGL GLSL着色器統計
- 9. 使用GLSL着色器SDL2
- 10. GLSL着色器閃爍
- 11. GLSL邊框着色器
- 12. GLSL着色器問題
- 13. GLSL着色器檢測
- 14. 爲Nvidia和AMD修復GLSL着色器
- 15. LWJGL GLSL着色器沒有編譯
- 16. GLSL將着色的法線傳遞給着色器
- 17. 從GLSL着色器直接位置計算轉換mattrix
- 18. GLSL 120頂點着色器顯示比着色器程序更少的活動制服
- 19. 爲什麼我的所有粒子都有相同的旋轉和顏色? (GLSL着色器)
- 20. GLSL內插彩色鑲嵌着色器
- 21. 將GLSL轉換爲C#
- 22. 將glsl 150轉換爲120
- 23. Renderscript FixedFunction着色器的外觀如何?
- 24. 更改頂點着色器中的浮點數(GLSL)
- 25. Mac上的GLSL着色器錯誤,但不是Windows:無法從'const int'轉換爲'4分量浮點矢量'
- 26. 如何做着色器轉換爲azimuthal_equidistant
- 27. GLSL,着色器有一些數組限制?
- 28. 着色器和opengl轉換
- 29. 編譯GLSL着色器打破其他着色器
- 30. 腳本着色器轉換爲JS着色