1. 程式人生 > >深入探索透視紋理對映(下)

深入探索透視紋理對映(下)

上面我們通過數學推導,實現了一個正確的透視紋理對映演算法。實際上,實現一個完整的軟體光柵器還有很多的事情要做。但至少你已經找到了一把開啟這扇門的鑰匙——我們在核心層面上已經掌握了透視紋理對映技術——現代光柵器的核心。另外,如果你真的要實現一個軟體光柵器,我給你推薦Chris Hecker的系列文章《Perspective Texture Mapping》。我們這裡的很多知識,都是來源於這個系列。另外,Chris Hecker的好朋友Michael Abrash,有一個系列文章叫做《Ramblings in Realtime》(我管它叫《Quake技術內幕》),裡面記載了他和John Carmack
一起研製Quake時候關於技術的方方面面。其中就提到了關於Quake的透視紋理對映,也是基於Chris Hecker在文章中所提到的技術。因此,可以說Quake引擎中的透視紋理對映就是使用這樣的插值技術實現的。《Perspective Texture Mapping》中使用了很多非常棒的技巧,比如三角形的整體坡度計算,可以不用像我們上面的演算法中,每次都重複計算三角形內部的一些增量。還有畫素的填充規則,這個是非常重要的光柵化技巧,沒有填充規則,模型的很多部分都會重複繪製或者無法被繪製。基於誤差項的前向微分的DDA迭代方法,避免了浮點數運算等等。他把一個簡單的透視紋理對映光柵器進行了一次又一次的優化、升級,最終寫成一個能夠實際運用到遊戲中的軟體渲染器。下面就是關於這個系列文章的導讀,對你理解這個系列應該有所幫助。