繁体   English   中英

在 Android 上为片段着色器使用 3D 纹理

[英]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

精度限定符是highpmediumplowp并且必须在类型之前指定。 类型是sampler3D而不是float

宣言

uniform medium float sampler3D u_Texture

有 2 种类型( floatsampler3D ),因此会导致语法错误。

它一定要是

#version 300 es

uniform medium sampler3D u_Texture;

或使用默认精度限定符

#version 300 es
precision mediump sampler3D;

uniform sampler3D u_Texture;

(当然precision mediump float;也必须指定)

请参阅OpenGL ES 着色语言 3.20 规范 - 4.7.3。 精密预选赛

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM