青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

D3DFVF淺談------ D3DFVF_XYZ 和 D3DFVF_XYZRHW 的區別

轉載自:http://hi.baidu.com/lovebirds/blog/item/33d450af4a2f19f3fbed509b.html


D3DFVF淺談

有些新手不知道什么是D3DFVF ,這里做個簡單介紹,和一些應用。但關于D3DFVF 最官方的資料還是看SDK(但它是英文的)。

D3DFVF_XYZ——頂點的三維坐標,表示有位置,而且會又Direct3D進行矩陣變換;
D3DFVF_XYZRHW——即平時所說rhw,它說明頂點有位置,而且經過了矩陣變換,不用在由Direct3D對它進行變換,通常用于做UI(用戶界面);
D3DFVF_DIFFUSE——表示頂點格式中有漫反射顏色;
D3DFVF_NORMAL——表示頂點有法線向量;
D3DFVF_TEX^——表示頂點有紋理坐標,^可以是1至8,表示有多少套紋理坐標;

以上是最常用的D3DFVF了,如果還要更詳細,請看SDK(一半以上的夠用了)。

還有一些應用方法:
1、在創建VB時,pd3dDevice->CreateVertexBuffer(3*sizeof(Vertex),D3DUSAGE_WRITEONLE,FVF,D3DPOOL_MANAGED,&先前聲明的VB,NULL);
在此之前還要先定義FVF:
#define FVF (D3DFVF_XYZ|D3DFVF_DIFFUSE)//這里隨自己需要
還要定義自己的頂點結構,這個FVF,頂點結構可以這樣:
struct Vertex
{
float x,y,z;//對應D3DFVF_XYZ
DWORD diffuse;//對應D3DFVF_DIFFUSE
};

2、我們很多時候要用到ID3DXMesh,但它的頂點用矩陣變換還不夠,不能滿足骨骼動畫的需求,所以只能用Vertex Shader和ID3DXMesh::LockVertexBuffer()了,這里重點說LockVertexBuffer()。
首先,我們不知到Mesh的格式,如果貿然用LockVertexBuffer()會出錯,所以先統一Mesh的頂點格式:
ID3DXMesh Mesh;
..........
Mesh->CloneMeshFVF (D3DXMESH_MANAGED,D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DXFVF_TEX1),pdev,&Mesh);
重新定義結構Vertex:
struct Vertex
{
float x,y,z;//對應D3DFVF_XYZ
float nx,ny,nz;//對應D3DFVF_NORMAL
DWORD diffuse;//對應D3DFVF_DIFFUSE
float u,v;//對應D3DFVF_TEX1
};
之后就可以Lock了:
Vertex *v;
int numV=Mesh->GetNumVertices();//Mesh的頂點數量
Mesh->LockVertexBuffer(NULL,(void**)&v);
for(int i=0;i<count;i++)
{
v[i].x+=5;//這里就是實現,可以任意把v[i]的數據調整
}
Mesh->UnlockVertexBuffer();//解Lock

http://bbs.gameres.com/showthread.asp?threadid=29618

D3DFVF_XYZ 和 D3DFVF_XYZRHW 的區別

學習D3D9的時候遇到靈活頂點格式(FVF)中D3DFVF_XYZRHW和D3DFVF_XYZ之間差異而引起的問題。
參看了同是C++博客的一篇博文,其分析如下:
在頂點結構體中沒有RHW時,Direct3D將執行視、投影、世界等變換以及進行光線計算,之后你才能在窗口中得到你所繪制的物體。當頂點結構體中有RHW時,就像上面那段英文所述,告知Direct3D使用的頂點已經在屏幕坐標系中了,不再執行視圖、投影、世界等變換和光線計算,因為D3DFVF_XYZRHW標志告訴它頂點已經經過了這些處理,并直接將頂點進行光柵操作,任何用SetTransform進行的轉換都對其無效。不過這時的原點就在客戶區的左上角了,其中x向右為正,y向下為正,而z的意義已經變為z-buffer的象素深度。
值得注意的是D3DFVF_XYZRHW和D3DFVF_XYZ、D3DFVF_NORMAL不能共存,因為后兩個標志與前一個矛盾。在使用這種頂點時,系統需要頂點的位置已經經過變換了,也就是說x、y必須在屏幕坐標系中,z必須是z-buffer中的象素深度,取值范圍:0.0-1.0,離觀察者最近的地方為0.0,觀察范圍內最遠可見的地方為1.0。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
結合我自己的試驗,有一些發現,記錄下來以備忘。
D3DFVF_XYZ默認的用戶區中心坐標是(0,0),而D3DFVF_XYZRHW是左上角為(0,0)
用D3DFVF_XYZ默認的為非光照的,而D3DFVF_XYZRHW是高洛德光照。
當使用D3DFVF_XYZ時,要設置渲染狀態:

g_pd3dDevice->SetRenderState(D3DRS_LIGHTING,FALSE)

而且要設置觀察矩陣和投影矩陣,例如:

D3DXMATRIX matProj;
D3DXMATRIX matView;

// Create and set the projection matrix

D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI/4.0f, 1.33333f, 1.0f, 1000.0f);
g_pd3dDevice
->SetTransform(D3DTS_PROJECTION, &
matProj);

// Create and set the view matrix

D3DXMatrixLookAtLH(&matView, \
&D3DXVECTOR3(0.0f, 0.0f, -500.0f
), \
&D3DXVECTOR3(0.0f, 0.0f, 0.0f
), \
&D3DXVECTOR3(0.0f, 1.0f, 0.0f
));
g_pd3dDevice
->SetTransform(D3DTS_VIEW, &matView);

否則沒有渲染結果。

另外一個帖子:http://bbs.gameres.com/showthread.asp?threadid=121111

Re:D3DFVF_XYZRHW 中的W跟Z分別表示什么

D3DFVF_XYZRHW的格式是(x,y,z,1/w),RHW是指W的倒數。

使用這個格式的頂點是不通過頂點變換的,也就是直接對應窗口設備坐標系,這個坐標系下Z的范圍是[0,1]

(x,y,z)的形式是仿射坐標,(x,y,z,w)的形式是齊次坐標,詳細的可以去看數學參考書。在這里由于已經是設備坐標系了,所以一般情況下w只用1.0。但如果是自己做的三維空間變換得到的坐標,那么w就很重要,因為它要用于紋理的透視矯正。

最后一個帖子:http://hi.baidu.com/microsoftxiao/blog/item/4108ce58fab4ed87800a18f8.html

D3DFVF_XYZ D3DFVF_XYZRHW區別

D3DFVF_XYZ - 頂點格式包括未變換的頂點位置。這個標記不能和D3DFVF_XYZRHW一起使用。
D3DFVF_XYZRHW - 頂點格式包括變換后的頂點位置。這個標記不能和D3DFVF_XYZ或D3DFVF_NORMAL
一起使用。
[注意] 使用D3DFVF_XYZRHW時,RHW分量應設置為>=1.0f,只有這樣才表明該頂點為變換后的。

一定要了解DirectX SDK里DX90SDK\Samples\C++\Direct3D\Tutorials\Tut02_Vertices下的例子,
了解到D3DFVF_XYZ D3DFVF_XYZRHW的區別。




posted on 2010-11-20 23:58 楊粼波 閱讀(1113) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜伦理片一区| 日韩午夜电影在线观看| 免费欧美高清视频| 国产精品国产福利国产秒拍| 久久成人免费电影| 99亚洲一区二区| 亚洲欧美日韩中文在线制服| 亚洲在线国产日韩欧美| 欧美亚洲免费电影| 欧美一区二区精品| 蜜臀91精品一区二区三区| 欧美一区高清| 99re视频这里只有精品| 亚洲私拍自拍| 亚洲国产精品成人一区二区| 亚洲深夜av| 亚洲深夜福利视频| 欧美诱惑福利视频| 亚洲人成人一区二区三区| 久久免费视频在线| 亚洲精品乱码久久久久久蜜桃麻豆| 99re66热这里只有精品4| 亚洲欧美日韩精品久久久| 欧美一区二区三区四区视频| 亚洲第一偷拍| 免费欧美日韩| 亚洲欧美激情视频在线观看一区二区三区| 99re6这里只有精品| 亚洲小说欧美另类社区| 你懂的视频欧美| 欧美激情在线免费观看| 国产精品美女主播| 亚洲国产高清aⅴ视频| 亚洲天堂网站在线观看视频| 久久综合一区| 中日韩美女免费视频网站在线观看| 久久久av毛片精品| 国产精品网红福利| 一本色道久久88综合亚洲精品ⅰ| 久久久久久久综合| 在线性视频日韩欧美| 欧美激情精品| 亚洲区国产区| 久久嫩草精品久久久精品一| 中文亚洲字幕| 欧美日韩免费观看一区二区三区 | 国产精品青草综合久久久久99 | 亚洲精品一线二线三线无人区| 欧美一区深夜视频| 亚洲精品综合精品自拍| 美国成人毛片| 欧美在线日韩在线| 国产日韩欧美在线看| 午夜精品一区二区三区在线| 艳妇臀荡乳欲伦亚洲一区| 欧美女激情福利| 99热精品在线观看| 亚洲老板91色精品久久| 欧美日韩不卡合集视频| 亚洲视频一区在线| 在线一区二区三区做爰视频网站| 欧美日本一区二区视频在线观看| 亚洲伦理在线观看| 亚洲福利视频一区| 免费观看成人鲁鲁鲁鲁鲁视频| 伊人久久男人天堂| 久久精品二区亚洲w码| 久久亚洲精品伦理| 亚洲激情电影中文字幕| 99精品欧美一区二区三区| 欧美激情综合五月色丁香小说| 国产色视频一区| 久久国产精品色婷婷| 99re亚洲国产精品| 亚洲人成网站在线播| 久久免费视频在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美在线999| 久久久久99| 国产亚洲亚洲| 久久综合伊人77777麻豆| 久久精品一二三区| 亚洲国产精品久久久久久女王 | 欧美电影免费观看大全| 欧美尤物巨大精品爽| 在线观看欧美成人| 亚洲人妖在线| 久久久久综合网| 国产精品jvid在线观看蜜臀| 久久精品官网| 欧美成人免费在线观看| 国产精品中文在线| 午夜宅男久久久| 欧美一区二区三区免费看 | 羞羞答答国产精品www一本| 激情久久婷婷| 亚洲日韩成人| 国产精品一二三四| 欧美成人一区二区三区在线观看 | 欧美成人第一页| 亚洲综合导航| 欧美xxxx在线观看| 欧美伊人精品成人久久综合97| 免费看黄裸体一级大秀欧美| 欧美日韩国产在线一区| 久久成人一区| 激情成人综合网| 99视频超级精品| 国产精品推荐精品| 欧美激情亚洲激情| 国产精品人人爽人人做我的可爱 | 99视频超级精品| 欧美一区二区三区久久精品茉莉花| 欧美韩国一区| 久久九九全国免费精品观看| 欧美日本一道本在线视频| 麻豆精品网站| 国产精品免费网站| 日韩视频一区二区三区在线播放| 伊人成年综合电影网| 亚洲综合三区| 亚洲一区二区成人| 欧美激情在线播放| 欧美成人国产| 久久精品免费播放| 午夜激情综合网| 欧美另类在线播放| 亚洲成色精品| 在线精品视频免费观看| 欧美中文字幕不卡| 久久久久久久久一区二区| 国产精品久久久久婷婷| aa级大片欧美| 亚洲视频免费看| 欧美日韩一区二区三区免费看 | 99精品视频免费全部在线| 狂野欧美一区| 蜜乳av另类精品一区二区| 国内成人精品一区| 久久精品麻豆| 美国成人毛片| 亚洲国产欧美国产综合一区| 久久久久久日产精品| 欧美成人免费全部| 亚洲人成在线观看| 欧美日韩成人激情| 亚洲视频免费| 久久久久久婷| 久久午夜视频| 欧美激情一级片一区二区| 99精品免费网| 欧美日韩免费观看一区二区三区| 日韩亚洲一区二区| 欧美一区二区三区四区在线观看地址| 国产精品五区| 久久精品国产99| 亚洲黄色毛片| 亚洲综合三区| 国模叶桐国产精品一区| 女同性一区二区三区人了人一 | 亚洲免费影院| 国产欧美一区二区三区另类精品| 久久国产精品久久久久久久久久 | 亚洲精品国产精品乱码不99| 亚洲精品资源美女情侣酒店| 欧美成人资源网| 亚洲香蕉成视频在线观看| 国产精品久久久久婷婷| 午夜精品999| 欧美α欧美αv大片| 99re8这里有精品热视频免费| 国产精品久久97| 久久精品视频在线播放| 亚洲福利电影| 欧美伊人久久久久久午夜久久久久| 国内精品久久久久久久影视麻豆| 欧美成ee人免费视频| 亚洲午夜国产成人av电影男同| 久久综合亚洲社区| 亚洲自拍偷拍视频| 亚洲福利国产| 国产精品久久久久久久久婷婷 | 亚洲国产高清在线观看视频| 亚洲一卡久久| 在线免费观看欧美| 国产精品剧情在线亚洲| 久久婷婷av| 中国av一区| 亚洲第一天堂av| 久久久久国色av免费观看性色| aⅴ色国产欧美| 伊人久久大香线蕉综合热线| 国产欧美69| 国产精品欧美一区二区三区奶水| 欧美丰满少妇xxxbbb| 久久这里有精品视频| 性8sex亚洲区入口| 亚洲校园激情| 99热免费精品| 99re在线精品|