真是搞不懂這投影矩陣

在C++程序中準備好投影矩陣與變換矩陣, 而後再在頂點着色器中進行運算.算法

記錄遇到的一些問題:函數

#1. Matrix4<float>::createFrustum vmath的這個函數, 直接使用的話, 是看不見東西的, 但它的算法與書上是同樣的. 投影矩陣第三行第四列的值算出來會很大, 致使Z值會很大,而後看不見.學習

#2. 電腦屏幕是二維的, 因此算出來的座標,多是除以了Z值這個齊次座標. 算出來的矢量中, 有時, 第四個值可能爲0.get

#3. 模型的頂點數據不能爲負數. 一但有負數就看不見. 多是像機位置的緣由.it

#4. createFrustum中的數值, 個人設置是 (Screen_Width, -Screen_Width, Screen_Width, -Screen_Width, -Screen_Width, Screen_Width / 2) 但第一個數值是[左] 應該是負數纔對? 難道全反了?rust

#5. Z值的平移, 會在最終的算後, 在矢量的第四個值體現, 這麼說來, 屏幕上的投影,矢量中的Z值與W值都有影響.float

#6. glVertexAttribPointer它的第四個參數設置爲GL_TRUE 開啓歸一化, 這一修改曾經解決了看不見東西的問題.程序

總的來講, 投影矩陣的學習 並不順利im

簡單地顯示模型

工程文件: VS2017的解決方案數據

相關文章
相關標籤/搜索