日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > DirectX游戲編程心得之:使用2-D坐標顯示2-D圖形的注意事項

DirectX游戲編程心得之:使用2-D坐標顯示2-D圖形的注意事項

來源:程序員人生   發布時間:2014-10-08 20:23:51 閱讀次數:3174次

        最近打算做幾款2-D小游戲,當然是用Direct3D來做的,所以就要使用Direct3D提供的2D頂點了。說是2D頂點,其實卻有4個分量!而正是因為這種矛盾性,所以使用起來有不少注意事項。這些是我浪費了很多的青春而發現的,希望大家吸取教訓啊!

        具體來說,有這么幾個方面的注意事項:

 

1、 2-D頂點結構的定義

   

        比如,要定義一個帶紋理坐標的2-D頂點結構,那么應該定義如下:

struct Vertex2DTex { Vertex2DTex():pos2D(0.0f, 0.0f, 1.0f, 1.0f), texCoord(0.0f, 0.0f){} Vertex2DTex(floatx, float y, float u, float v) : pos2D(x,y, 1.0f, 1.0f), texCoord(u, v) {} Vertex2DTex(floatx, float y, float z, float rhw, float u, float v) : pos2D(x,y, z, rhw), texCoord(u, v){} Vertex2DTex(const D3DXVECTOR4& thePos2D, const D3DXVECTOR2& uv) : pos2D(thePos2D),texCoord(uv){} inline Vertex2DTex& operator=(const Vertex2DTex& rhs) { if(this != &rhs) { pos2D= rhs.pos2D; texCoord= rhs.texCoord; } return*this; } D3DXVECTOR4 pos2D; D3DXVECTOR2 texCoord; static IDirect3DVertexDeclaration9* Decl; };

2、 2-D頂點的聲明

 

        比如,針對上述頂點結構,那么聲明如下:

IDirect3DVertexDeclaration9* Vertex2DTex::Decl= 0; //=============================================================== // Vertex2DTex D3DVERTEXELEMENT9 Vertex2DTexElements[]= { {0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 }, { 0,sizeof(D3DXVECTOR4), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD,0 }, D3DDECL_END() }; gd3dDevice->CreateVertexDeclaration(Vertex2DTexElements, &Vertex2DTex::Decl);


        當然,最后不要忘了釋放 Vertex2DTex::Decl 對象。

 

        PS:我們用一個4維向量來表示一個2-D坐標。如果用的是以前的FVF格式的頂點聲明的話,那么會看到這個2-D坐標是x, y, z, rhw。其中,x, y是頂點的屏幕坐標,z表示頂點的深度信息(這樣可以實現Z-Buffer 測試),而rhw似乎總是設為1.0。

 

3、 使用2-D頂點結構時,在設置D3DPRESENT_PARAMETERS時的注意事項

   

        設md3dPP 是一個D3DPRESENT_PARAMETERS 對象,那么除非有特殊需要,否則這樣設值:

md3dPP.EnableAutoDepthStencil = false;

        這樣,不論2-D坐標的z值為0.0和1.0之間的哪個值,都可以在屏幕上顯示出來(除非被遮擋)。

 

4、 針對2-D頂點使用effect

 

        使用2-D頂點時,也可以使用effect file,但是這時候的technique 只由PixelShader  組成,因為2-D頂點是變換后的頂點了,不能夠對其再進行變換了。所以,事實上,除非你想要對顏色本身做一些處理(比如說轉換成黑白畫面),否則基本上是不需要對2-D頂點使用effect file 的。

        不過,如果一定要使用的話,那么PixelShader 的參數為2-D頂點結構中除了2-D坐標以外的那些成分。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩中文字幕在线播放 | 国产精品久久久久久久久 | 欧美日韩在线第一页 | 亚洲国产日韩精品 | 亚洲综合久久久 | 福利二区 | 爱爱小视频网站 | 99精彩视频 | 国产精品久久久久久久久久三级 | 国产精品178页 | 久久毛片 | 免费黄色官网 | 亚洲欧美日韩天堂 | 成人在线免费av | 成人看片在线观看 | 国产精品久久久久久久久搜平片 | 一区二区不卡视频 | 最近最新2019免费中文视频 | 在线一区二区三区做爰视频网站 | 成人免费高清 | 国产四区 | 成人在线观看视频网站 | 色婷婷国产 | 国产疯狂做受xxxx高潮 | 五月婷婷综合在线 | 在线观看黄色免费网站 | 久久久首页 | 91一区二区 | 麻豆精品国产91久久久久久 | 欧美日韩激情视频 | 国产成人av一区二区三区 | 日本精品久久久 | 国产99在线 | 欧美 | 久久人人爽爽人人爽人人片av | 国产日产久久高清欧美一区 | 国产在线成人 | 久久九九网站 | 污污的网站在线免费观看 | 日日摸夜夜添夜夜添国产精品 | 成人福利视频在线 | 精品国产乱码久久久久久丨区2区 |