0
我一直在關注C++ OpenGL Matrices Tutorial並試圖將其轉換爲C#OpenTK,而不使用MVP矩陣我在屏幕上繪製了一個紅色三角形,但每當我嘗試使用它時,我都得不到任何繪圖或至少看不出任何內容,不管我在哪裏放置相機。OpenTK - 模型視圖投影問題
有下面的代碼片段,但你可以查看整個source code here
這是C#代碼來構建MVP矩陣
/Attempt to build our model view projection matrix
//We use an Identity matrix for the model
Matrix4 _model = Matrix4.Identity;
Matrix4 _projection = Matrix4.CreatePerspectiveFieldOfView(1.0f, 4.0f/3.0f, 0.1f, 100.0f);
//Camera will be as 4,3,3 looking at origin, and set up direction to 1
Matrix4 _view = Matrix4.LookAt(new Vector3(4,3,3), new Vector3(0,0,0), new Vector3(0,1,0));
//combine into our model view projection
Matrix4 _model_view_projection = _projection * _view * _model;
然後我們通過這個矩陣到頂點着色器,該vPosition元素從C#代碼
#version 330
uniform mat4 viewProjection;
in vec3 vPosition;
void main()
{
//This line doesn't work
gl_Position = viewProjection * vec4(vPosition, 1);
//This line works
//gl_Position = vec4(vPosition, 1);
}
如何將矩陣傳遞給着色器?有時最好將它們一個接一個地傳遞,並將它們結合到頂點着色器中 – greedsin
而且您的視圖矩陣的角度爲1,您可以將其設置在45和60之間 – greedsin
@ lolio會嘗試。另外,fov參數以弧度表示,所以1.0f大致爲60度 –