d3d遊戲入門例子中遇到的小問題

2021-04-20 09:23:41 字數 1489 閱讀 9504

以下**,用4個定點畫個巨型,結果只顯示乙個三角形,

, // x, y, z, rhw, color,,

,  ........

g_pd3ddevice->drawprimitive( d3dpt_********strip,0,2);

解決辦法:  關閉背面剔除,顯示2個三角,但不是矩形。http://bbs.gameres.com/showthread.asp?threadid=29028

"可以畫出兩個三角形的,卻組不成正方形,你看不到,是因為法線在反面,設定為雙面渲染你就知道了!"

10月16日:

hresult drawprimitiveup(

d3dpt_pointlist,        //d3dprimitivetype  primitivetype    圖元型別

g_width,                            //uint  primitivecount   傳送給函式的圖元總數

data,                                   //const void* pvertexstreamzerodata  圖元資料陣列

sizeof(point_vertex));     //uint  vertexstreamzerostride 每個頂點的大小

drawprimitiveup()函式的引數包括要繪製的圖元型別、圖元數量、儲存要繪製的資料陣列、頂點流大小。

第乙個引數是圖元型別,如果要繪製的圖元是一些點,那麼該引數值可以設為d3dpt_pointlist;如果要繪製的圖元是一些線段,那麼該引數值可以設為d3dpt_linelist(例如:點1和點2連線,點3和點4連線);如果要繪製的圖元是連線的線段,那麼該引數值可以設為d3dpt_linestrip(例如:點1和點2相連,點2和點3相連);如果要繪製的圖元是一些離散的三角形,那麼該引數值可以設為d3dpt_********list(例如:點1、點2和點3構成乙個三角形,而點4、點5和點6構成另乙個三角形);如果要繪製的圖元是一些相連的三角形,那麼該引數值可以設為d3dpt_********strip(例如:點1、點2和點3構成乙個三角形,點2、點3和點4構成另乙個三角形);也可以設為d3dpt_********fan(例如:點1、點2和點3構成乙個三角形,而點1、點3和點4構成另乙個三角形)。當處理三角形時,所選的三角形型別取決於將資料傳送給渲染api的方式。如果傳送給direct3d api一列三角形,而三角形中的每個點互不相同,那麼d3dpt_********list就是最佳選擇。其餘引數非常簡單明瞭。第二個引數是傳送給函式的圖元總數。如果將要繪製10個三角形,那麼應該設該引數為10,除非只想繪製某一部分圖元。第三個引數是傳送給該函式的圖元資料陣列。第四個引數和最後乙個引數是每個頂點的大小(單位:位元組)。如果每個頂點都只指定了x、y、z浮點座標位置資料,那麼該引數值應該是12個位元組。這因為它包含三個值,每個值分別是4個位元組。

D3D中的渲染

虛擬世界中渲染幾何體一般來說有三種途徑 自定義座標渲染 d3dx內建模型渲染和外部模型資料渲染。第一步 定義頂點資料結構體 d3d提供了自定義頂點結構的機制,通過自定乙個結構體,來儲存我們所希望具有的頂點資料,例如 stuct colorvertex 頂點結構體定義好之後,需要用靈活頂點格式標記的組...

關於D3D中的顏色

1.當模型自帶顏色時,使用白色光照即可顯示出模型的本色,如果禁用光照,那麼模型就是黑色 2.當模型自帶顏色時,要通過設定material來設定模型的顏色,然後用白色光照之即可 1for dword i 0 i m dwnummtrls i 213m pmesh drawsubset i 14 15 ...

關於D3D中的顏色

1.當模型自帶顏色時,使用白色光照即可顯示出模型的本色,如果禁用光照,那麼模型就是黑色 2.當模型自帶顏色時,要通過設定material來設定模型的顏色,然後用白色光照之即可 3.有紋理的模型,一般不需要光照,因為紋理本身有顏色 4.每個模型繪製前要做好光照設定,比如禁用光照,或者指定某種顏色的光照...