问题描述
我正在尝试在android上渲染3d网格,顶点的位置如下所示:
var positionHandle = GLES20.glGetAttribLocation(program,"vPosition").also {
GLES20.glEnableVertexAttribArray(it)
GLES20.glVertexAttribPointer(
it,3,GLES20.GL_FLOAT,false,12,vertexBuffer
)
}
我的顶点着色器:
uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
varying vec4 positionOut;
void main() {
gl_Position = uMVPMatrix * vPosition;
positionOut = vPosition;
}
片段着色器:
varying vec4 positionOut;
precision mediump float;
void main() {
gl_FragColor = vec4(1,1,1);
}
此代码在一个设备(OnePlus设备上的Android 9)上可以正常工作,但在(Android 10 Samsung Galaxy设备)上不起作用,并且不会引发任何错误。
如果我从片段着色器中删除行varying vec4 positionOut;
,则渲染起作用。
问题是,为什么仅可变变量的定义会破坏渲染?我现在不使用该变量,但我想在下一步中使用它。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)