我正在寫一個當前運行良好的軟件渲染器,但我試圖獲得紋理座標的透視校正,並且看起來不正確。我爲我的渲染器使用與opengl相同的矩陣數學。要rasterise三角形我做到以下幾點:紋理座標在3D中的透視校正
使用模型視圖和投影矩陣變換頂點,並轉化爲剪輯座標。
用於每個三角形的每個像素,計算重心座標進行內插的屬性(顏色,紋理座標,法線等)
以校正立體我使用透視正確插值: (W是深度的座標頂點,c是頂點的紋理座標,b爲一個頂點的重心重量)
1/w = b0*(1/w0) + b1*(1/w1) + b2*(1/w2) c/w = b0*(c0/w0) + b1*(c1/w1) + b2*(c2/w2) c = (c/w)/(1/w)
這應該正確的角度來看,它有一點幫助,但仍然存在明顯的透視問題。我在這裏錯過了些什麼,也許是一些舍入問題(我使用所有數學的浮點數)?
在此圖像中看到紋理座標中的誤差沿着對角線明顯,這是通過深度座標進行除法的結果。
此外,這通常是用於紋理座標進行...是必要的其他特性(例如法線等)以及?
屏幕截圖可能會對您有所幫助。 – genpfault 2011-03-24 21:21:56
我不能添加屏幕截圖,直到我的評分爲10 :( – 2011-03-25 19:15:13
你現在的評分:D – Bahbar 2011-03-25 19:59:55