摘要: Whereas you might be used to using the ID3DXMesh object to contain your mesh data, you may have found
it a pain to store the mesh's material and effects data separately. Not only that, but what about using the other
D3DX mesh objects, such as ID3DXPMesh and ID3DXSkinMesh? Why not just create a single mesh
object that represents all mesh types and contains all material data along with it?
閱讀全文
摘要: The D3DXFRAME object helps form a hierarchy of reference frames. These reference frames are used to
connect a series of meshes together, with each frame having its own transformation to apply to the mesh
connected to it. In this way of using frames to point to meshes, you can minimize the number of meshes used
because you can reference meshes instead of having to reload them.
閱讀全文
摘要: 一個渲染效果一般由以下部分組成:一個頂點和/或像素著色器,一個需要設置的設備狀態列表,一個或更多的渲染通道(rendering passes)。此外,有一個能在不同級別的圖形硬件上渲染效果的可靠機制通常是值得的(也就是說,有不同的可用的效果版本執行同樣的效果或盡可能嘗試執行同樣的效果)。顯然,所有這些必要的任務組合在一起成為一個效果。因此,一個合理的做法(步聚)是,設法將這些任務封裝到一個單元中。
Direct3D效果構架提供了這樣一個機制:將渲染效果的任務封裝到一個效果文件。在效果文件中實現效果有兩方面優勢。其一,它允許我們不必重編譯應用程序就能改變一個效果的執行。這是一種更新效果的過程,不管是修正一個bug,一些簡單的加強,或者利用最新的3D硬件特性。第二,它將所有的效果組成部分封裝到一個文件。
閱讀全文
摘要: 由于著色器通常是效果文件中的一個關鍵部分,所以我們在該例程的效果文件中使用了著色器。
閱讀全文
摘要: 霧化效果(以下簡稱霧)提高了場景的真實性,可以用它來模擬逼真的天氣狀況。另外,霧可以大大減少遠剪裁面 (far-clip)在視覺上帶給觀者的不自然的感覺。Direct3D霧化是固定功能管線的一部份,受渲染狀態限制。
閱讀全文
摘要: 對于頂點和像素著色器,我們需要從程序代碼中初始化效果文件中的變量以代替使用常量表,就象我們在頂點和像素著色器中做的那樣,ID3DXEffect接口中有內建的設置變量的方法。我們這里不會列出所有的設置不同類型變量的方法,因為要完全列出實在是大多了—請查看DirectX SDK文檔以獲得完整列表。這里是一個刪節的列表:
閱讀全文
摘要: 一個渲染效果一般由以下部分組成:一個頂點和/或像素著色器,一個需要設置的設備狀態列表,一個或更多的渲染通道(rendering passes)。此外,有一個能在不同級別的圖形硬件上渲染效果的可靠機制通常是值得的(也就是說,有不同的可用的效果版本執行同樣的效果或盡可能嘗試執行同樣的效果)。顯然,所有這些必要的任務組合在一起成為一個效果。因此,一個合理的做法(步聚)是,設法將這些任務封裝到一個單元中。
Direct3D效果構架提供了這樣一個機制:將渲染效果的任務封裝到一個效果文件。在效果文件中實現效果有兩方面優勢。其一,它允許我們不必重編譯應用程序就能改變一個效果的執行。這是一種更新效果的過程,不管是修正一個bug,一些簡單的加強,或者利用最新的3D硬件特性。第二,它將所有的效果組成部分封裝到一個文件。
閱讀全文
摘要: 2004年,某國際電子游戲公司員工的家人以Ea_spouse為名,在某網站上發布文章,講述了其配偶由于高強度、長時間的加班,對自己的身體健康以及家庭生活造成了很不好的影響。一石激起千層浪,關于電子游戲開發行業人士生活質量的話題再次引起了大家的熱烈討論。Ea_spouse收到了上千個回復,此事也很快被主要媒體跟蹤報導。通過網絡,上千人參與了這個自發的大規模討論,內容涉及強制加班、工作效率、怠惰、工會、訴訟以及對很多公司的控訴等議題。
我已經做了二十多年軟件項目的開發與管理工作。過去的每一年,做過的每一個項目,都讓我更堅信:加班趕進度——“趕工”——是一種高成本、低產出且極具破壞性的工作方式。“工作持續時間越長,工作效率越低”已是常識了。然而隨著時間的推移,我已注意到:由于過多額外加班導致工作效率下降的速度,要超過大多數軟件行業管理者的認知。隨著調查深入,我驚訝地發現我并不是第一個認識到這一點的人:近一個世紀以來,傳統工業的工程師們對于我所觀察到的問題早已達成共識。
閱讀全文
摘要: 像素著色器是一段執行在圖形卡的GPU上的程序,它運行在對每個像素進行光柵化處理時。(不像頂點著色器,Direct3D不會以軟件模擬像素著色器的功能。)實際上它替換了固定功能管線的多紋理化階段(the multitexturing stage),并賦予我們直接操縱單獨的像素和訪問每個像素的紋理坐標的能力。這種對像素和紋理坐標的直接訪問使我們可以達成各種特效,例如:多紋理化(multitexturing)、每像素光照(per pixel lighting)、景深(depth of field)、云狀物模擬(cloud simulation)、焰火模擬(fire simulation)、高級陰影技術(sophisticated shadowing technique)。
閱讀全文
摘要: 在像素著色器中使用HLSL的內建函數tex*XXXX給紋理采樣。注意:采樣時引用紋理上圖素的坐標索引和采樣器狀態來生成像素。
閱讀全文