Windows Phone 7 XNA開發—基於矩陣定位

來源:互聯網
上載者:User

三維渲染帶來了很多新的挑戰:3D圖形是以模型而非簡單的位元影像來進行渲染的,我們需要切換到一個不同的角度來觀察接近或遠離螢幕的運動,同時需要以一種完全不同的方式來告訴XNA我們想在畫面的何處進行繪製。

當準備進行3D圖形渲染時,我們會使用一種基於矩陣的系統。矩陣可以將一系列的移動和變換編碼為一個緊湊的結構,然後應用到我們想要繪製的圖形中。執行此操作所需的大部分計算都以XNA函數的形式進行了封裝,因此我們無需過多的關注其內部運行方式。

與任何其他事物相同,可能需要一點時間來習慣以矩陣變換進行思維,不過一旦你習慣了就會發現它們是非常有用的工具。事實上,最終你可能會發覺比起XNA的精靈渲染方式,你更喜歡矩陣變換。

在進行3D渲染時,XNA通常會使用一套抽象的座標系統,而不是精靈渲染中基於像素的座標系統,也就是說這裡並不關注像素。雖然一開始聽上去這像是一個缺點,不過使自己擺脫像素座標實際上大有裨益。

當我們初始化XNA時,可以告訴它螢幕的尺寸然後座標系統會自動擴充從而進行尺寸匹配。因此,如果將繪圖物件向右移動一定的距離,實際移動的這段距離是與背景緩衝區尺寸無關的。所以,我們應考慮使用更小的緩衝區來提高效能,同時無需更改任何渲染代碼。

談到圖形的繪製,其實XNA無法繪製任何比三角形更複雜的內容。乍一看這似乎很嚴格,但事實上,你會發現它並不是我們在某些樣本項目中所使用的那樣。

在繪製時,我們將每個三角形稱為表面。構成三角形的點稱為頂點。圖中顯示了使用四個頂點建立的兩個三角形面。其中有兩個頂點被兩個三角形共用。

這些頂點實際上並不會被XNA顯示出來,只會顯示由它們定義的表面,圖中的頂點僅僅是為展示它們的作用。

除三角形以外其他可用的基元只有線條。

在渲染精靈時,每個獨立的繪圖調用都提供了進行繪製所需的全部資訊,3D渲染的方法則稍有不同。XNA維護了大量的狀態值資訊,比如當前渲染正在使用的紋理,是否啟用了透明度,是否開啟了光照等等。

為了使渲染效果與預期一致,這些狀態都必須在渲染調用之前進行設定。一旦狀態設定後,就會保持其狀態值,直到再次對其變更為止。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.