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