摘要: 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.
閱讀全文
摘要: 一個(gè)渲染效果一般由以下部分組成:一個(gè)頂點(diǎn)和/或像素著色器,一個(gè)需要設(shè)置的設(shè)備狀態(tài)列表,一個(gè)或更多的渲染通道(rendering passes)。此外,有一個(gè)能在不同級(jí)別的圖形硬件上渲染效果的可靠機(jī)制通常是值得的(也就是說(shuō),有不同的可用的效果版本執(zhí)行同樣的效果或盡可能嘗試執(zhí)行同樣的效果)。顯然,所有這些必要的任務(wù)組合在一起成為一個(gè)效果。因此,一個(gè)合理的做法(步聚)是,設(shè)法將這些任務(wù)封裝到一個(gè)單元中。
Direct3D效果構(gòu)架提供了這樣一個(gè)機(jī)制:將渲染效果的任務(wù)封裝到一個(gè)效果文件。在效果文件中實(shí)現(xiàn)效果有兩方面優(yōu)勢(shì)。其一,它允許我們不必重編譯應(yīng)用程序就能改變一個(gè)效果的執(zhí)行。這是一種更新效果的過(guò)程,不管是修正一個(gè)bug,一些簡(jiǎn)單的加強(qiáng),或者利用最新的3D硬件特性。第二,它將所有的效果組成部分封裝到一個(gè)文件。
閱讀全文
摘要: 由于著色器通常是效果文件中的一個(gè)關(guān)鍵部分,所以我們?cè)谠摾痰男Ч募惺褂昧酥鳌?nbsp;
閱讀全文
摘要: 霧化效果(以下簡(jiǎn)稱霧)提高了場(chǎng)景的真實(shí)性,可以用它來(lái)模擬逼真的天氣狀況。另外,霧可以大大減少遠(yuǎn)剪裁面 (far-clip)在視覺上帶給觀者的不自然的感覺。Direct3D霧化是固定功能管線的一部份,受渲染狀態(tài)限制。
閱讀全文
摘要: 對(duì)于頂點(diǎn)和像素著色器,我們需要從程序代碼中初始化效果文件中的變量以代替使用常量表,就象我們?cè)陧旤c(diǎn)和像素著色器中做的那樣,ID3DXEffect接口中有內(nèi)建的設(shè)置變量的方法。我們這里不會(huì)列出所有的設(shè)置不同類型變量的方法,因?yàn)橐耆谐鰧?shí)在是大多了—請(qǐng)查看DirectX SDK文檔以獲得完整列表。這里是一個(gè)刪節(jié)的列表:
閱讀全文
摘要: 一個(gè)渲染效果一般由以下部分組成:一個(gè)頂點(diǎn)和/或像素著色器,一個(gè)需要設(shè)置的設(shè)備狀態(tài)列表,一個(gè)或更多的渲染通道(rendering passes)。此外,有一個(gè)能在不同級(jí)別的圖形硬件上渲染效果的可靠機(jī)制通常是值得的(也就是說(shuō),有不同的可用的效果版本執(zhí)行同樣的效果或盡可能嘗試執(zhí)行同樣的效果)。顯然,所有這些必要的任務(wù)組合在一起成為一個(gè)效果。因此,一個(gè)合理的做法(步聚)是,設(shè)法將這些任務(wù)封裝到一個(gè)單元中。
Direct3D效果構(gòu)架提供了這樣一個(gè)機(jī)制:將渲染效果的任務(wù)封裝到一個(gè)效果文件。在效果文件中實(shí)現(xiàn)效果有兩方面優(yōu)勢(shì)。其一,它允許我們不必重編譯應(yīng)用程序就能改變一個(gè)效果的執(zhí)行。這是一種更新效果的過(guò)程,不管是修正一個(gè)bug,一些簡(jiǎn)單的加強(qiáng),或者利用最新的3D硬件特性。第二,它將所有的效果組成部分封裝到一個(gè)文件。
閱讀全文
摘要: 2004年,某國(guó)際電子游戲公司員工的家人以Ea_spouse為名,在某網(wǎng)站上發(fā)布文章,講述了其配偶由于高強(qiáng)度、長(zhǎng)時(shí)間的加班,對(duì)自己的身體健康以及家庭生活造成了很不好的影響。一石激起千層浪,關(guān)于電子游戲開發(fā)行業(yè)人士生活質(zhì)量的話題再次引起了大家的熱烈討論。Ea_spouse收到了上千個(gè)回復(fù),此事也很快被主要媒體跟蹤報(bào)導(dǎo)。通過(guò)網(wǎng)絡(luò),上千人參與了這個(gè)自發(fā)的大規(guī)模討論,內(nèi)容涉及強(qiáng)制加班、工作效率、怠惰、工會(huì)、訴訟以及對(duì)很多公司的控訴等議題。
我已經(jīng)做了二十多年軟件項(xiàng)目的開發(fā)與管理工作。過(guò)去的每一年,做過(guò)的每一個(gè)項(xiàng)目,都讓我更堅(jiān)信:加班趕進(jìn)度——“趕工”——是一種高成本、低產(chǎn)出且極具破壞性的工作方式。“工作持續(xù)時(shí)間越長(zhǎng),工作效率越低”已是常識(shí)了。然而隨著時(shí)間的推移,我已注意到:由于過(guò)多額外加班導(dǎo)致工作效率下降的速度,要超過(guò)大多數(shù)軟件行業(yè)管理者的認(rèn)知。隨著調(diào)查深入,我驚訝地發(fā)現(xiàn)我并不是第一個(gè)認(rèn)識(shí)到這一點(diǎn)的人:近一個(gè)世紀(jì)以來(lái),傳統(tǒng)工業(yè)的工程師們對(duì)于我所觀察到的問(wèn)題早已達(dá)成共識(shí)。
閱讀全文
摘要: 像素著色器是一段執(zhí)行在圖形卡的GPU上的程序,它運(yùn)行在對(duì)每個(gè)像素進(jìn)行光柵化處理時(shí)。(不像頂點(diǎn)著色器,Direct3D不會(huì)以軟件模擬像素著色器的功能。)實(shí)際上它替換了固定功能管線的多紋理化階段(the multitexturing stage),并賦予我們直接操縱單獨(dú)的像素和訪問(wèn)每個(gè)像素的紋理坐標(biāo)的能力。這種對(duì)像素和紋理坐標(biāo)的直接訪問(wèn)使我們可以達(dá)成各種特效,例如:多紋理化(multitexturing)、每像素光照(per pixel lighting)、景深(depth of field)、云狀物模擬(cloud simulation)、焰火模擬(fire simulation)、高級(jí)陰影技術(shù)(sophisticated shadowing technique)。
閱讀全文
摘要: 在像素著色器中使用HLSL的內(nèi)建函數(shù)tex*XXXX給紋理采樣。注意:采樣時(shí)引用紋理上圖素的坐標(biāo)索引和采樣器狀態(tài)來(lái)生成像素。
閱讀全文