• <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>
            Dict.CN 在線詞典, 英語學(xué)習(xí), 在線翻譯

            學(xué)海苦作舟,書山勤為徑

            留下點(diǎn)回憶

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            Denoise

            English study

            Web技術(shù)

            數(shù)據(jù)壓縮

            一些連接

            最新評論

            DirectX圖象中設(shè)備支持的原基類型-D3D入門

            微軟D3D設(shè)備能創(chuàng)建和操縱下面初基類型:

            l         點(diǎn)列表

            l         線列表

            l         線帶

            l         三角形列表

            l         三角形帶

            l         三角形扇區(qū)

            你能用IDirect3DDevice9接口中的任何粉刷方法在C++程序中粉刷原基。

            1.1.1.1.    點(diǎn)列表

            一個(gè)點(diǎn)列表是一個(gè)頂點(diǎn)的集合,這些頂點(diǎn)被作為單獨(dú)的點(diǎn)來粉刷。你的程序可以在3-D場景中用它們作為在多邊形表面上開始字段、點(diǎn)線。

            下圖描述了一個(gè)粉刷后的點(diǎn)列表。

            point list.JPG


            你的程序能在一個(gè)點(diǎn)列表上應(yīng)用素材和紋理,素材或紋理的顏色僅僅出現(xiàn)在點(diǎn)上,而不是在點(diǎn)之間的任何地方。

            下面的代碼顯示怎么樣為頂點(diǎn)創(chuàng)建點(diǎn)列表:

            struct CUSTOMVERTEX

            {

                float x,y,z;

            };

             

            CUSTOMVERTEX Vertices[] =

            {

                {-5.0, -5.0, 0.0},

                { 0.0,  5.0, 0.0},

                { 5.0, -5.0, 0.0},

                {10.0,  5.0, 0.0},

                {15.0, -5.0, 0.0},

                {20.0,  5.0, 0.0}

            };

            下面的例子展示了怎么樣使用IDirect3DDevice9::DrawPrimitive來粉刷一個(gè)點(diǎn)列表:

            //

            // It is assumed that d3dDevice is a valid

            // pointer to a IDirect3DDevice9 interface.

            //

            d3dDevice->DrawPrimitive( D3DPT_POINTLIST, 0, 6 );

            1.1.1.2.    線列表

            一個(gè)線列表是一些獨(dú)立的直線段。線列表在3D場景中添加凍雨或大雨是非常有用。程序通過填充一個(gè)頂點(diǎn)數(shù)組來創(chuàng)建一個(gè)先列表,并且線列表中的頂點(diǎn)數(shù)量必須是偶數(shù)且大于或等于2

            下圖顯示了一個(gè)粉刷線列表:

            line list.JPG


            你可以在線列表上應(yīng)用素材和紋理,素材和紋理的顏色僅僅出現(xiàn)在線上,而不是線之間的任何點(diǎn)。

            下面的代碼表明如何為線列表創(chuàng)建頂點(diǎn)。

            struct CUSTOMVERTEX

            {

                float x,y,z;

            };

             

            CUSTOMVERTEX Vertices[] =

            {

                {-5.0, -5.0, 0.0},

                { 0.0,  5.0, 0.0},

                { 5.0, -5.0, 0.0},

                {10.0,  5.0, 0.0},

                {15.0, -5.0, 0.0},

                {20.0,  5.0, 0.0}

            };

            下面的代碼展示了怎么樣使用IDirect3DDevice9::DrawPrimitive來粉刷一個(gè)線列表:

            //
            // It is assumed that d3dDevice is a valid
            // pointer to a IDirect3DDevice9 interface.
            //
            d3dDevice->DrawPrimitive (D3DPT_LINELIST, 0, 3);

            1.1.1.3.    線帶

            線帶是由連接的線段組成的一種原基;你的程序可以使用線帶來創(chuàng)建不關(guān)閉的多邊形。一個(gè)關(guān)閉的多邊形是最后一個(gè)頂點(diǎn)通過線段連接到第一個(gè)頂點(diǎn)的多邊形。如果你的程序制作基于線帶的多邊形,頂點(diǎn)并不保證是共面的。

            下圖顯示了一個(gè)粉刷過后的線帶:

            line strips.JPG


            下面代碼顯示了如何創(chuàng)建一個(gè)線帶的頂點(diǎn):

            struct CUSTOMVERTEX

            {

                float x,y,z;

            };

             

            CUSTOMVERTEX Vertices[] =

            {

                {-5.0, -5.0, 0.0},

                { 0.0,  5.0, 0.0},

                { 5.0, -5.0, 0.0},

                {10.0,  5.0, 0.0},

                {15.0, -5.0, 0.0},

                {20.0,  5.0, 0.0}

            };

            下面代碼顯示了怎么樣使用IDirect3DDevice9::DrawPrimitive來粉刷這個(gè)線帶:

            //
            // It is assumed that d3dDevice is a valid
            // pointer to a IDirect3DDevice9 interface.
            //
            d3dDevice->DrawPrimitive( D3DPT_LINESTRIP, 0, 5 );

            1.1.1.4.    三角形列表

            三角形列表是一系列獨(dú)立的三角形。他們或許彼此相鄰,也可能不相鄰。一個(gè)三角形列表必須至少有三個(gè)頂點(diǎn),總頂點(diǎn)數(shù)必須能被3整除。

            使用三角形列表來創(chuàng)建由不相交的塊組成的對象,例如,在3D游戲中創(chuàng)建FORCE-FIELD墻就使用大量小的不相連的三角形,然后應(yīng)用素材和紋理,看起來散發(fā)光到三角形列表;每個(gè)墻上的三角形看起來都發(fā)光,在墻后面的場景通過三角形之間的縫變的部分可見,就像一個(gè)玩家看到一個(gè)FORCE FIELD一樣。

            三角形列表通常用來創(chuàng)建有明顯邊和帶有Gouraud陰影的原基,見Face和頂點(diǎn)法線向量。

            下圖顯示一個(gè)著色之后的三角形列表:

            Triangle list.JPG


            下面的代碼顯示如何創(chuàng)建一個(gè)三角形列表的頂點(diǎn):

            struct CUSTOMVERTEX

            {

                float x,y,z;

            };

             

            CUSTOMVERTEX Vertices[] =

            {

                {-5.0, -5.0, 0.0},

                { 0.0,  5.0, 0.0},

                { 5.0, -5.0, 0.0},

                {10.0,  5.0, 0.0},

                {15.0, -5.0, 0.0},

                {20.0,  5.0, 0.0}

            };

            下面的代碼顯示怎么樣使用IDirect3DDevice9::DrawPrimitive來對這個(gè)三角形列表進(jìn)行著色:

            //
            // It is assumed that d3dDevice is a valid
            // pointer to a IDirect3DDevice9 interface.
            //
            d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

            1.1.1.5.    三角形帶

            三角形帶是一系列相互連接的三角形組成。因?yàn)槿切问窍噙B的,程序不需要重復(fù)指定所有三角形的頂點(diǎn);例如:你僅僅需要7個(gè)頂點(diǎn)來定義下面的三角形帶:

            Triangle strip.JPG


            系統(tǒng)使用頂點(diǎn)v1,v2v3來畫第一個(gè)三角形,v2,v4v3來畫第二個(gè)三角形;v3v4v5來化第三個(gè)三角形,v4v6v5來畫第四個(gè)三角形等等。注意第二個(gè)三角形的頂點(diǎn)和第4個(gè)三角形的頂點(diǎn)是倒序的,這保證所有的三角形都以順時(shí)針的方向被畫出來。

            3D場景中的大多數(shù)對象都是由三角形帶組成,這是因?yàn)槿切螏苡脕硪杂行У厥褂脙?nèi)存和處理時(shí)間的方式指定復(fù)雜的對象。

            下面的圖顯示一個(gè)著色后的三角形帶:

            Triangle strip1.JPG


            下面代碼說明怎么樣為這個(gè)三角形帶定義頂點(diǎn)集合:

            struct CUSTOMVERTEX

            {

                float x,y,z;

            };

             

            CUSTOMVERTEX Vertices[] =

            {

                {-5.0, -5.0, 0.0},

                { 0.0,  5.0, 0.0},

                { 5.0, -5.0, 0.0},

                {10.0,  5.0, 0.0},

                {15.0, -5.0, 0.0},

                {20.0,  5.0, 0.0}

            };

            下面的代碼展示了怎么樣使用IDirect3DDevice9::DrawPrimitive來為這個(gè)三角形著色:

            //
            // It is assumed that d3dDevice is a valid
            // pointer to a IDirect3DDevice9 interface.
            //
            d3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 4);

            1.1.1.6.    三角形扇區(qū)

            除了所有的三角都共享一個(gè)頂點(diǎn)之外,三角形扇和三角形帶相似。如下圖所示:

            Triangle fan.JPG


            系統(tǒng)使用v2v3v1來畫第一個(gè)三角形,使用v3v4v1來畫第二個(gè)三角形,使用v4v5v1來畫第三個(gè)等等。當(dāng)平面陰影有效的時(shí)候,系統(tǒng)從第一個(gè)三角形開始使用指定的顏色來陰影。

            該圖描述了著色以后的三角形扇:
            Triangle fan1.JPG

            下面的代碼顯示怎么樣為這個(gè)三角形扇定義頂點(diǎn)集:

            struct CUSTOMVERTEX

            {

                float x,y,z;

            };

             

            CUSTOMVERTEX Vertices[] =

            {

                { 0.0, 0.0, 0.0},

                {-5.0, 5.0, 0.0},

                {-3.0,  7.0, 0.0},

                { 0.0, 10.0, 0.0},

                { 3.0,  7.0, 0.0},

                { 5.0,  5.0, 0.0},

            };

            下面的代碼顯示怎么樣使用IDirect3DDevice9::DrawPrimitive來為這個(gè)三角形扇著色:

            //
            // It is assumed that d3dDevice is a valid
            // pointer to a IDirect3DDevice9 interface.
            //
            d3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 4 );

             

            posted on 2006-02-25 01:15 笨笨 閱讀(1390) 評論(1)  編輯 收藏 引用 所屬分類: DirectX3D

            評論

            # re: DirectX圖象中設(shè)備支持的原基類型-D3D入門 2008-08-01 22:47 曹丹

            對DX DOCUMENT 翻譯工作還是值得肯定的,希望你可以翻譯一些高級主題。。
              回復(fù)  更多評論   

            国产麻豆精品久久一二三| 婷婷综合久久中文字幕蜜桃三电影| 国产精品一久久香蕉国产线看观看| 久久久久亚洲Av无码专| 久久久久综合网久久| 久久亚洲国产成人影院网站| 一个色综合久久| 国内精品久久久久影院日本| 久久国产精品视频| 99精品久久精品一区二区| 人人狠狠综合久久亚洲婷婷| 欧美亚洲国产精品久久高清| 国产精品久久免费| 久久精品国产久精国产果冻传媒| 丰满少妇高潮惨叫久久久| 一本综合久久国产二区| 精品久久久久久久| 亚洲国产另类久久久精品| 久久久精品人妻无码专区不卡| 伊人色综合久久天天人手人婷 | 亚洲精品成人久久久| 久久国产亚洲精品无码| 亚洲国产精品综合久久网络 | 久久国产免费观看精品3| 免费一级做a爰片久久毛片潮| 99久久er这里只有精品18| 亚洲午夜久久久久久久久久| 亚洲精品久久久www| 精品久久人人爽天天玩人人妻| av国内精品久久久久影院| 午夜精品久久久久久毛片| 久久婷婷色综合一区二区| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区| 久久AV高清无码| 人妻少妇久久中文字幕| 久久精品国产亚洲77777| 99国产欧美精品久久久蜜芽| 久久99国产精品尤物| 国内精品久久久久伊人av| 久久九九全国免费| 久久久久亚洲精品男人的天堂 |