在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. 将表面着色器转换为片段着色器
- 3. GLSL:顶点着色器无片段着色片段着色器
- 4. LWJGL GLSL着色器没有编译
- 5. GLSL将着色的法线传递给着色器
- 6. 从GLSL着色器直接位置计算转换mattrix
- 7. GLSL 120顶点着色器显示比着色器程序更少的活动制服
- 8. 为什么我的所有粒子都有相同的旋转和颜色? (GLSL着色器)
- 9. Renderscript FixedFunction着色器的外观如何?
- 10. 更改顶点着色器中的浮点数(GLSL)
- 11. 着色器和opengl转换
- 12. 将jni代码转换为renderscript
- 13. android-Renderscript将NV12 yuv转换为RGB
- 14. 如何从ID3DXEffect获取所有着色器常量(制服)?
- 15. 如何编写通用GLSL着色器来着色对象
- 16. 通用GLSL照明着色器
- 17. GLSL着色器分析工具
- 18. Vulkan中的实例化GLSL着色器?
- 19. 使用lines_adjacency的GLSL几何着色器
- 20. GLSL顶点着色器崩溃电脑
- 21. GLSL顶点着色器gl_Position值
- 22. 着色器太阳位置 - glsl
- 23. GLSL顶点着色器编译错误
- 24. 如何调试GLSL着色器?
- 25. GLSL着色器和WebGL问题
- 26. GLSL片段着色器语法错误
- 27. GLSL点燃顶点着色器
- 28. C++在OpenGL着色器(GLSL)位标志
- 29. 影子着色器优化(GLSL)
- 30. GLSL直通几何着色器