• <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>

            天行健 君子當(dāng)自強(qiáng)而不息

            【ZT】D3DFVF_XYZ和D3DFVF_XYZRHW的區(qū)別

            D3DFVF_XYZ和D3DFVF_XYZRHW有什么區(qū)別?以前好像沒(méi)有仔細(xì)思考過(guò),只是見(jiàn)到Beginning DirectX9中如是說(shuō):The RHW value, which stands for Reciprocal of Homogeneous W[1], tells Direct3D that the vertices that are being used are already in screen coordinates. This value is normally used in fog and clipping calculations and should be set to 1.0.

                今天,做了個(gè)實(shí)驗(yàn)得知,在頂點(diǎn)結(jié)構(gòu)體中沒(méi)有RHW時(shí),Direct3D將執(zhí)行視、投影、世界等變換以及進(jìn)行光線計(jì)算,之后你才能在窗口中得到你所繪制的物體。當(dāng)頂點(diǎn)結(jié)構(gòu)體中有RHW時(shí),就像上面那段英文所述,告知Direct3D使用的頂點(diǎn)已經(jīng)在屏幕坐標(biāo)系中了,不再執(zhí)行視圖、投影、世界等變換和光線計(jì)算,因?yàn)镈3DFVF_XYZRHW標(biāo)志告訴它頂點(diǎn)已經(jīng)經(jīng)過(guò)了這些處理,并直接將頂點(diǎn)進(jìn)行光柵操作,任何用SetTransform進(jìn)行的轉(zhuǎn)換都對(duì)其無(wú)效。不過(guò)這時(shí)的原點(diǎn)就在客戶區(qū)的左上角了,其中x向右為正,y向下為正,而z的意義已經(jīng)變?yōu)閦-buffer的象素深度。


                值得注意的是,D3DFVF_XYZRHW和D3DFVF_XYZ、D3DFVF_NORMAL不能共存,因?yàn)楹髢蓚€(gè)標(biāo)志與前一個(gè)矛盾。在使用這種頂點(diǎn)時(shí),系統(tǒng)需要頂點(diǎn)的位置已經(jīng)經(jīng)過(guò)變換了,也就是說(shuō)x、y必須在屏幕坐標(biāo)系中,z必須是z-buffer中的象素深度,取值范圍:0.0-1.0,離觀察者最近的地方為0.0,觀察范圍內(nèi)最遠(yuǎn)可見(jiàn)的地方為1.0。(不過(guò)我測(cè)試的時(shí)候似乎z值不起作用。)


            If you use D3DFVF_XYZ, then your vertex format needs to have 3 floats in it, for x, y and z. Those are used to define a vertex position in 3D space.If you use D3DFVF_XYZRHW, then your vertex format needs to have 4 floats in it, for x, y, z and rhw. X and Y are used to define a vertex position in 2D space, Z is ignored (I think, it may be used for fog and such, but I don't recall just now - I always set it to 0.0f), and rhw is the Reciprocal of Homogenous W - which is basically 1 / the depth of the vertex.

            Usually, you use D3DFVF_XYZRHW for doing 2D, and D3DFVF_XYZ any other time. However, a lot of people just use D3DFVF_XYZ, and use an orthoganal projection matrix to make it seem 2D.

            _______________________

            [1] RHW表示投影空間中頂點(diǎn)所在的齊次點(diǎn)(x,y,z,w)(homogeneous point)的w坐標(biāo)的倒數(shù)(reciprocal)。


            posted on 2008-04-30 10:44 lovedday 閱讀(5307) 評(píng)論(5)  編輯 收藏 引用 所屬分類(lèi): ■ DirectX 9 Program

            評(píng)論

            # re: 【ZT】D3DFVF_XYZ和D3DFVF_XYZRHW的區(qū)別 2009-03-22 23:07 RE

            你的研究解決了我的一個(gè)大迷惑,謝謝!  回復(fù)  更多評(píng)論   

            # re: 【ZT】D3DFVF_XYZ和D3DFVF_XYZRHW的區(qū)別 2010-01-18 22:08 小龍

            設(shè)置為D3DFVF_XYZRHW | D3DFVF_DIFFUSE后,怎么是三角形進(jìn)行變換,如平移,旋轉(zhuǎn)等,求教啊  回復(fù)  更多評(píng)論   

            # re: 【ZT】D3DFVF_XYZ和D3DFVF_XYZRHW的區(qū)別 2010-02-10 11:02 安羽

            @小龍
            D3DFVF_XYZRHW的項(xiàng)點(diǎn)已經(jīng)是2D坐標(biāo),只能做平面的平移、旋轉(zhuǎn)、變換,你想做3D的視圖、投影、世界等變換和光線計(jì)算是沒(méi)有多少意義的。  回復(fù)  更多評(píng)論   

            # re: 【ZT】D3DFVF_XYZ和D3DFVF_XYZRHW的區(qū)別 2010-02-10 11:53 安羽

            @樓主
            “離觀察者最近的地方為0.0,觀察范圍內(nèi)最遠(yuǎn)可見(jiàn)的地方為1.0?!?
            我查一些資料,感覺(jué)樓主可能搞反了:在(x,y,z,w)中在w為0時(shí),表示此點(diǎn)在無(wú)窮遠(yuǎn)處。當(dāng)w為1時(shí),此時(shí)的齊次坐標(biāo)為規(guī)格化齊次坐標(biāo)。
              回復(fù)  更多評(píng)論   

            # re: 【ZT】D3DFVF_XYZ和D3DFVF_XYZRHW的區(qū)別 2011-09-26 14:35 賀晨

            樓主 解決了我一個(gè)大大的困惑啊?。。?!  回復(fù)  更多評(píng)論   

            公告

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            隨筆分類(lèi)(178)

            3D游戲編程相關(guān)鏈接

            搜索

            最新評(píng)論

            色妞色综合久久夜夜| 18岁日韩内射颜射午夜久久成人 | 热re99久久精品国产99热| 久久亚洲AV成人无码| 人妻无码精品久久亚瑟影视| 午夜精品久久久久久影视riav| 久久综合久久鬼色| 综合久久精品色| 久久免费看黄a级毛片| 日本欧美久久久久免费播放网| 国内精品久久国产| 久久亚洲AV成人无码电影| 久久国产精品无码一区二区三区 | 中文字幕乱码人妻无码久久| 亚洲午夜久久久影院伊人| 新狼窝色AV性久久久久久| 精品久久无码中文字幕| 亚洲天堂久久精品| 中文字幕久久亚洲一区| 亚洲精品乱码久久久久久| 久久99中文字幕久久| 久久久久亚洲?V成人无码| 久久受www免费人成_看片中文| 99蜜桃臀久久久欧美精品网站 | 四虎国产永久免费久久| 久久综合九色综合网站| 热re99久久精品国99热| 亚洲国产成人久久精品动漫| 91精品免费久久久久久久久| 超级97碰碰碰碰久久久久最新| 亚洲国产婷婷香蕉久久久久久| 久久综合久久美利坚合众国| 久久亚洲精品国产精品| 久久久精品久久久久久| 久久久久久久久波多野高潮| 久久99久久99小草精品免视看| 久久中文精品无码中文字幕| 久久伊人精品青青草原高清| 久久久久久久久波多野高潮| 模特私拍国产精品久久| 精品久久人人妻人人做精品|