哈哈,花了兩天把POM完成,雖然我的愛機(jī)的配置很好,不過我還是按照了SM 2.0的規(guī)范寫的,雖然DirecxtX sdk那個(gè)是用SM 3.0寫的,效果帥多了....不過2.0的POM寫得花三個(gè)Pass,比較麻煩,所以我就實(shí)現(xiàn)它了~~
先傳圖把

寫的過程中遇到寫舊的錯誤,以前以為只是個(gè)小問題的,現(xiàn)在覺得該重視了,關(guān)于mul()函數(shù)的用法,都知道在線性代數(shù)里,矩陣和向量相乘必須首先滿足矩陣的行數(shù)等于向量的列數(shù),其次乘運(yùn)算時(shí),向量在前矩陣在后。不過在看很多shader代碼的時(shí)候我發(fā)現(xiàn),許多人都不注意這問題,而且在大部分情況下顛倒矩陣和向量的順序也是沒問題的。但我寫的時(shí)候就悲劇了。。。
譬如: Out.Position = mul( g_mWorldViewProjection, inPosition );
于是乎,顯示結(jié)果就很詭異:

我沒深入考慮這現(xiàn)象為何出現(xiàn),不過覺得肯定與乘法順序有關(guān),所以以后還是乖乖地按規(guī)則來了。。貼在此供路人參考了~~
原理過兩天補(bǔ)上,這兩天想實(shí)現(xiàn)的東西好多,大學(xué)的破課更多。。faint。。。