0
我剛開始學習opengl,所以我可能不知道所有的東西。在VB.net中使用OpenTK。OpenGL:如何設置頂點z座標爲正數量?
我有這樣的代碼:
Dim pm As Matrix4 = Matrix4.CreatePerspectiveFieldOfView(1.57, 16/9, 0.1, 100)
GL.MatrixMode(MatrixMode.Projection)
GL.LoadMatrix(pm)
GL.Begin(PrimitiveType.Triangles)
GL.Vertex3(0, 0, -1) : GL.Color4(1.0!, 0!, 0!, 1.0!)
GL.Vertex3(1, 0, -1) : GL.Color4(0.0!, 1.0!, 0!, 1.0!)
GL.Vertex3(0, 1, -1) : GL.Color4(0.0!, 0.0!, 1.0!, 1.0!)
GL.End()
這正確繪製三角形。
但是當我改變z座標到+ ve時,它們消失了。就像GL.Vertex3(0, 0, +1)
時那個頂點消失一樣。當所有3個頂點的z座標都是+ ve時,什麼都看不見。 我認爲這是因爲一些矩陣的東西,所以我增加了一個翻譯上面定義的「PM」矩陣:
Matrix4.CreateTranslation(0, 0, +1.0!, pm)
仍然沒有任何反應。
但是,當所有人都-ve那麼一切都很好:
GL.Vertex3(0, 0, -10) : GL.Color4(1.0!, 0!, 0!, 1.0!)
GL.Vertex3(1, 0, -10) : GL.Color4(0.0!, 1.0!, 0!, 1.0!)
GL.Vertex3(0, 1, -10) : GL.Color4(0.0!, 0.0!, 1.0!, 1.0!)
注:我已經按照this指南。他的代碼似乎有同樣的問題,雖然沒有人解決它。 His code
有人可以向我解釋這個東西嗎?提前致謝。