現在是22點43分,剛下班回家,因為遊戲要十二月份上線,比之前的計畫提前了三個月,拼命的加班啊。。
一什麼是頂點快取
在遊戲中,物體模型是用多邊形網格來描述的,一般的是三角形,頂點快取就是來儲存用來描述物體模型的所有多面形的頂點的資訊,這些資訊有頂點的三維座標,頂點顏色,頂點法向量,紋理座標等。
二如何使用頂點快取
使用頂點快取分為四步
1設計頂點快取
就是用來說明你的頂點中有哪些資訊
比如:
struct myvertex
然後用乙個巨集來描述頂點所包含的資訊,以便隨後設定到環境中
#deifne d3dfvf_myvertex (d3dfvf_xyzrhw|d3dfvf_diffuse)
2建立頂點快取
函式 createvertexbuffer
比如:lpdirect3dvertexbuffer9g_pvertexbuffer = null;
if( failed( g_pd3ddevice->createvertexbuffer( 3*sizeof(customvertex),
0, d3dfvf_customvertex,
d3dpool_default, &g_pvertexbuffer, null ) ) )
3 訪問頂點快取
函式 訪問之前需要先把頂點快取的記憶體鎖住,然後讀寫資料,然後解鎖,直接貼出**
//頂點資料,
customvertex vertices =,,
,};//填充頂點緩衝區
void* pvertices;
if( failed( g_pvertexbuffer->lock( 0, sizeof(vertices), (void**)&pvertices, 0 ) ) )
return e_fail;
memcpy( pvertices, vertices, sizeof(vertices) );
g_pvertexbuffer->unlock();
4 繪製圖形
這裡就是繪製三角形
這裡要分三小步
(1)設定資料來源
函式 setstreamsource
(2)設定定點格式
函式 setfvf
(3)繪製圖形
函式 draworimitive
貼**
g_pd3ddevice->setrenderstate(d3drs_shademode,d3dshade_gouraud);//設定渲染狀態
g_pd3ddevice->setstreamsource( 0, g_pvertexbuffer, 0, sizeof(customvertex) );
g_pd3ddevice->setfvf( d3dfvf_customvertex );
g_pd3ddevice->drawprimitive( d3dpt_********list, 0, 2 );
菜鳥DirectX之紋理對映
一紋理對映是什麼 就是你用前面部落格中講到的方法繪製乙個正方形後,在正方形上貼一張你想要顯示的 二紋理對映的使用 使用方法分為四步 1 在頂點格式中定義紋理的座標 比如 struct myvertex 2 填充頂點資料 customvertex vertices void pvertices if ...
菜鳥DirectX之Direct顯示文字
幾乎所有的程式語言的第一步都是輸出乙個 hello world 吧,再悶輸出個中文版的 你好,世界 directx中顯示文字有兩部 一 建立字型,就是你想用 宋體 還是 黑體 之類的 函式 d3dxcreatefont 二繪製出文字 函式 drawtext 三顯示文字 函式 present 熟悉gd...
菜鳥DirectX之光照與材質
光照 一 先介紹一下光照的型別吧 1 環境光 特點 稱它為背景光更合適,只有乙個顏色亮度,不會衰減。2 漫反射 特點 沿著特定的方向傳播,碰到障礙物時沿著各個方向反射,和觀察者的位置無關 3 鏡面反射 特點 當光線碰到障礙物時將嚴格的沿著另一方向反射 4 自發光 特點 物體自身發的光 不參與光照的計...