我有了這個頂點着色器乘以當對象消失。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'的方式,你根本不需要它。 –