• <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 在線詞典, 英語學習, 在線翻譯

            學海苦作舟,書山勤為徑

            留下點回憶

            常用鏈接

            統計

            積分與排名

            Denoise

            English study

            Web技術

            數據壓縮

            一些連接

            最新評論

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

            微軟D3D設備能創建和操縱下面初基類型:

            l         點列表

            l         線列表

            l         線帶

            l         三角形列表

            l         三角形帶

            l         三角形扇區

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

            1.1.1.1.    點列表

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

            下圖描述了一個粉刷后的點列表。

            point list.JPG


            你的程序能在一個點列表上應用素材和紋理,素材或紋理的顏色僅僅出現在點上,而不是在點之間的任何地方。

            下面的代碼顯示怎么樣為頂點創建點列表:

            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來粉刷一個點列表:

            //

            // It is assumed that d3dDevice is a valid

            // pointer to a IDirect3DDevice9 interface.

            //

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

            1.1.1.2.    線列表

            一個線列表是一些獨立的直線段。線列表在3D場景中添加凍雨或大雨是非常有用。程序通過填充一個頂點數組來創建一個先列表,并且線列表中的頂點數量必須是偶數且大于或等于2

            下圖顯示了一個粉刷線列表:

            line list.JPG


            你可以在線列表上應用素材和紋理,素材和紋理的顏色僅僅出現在線上,而不是線之間的任何點。

            下面的代碼表明如何為線列表創建頂點。

            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來粉刷一個線列表:

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

            1.1.1.3.    線帶

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

            下圖顯示了一個粉刷過后的線帶:

            line strips.JPG


            下面代碼顯示了如何創建一個線帶的頂點:

            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來粉刷這個線帶:

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

            1.1.1.4.    三角形列表

            三角形列表是一系列獨立的三角形。他們或許彼此相鄰,也可能不相鄰。一個三角形列表必須至少有三個頂點,總頂點數必須能被3整除。

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

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

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

            Triangle list.JPG


            下面的代碼顯示如何創建一個三角形列表的頂點:

            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來對這個三角形列表進行著色:

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

            1.1.1.5.    三角形帶

            三角形帶是一系列相互連接的三角形組成。因為三角形是相連的,程序不需要重復指定所有三角形的頂點;例如:你僅僅需要7個頂點來定義下面的三角形帶:

            Triangle strip.JPG


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

            3D場景中的大多數對象都是由三角形帶組成,這是因為三角形帶能用來以有效地使用內存和處理時間的方式指定復雜的對象。

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

            Triangle strip1.JPG


            下面代碼說明怎么樣為這個三角形帶定義頂點集合:

            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來為這個三角形著色:

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

            1.1.1.6.    三角形扇區

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

            Triangle fan.JPG


            系統使用v2v3v1來畫第一個三角形,使用v3v4v1來畫第二個三角形,使用v4v5v1來畫第三個等等。當平面陰影有效的時候,系統從第一個三角形開始使用指定的顏色來陰影。

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

            下面的代碼顯示怎么樣為這個三角形扇定義頂點集:

            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來為這個三角形扇著色:

            //
            // 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 笨笨 閱讀(1380) 評論(1)  編輯 收藏 引用 所屬分類: DirectX3D

            評論

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

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

            91麻豆精品国产91久久久久久| 午夜精品久久久久9999高清| 久久综合九色综合网站| 久久综合噜噜激激的五月天| 国产成人99久久亚洲综合精品| 久久中文精品无码中文字幕| 噜噜噜色噜噜噜久久| 国产午夜福利精品久久| 久久婷婷五月综合成人D啪| 亚洲成色www久久网站夜月| 久久这里只精品国产99热| 国产99久久久国产精品小说| 久久se精品一区二区| 久久精品卫校国产小美女| 国产精品99久久不卡| 亚洲人成伊人成综合网久久久| 国产精品成人精品久久久| 亚洲精品乱码久久久久久自慰| 亚洲国产精品久久久久| 欧美噜噜久久久XXX| 亚洲色欲久久久久综合网 | 久久亚洲精品无码观看不卡| 久久婷婷五月综合色高清| 亚洲性久久久影院| 国产精品激情综合久久| 国产精品久久久天天影视| 色妞色综合久久夜夜| 国产精品久久久久蜜芽| 欧美激情精品久久久久久| 亚洲乱亚洲乱淫久久| 亚洲国产成人久久精品动漫| 久久免费的精品国产V∧| 午夜精品久久久久久久久| 久久精品无码一区二区WWW| 欧美激情一区二区久久久| 狠狠色丁香久久婷婷综合图片| 久久久久亚洲AV成人网| 久久精品中文字幕一区| 久久久艹| 久久精品国产AV一区二区三区| 丁香色欲久久久久久综合网|