1,direct3D編程中rhw值是什么意思有什么用
RHW是D3D里面的一種頂點(diǎn)格式,是一種自帶視圖、投影、世界等變換和光線計(jì)算等處理的頂點(diǎn)格式,而且這些處理我們無(wú)法用SetTransform等進(jìn)行的轉(zhuǎn)換。正常情況下頂點(diǎn)需要進(jìn)行視圖、投影、世界等變換和光線計(jì)算等處理才能顯示,但RHW已經(jīng)自帶了這些處理,所以RHW無(wú)需我們進(jìn)行這些處理,而且由于未知原因(我也才學(xué)Direct3D沒(méi)多久)也不能處理。由于以上理由,RHW一般用來(lái)學(xué)習(xí)和測(cè)試程序,實(shí)際來(lái)說(shuō)不用這個(gè)的。
你的directx是什么版本的?新版本的dorectx9c還不太穩(wěn)定,可以考慮使用dx9b,看還有沒(méi)有這種問(wèn)題。 另外,也有可能是顯卡驅(qū)動(dòng)的問(wèn)題,先卸載顯卡驅(qū)動(dòng),然后重新啟動(dòng),等系統(tǒng)檢測(cè)出顯卡以后,再重新安裝驅(qū)動(dòng)程序。 如果問(wèn)題依然存在,建議你格式化c盤(pán),重裝系
2,靈活頂點(diǎn)格式是啥意思
“靈活頂點(diǎn)格式”是Direct3D在使用三角形來(lái)描述物體模型時(shí)的一種描述方式。Direct3D應(yīng)用程序可以用幾種不同的方式定義靈活頂點(diǎn)格式。靈活頂點(diǎn)格式使應(yīng)用程序只使用它需要的頂點(diǎn)數(shù)據(jù),排除那些它不需要的組成成分。這樣,應(yīng)用程序可以節(jié)省內(nèi)存空間,減少系統(tǒng)帶寬。通過(guò)D3DFVF的組合,可以描述圖元頂點(diǎn)的格式。靈活頂點(diǎn)格式指定的格式包括點(diǎn)的大小,用D3DFVF_PSIZE指定,該大小在投影機(jī)空間用來(lái)表示未經(jīng)變換的頂點(diǎn),在設(shè)備空間用來(lái)表示經(jīng)過(guò)變換的頂點(diǎn)。擴(kuò)展資料:定義頂點(diǎn)格式struct CustomerVertexFLOAT x,y,z,rhw;DWORD color; };注: RHW表示投影空間中頂點(diǎn)所在的齊次點(diǎn)(x,y,z,w)(homogeneous point)的w坐標(biāo)的導(dǎo)數(shù)(reciprocal), 注意的是,D3DFVF_XYZRHW和D3DFVF_XYZ、D3DFVF_NORMAL不能共存,因?yàn)楹髢蓚€(gè)標(biāo)志與前一個(gè)矛盾。在使用這種頂點(diǎn)時(shí),系統(tǒng)需要頂點(diǎn)的位置已經(jīng)經(jīng)過(guò)變換了。在定義完頂點(diǎn)格式以后,就要開(kāi)辟一塊頂點(diǎn)緩沖區(qū):g_pd3dDevice->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),0, D3DFVF_CUSTOMVERTEX,D3DPOOL_DEFAULT, &g_pVB, NULL ) 開(kāi)辟緩沖區(qū)后,就需要對(duì)這個(gè)緩沖區(qū)進(jìn)行填寫(xiě),那么填寫(xiě)的數(shù)據(jù)呢,也需要先指定出來(lái): CUSTOMVERTEX vertices[] =}; 然后將數(shù)據(jù)寫(xiě)入緩沖區(qū):VOID* pVertices;if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )return E_FAIL;memcpy( pVertices, vertices, sizeof(vertices) );g_pVB->Unlock();這里寫(xiě)入的過(guò)程用的是Lock函數(shù)得到的緩沖區(qū)的地址,然后用memcpy函數(shù)將自己寫(xiě)好的數(shù)據(jù)寫(xiě)進(jìn)去。到這里,頂點(diǎn)就算是創(chuàng)建好了。
“靈活頂點(diǎn)格式”是Direct3D在使用三角形來(lái)描述物體模型時(shí)的一種描述方式?! ∫粋€(gè)三角形包含三個(gè)頂點(diǎn),為了能夠通過(guò)三角形網(wǎng)格描述物體,首先需要定義這些三角形的頂點(diǎn)(Vertex),其中包括定義每個(gè)頂點(diǎn)的坐標(biāo)位置及顏色等其他屬性?! 办`活頂點(diǎn)格式”就是由用戶(hù)自定義其中所需要包含的頂點(diǎn)屬性信息,例如可以指定頂點(diǎn)的三維坐標(biāo),顏色,頂點(diǎn)法線坐標(biāo)及紋理坐標(biāo)等。在創(chuàng)建自定義靈活頂點(diǎn)格式時(shí),根據(jù)實(shí)際的需要可以定義一個(gè)只包含特定頂點(diǎn)信息的結(jié)構(gòu)體。例如,可以定義一個(gè)僅包含頂點(diǎn)x,y,z坐標(biāo)的靈活頂點(diǎn)格式的結(jié)構(gòu)體,也可以定義一個(gè)包含有頂點(diǎn)顏色,法線向量,紋理坐標(biāo)等復(fù)雜頂點(diǎn)信息的靈活頂點(diǎn)格式的結(jié)構(gòu)體。需要注意的是,在定義靈活頂點(diǎn)格式時(shí)必須按照如下的順序定義頂點(diǎn)的相關(guān)屬性: 位置->RHW->混合權(quán)重值->頂點(diǎn)法線向量->散射光顏色值->鏡面反射顏色值->紋理坐標(biāo)信息
通俗的說(shuō)就是可圓滑的點(diǎn)