![](/img/trans.png)
[英]Android: How to use samplerExternalOES and sampler2D in same fragment shader
[英]Use 3D Texture for Fragment shader on Android
我需要在 Android 上的片段着色器中使用 3D 纹理,但出现编译错误。 我使用 GLES3.0,我认为它应该支持 3D 纹理。 我的着色器如下所示:
#extension GL_OES_texture_3D : enable
precision mediump float;
uniform sampler3D u_Texture;
没有#extension GL_OES_texture_3D: enable
我得到错误
L0003:保留关键字“sampler3D”
使用#extension GL_OES_texture_3D: enable
,我得到了错误
S0032:没有为变量“u_Texture”定义默认精度
即使我使用uniform medium float sampler3D u_Texture
,我也得到了
期待,发现 sampler3D 错误。
希望得到您的帮助!
非常感谢。
YL
首先,您必须在着色器程序的第一行中通过版本限定符指定 glsl 版本:
#version 300 es
精度限定符是highp
、 mediump
或lowp
并且必须在类型之前指定。 类型是sampler3D
而不是float
。
宣言
uniform medium float sampler3D u_Texture
有 2 种类型( float
和sampler3D
),因此会导致语法错误。
它一定要是
#version 300 es
uniform medium sampler3D u_Texture;
或使用默认精度限定符
#version 300 es
precision mediump sampler3D;
uniform sampler3D u_Texture;
(当然precision mediump float;
也必须指定)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.