我有一个我不明白的问题。
我有一个着色器
String[] vsSource = new String[] {
"attribute vec3 aVertex;",
"attribute vec3 aColor;",
"uniform mat4 uMVMatrix;",
"uniform mat4 uPMatrix;",
"varying vec3 vColor;",
"void main(void) {",
" vColor = aColor;",
" gl_Position = uMVMatrix * uPMatrix * vec4(aVertex, 1.0);",
"}" };
我设置了矩阵uMVMatrix
和uPMatrix
,我希望在着色器中将它们相乘。当我尝试时,我的屏幕保持黑色。
当我在Java中将它相乘并将其传递给一个mat4变量时,我会看到我的三角形。
String[] vsSource = new String[] {
"attribute vec3 aVertex;",
"attribute vec3 aColor;",
"uniform mat4 mvpMatrix;",
"varying vec3 vColor;",
"void main(void) {",
" vColor = aColor;",
" gl_Position = mvpMatrix * vec4(aVertex, 1.0);",
"}" };
有人能告诉我为什么我不能在着色器中将它们相乘吗?
答案 0 :(得分:2)
尝试颠倒着色器中矩阵的顺序,即
gl_Position = uPMatrix * uMVMatrix * vec4(aVertex, 1.0);