3D遊戲從入門到精通 9

2021-08-22 05:07:14 字數 976 閱讀 9406

1、

投影變換矩陣

投影變換矩陣是做什麼的呢?這個更容易理解了。大家都應看過**吧,那大家又想過**是怎麼樣表現原來的物體呢?看到遠處的山是小的,近處的人是大的。並且只有在一定的範圍內的物體才照得清楚,其它的就不見了。在d3d裡就需要把三維的物體空間投影到二維的螢幕空間顯示,這就需要投影了。本來人眼看現實的物體時,總是經過投影變換的,把三維的物體通通變換成二維東西,這樣就在人眼上看見東西就是三維的了。現在這個投影變換就是模擬人眼的作用,沿著光線的方向,那些能看見,那些不能看見。那些是近的,那些是遠的。通過這樣的計算,就會生成二維的影象,跟人眼看到真實的世界是相同的。

如下圖所示:

在d3d裡通過設定投影前截面、後截面、視角和長寬比來構造投影矩陣,使用下面的函式來構造這個投影變換矩陣:

d3dxmatrixperspectivefovlh( &m_mprojection, ffov, faspect, fnearplane, ffarplane );

第乙個引數是返回的矩陣,第二引數是視角,第三個引數是長寬比,第四引數是近截面,第五引數是遠截面。

構造好投影變換矩陣,就可以通過下面引數設定:

// 設定投影矩陣。

const d3dxmatrix& mproj = ccamerafirstperson::instance()->getprojectionmatrix();

m_pd3ddevice->settransform( d3dts_projection, &mproj );

這樣就可以設定好d3d的裝置投影矩陣。

電子書mm3d引擎源程式例子源程式49元一套

聯絡人:蔡軍生

****:

email: caimouse1976 at sina.com

3D遊戲從入門到精通 31

當我們看到現實世界裡,有很多山地。那麼這種山地,在 3d世界裡又是怎麼樣顯示出來的呢?要模擬現實中的山地,就需要研究它怎麼樣構成,然後採用各種方法建立出來。在遊戲的世界裡,對於地形的要求是不嚴謹的,只要看起來像山地,就行了,而不像其它地理系統,一定要精確到跟現實世界里山比例一樣。因此,在這裡建立的 ...

3D遊戲從入門到精通 21 22

2.10.1 燈光與材質 在現實的世界裡,沒有光線,是什麼東西也看不見的。在d3d的世界裡,也是一樣的。但是在d3d裡有一種光線,是非常奇怪的,這種光線是沒有方向,沒有位置,整個世界全可以照亮的光線,它就是環境光,它其實有點像我們現實生活裡的無影燈。在d3d裡光線分為三種型別,分別是點光源 聚光燈和...

3D遊戲從入門到精通 11

2.10.1 索引緩衝區 上面已經學習了最簡單的三角形顯示,了解了整個3d物體的顯示流程,下面來學習乙個複雜一點的物體顯示,使用12個三角形構造成的正方體顯示。並且通過個例子學會使用索引緩衝區,提高圖形繪製的速度和效率。1 使用三角形構造立方體 由前面可知,任何複雜的物體,都是由三角形組成的。現在就...