我有了这个顶点着色器乘以当对象消失。GLSL通过矩阵
这里就是我设置MVP代码:
mat4 model = translate(mat4(), vec3(0,0,0));
mat4 view = translate(mat4(), vec3(0,0,-10));
mat4 proj = perspective(90.0f, (float)1280/720, 0.001f, 1000.0f);
mat4 MVP = model * view * proj;
GLint uniform_loc = glGetUniformLocation(this->_shaderID, "MVP");
glUniformMatrix4fv(uniform_loc, 1, GL_FALSE, value_ptr(matrix));
我尝试了不同的乘法订单和着色器multiplicating。
你从GLGeterror()中得到了什么吗?我认为你必须在将'mat4'乘以它们之前将'vec3()'上传到'vec4()'。绝对不要忘记,代码在你的编程中不在你的GLSL中。你在'vec4()' – zero298
中包装它们顺便说一句,你需要在片段着色器中使用剪辑空间位置('MVP * vertPosition')?从技术上讲,它不是剪辑空间,因为你切掉了重要的'W'组件(用于裁剪,因此名称),但它似乎仍然不是特别有用。碎片着色器已经隐式地包含了一个在屏幕空间中定义的位置('gl_FragCoord'),这取决于你使用'fragPosition'的方式,你根本不需要它。 –