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

            C++ Programmer's Cookbook

            {C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

            Managed directx -----the different of transformed vertex and untransformed vertex

            transformed? vertex :? 默認的有視口,不需要再建立camara.

            public?void?OnCreateVertexBuffer(object?sender,?EventArgs?e)
            ????????
            {
            ????????????VertexBuffer?vb?
            =?(VertexBuffer)sender;
            ????????????GraphicsStream?stm?
            =?vb.Lock(0,?0,?0);
            ????????????CustomVertex.TransformedColored[]?verts?
            =?new?CustomVertex.TransformedColored[3];

            ????????????verts[
            0].X=150;verts[0].Y=50;verts[0].Z=0.5f;?verts[0].Rhw=5;?verts[0].Color?=?System.Drawing.Color.Red.ToArgb();
            ????????????verts[
            1].X=250;verts[1].Y=250;verts[1].Z=0.5f;?verts[1].Rhw=5;?verts[1].Color?=?System.Drawing.Color.Yellow.ToArgb();
            ????????????verts[
            2].X=50;verts[2].Y=250;verts[2].Z=0.5f;?verts[2].Rhw=5;?verts[2].Color?=?System.Drawing.Color.SkyBlue.ToArgb();
            ????????????stm.Write(verts);
            ????????????vb.Unlock();
            ????????}

            ????????
            private?void?Render()
            ????????
            {
            ????????????
            if?(device?==?null)?
            ????????????????
            return;

            ????????????
            //Clear?the?backbuffer?to?a?blue?color?(ARGB?=?000000ff)
            ????????????device.Clear(ClearFlags.Target,?System.Drawing.Color.Blue,?1.0f,?0);
            ????????????
            //Begin?the?scene
            ????????????device.BeginScene();
            ????????????
            ????????????device.SetStreamSource(?
            0,?vertexBuffer,?0);
            ????????????device.VertexFormat?
            =?CustomVertex.TransformedColored.Format;
            ????????????device.DrawPrimitives(PrimitiveType.TriangleList,?
            0,?1);
            ????????????
            //End?the?scene
            ????????????device.EndScene();
            ????????????device.Present();
            ????????}


            untransformed vertex : 必須的manual建立camare去顯示
            public?void?OnCreateVertexBuffer(object?sender,?EventArgs?e)
            ????????
            {
            ????????????VertexBuffer?vb?
            =?(VertexBuffer)sender;
            ????????????CustomVertex.PositionColored[]?verts?
            =?(CustomVertex.PositionColored[])vb.Lock(0,0);
            ????????????verts[
            0].X=-1.0f;?verts[0].Y=-1.0f;?verts[0].Z=0.0f;?verts[0].Color?=?System.Drawing.Color.DarkGoldenrod.ToArgb();
            ????????????verts[
            1].X=1.0f;?verts[1].Y=-1.0f?;verts[1].Z=0.0f;?verts[1].Color?=?System.Drawing.Color.MediumOrchid.ToArgb();
            ????????????verts[
            2].X=0.0f;?verts[2].Y=1.0f;?verts[2].Z?=?0.0f;?verts[2].Color?=?System.Drawing.Color.Cornsilk.ToArgb();
            ????????????vb.Unlock();
            ????????}


            ????????
            private?void?Render()
            ????????
            {
            ????????????
            if?(device?==?null)?
            ????????????????
            return;

            ????????????
            if?(pause)
            ????????????????
            return;

            ????????????
            //Clear?the?backbuffer?to?a?blue?color?
            ????????????device.Clear(ClearFlags.Target,?System.Drawing.Color.Blue,?1.0f,?0);
            ????????????
            //Begin?the?scene
            ????????????device.BeginScene();
            ????????????
            //?Setup?the?world,?view,?and?projection?matrices
            ????????????SetupMatrices();
            ????
            ????????????device.SetStreamSource(
            0,?vertexBuffer,?0);
            ????????????device.VertexFormat?
            =?CustomVertex.PositionColored.Format;
            ????????????device.DrawPrimitives(PrimitiveType.TriangleList,?
            0,?1);
            ????????????
            //End?the?scene
            ????????????device.EndScene();
            ????????????device.Present();
            ????????}


            ????????
            private?void?SetupMatrices()
            ????????
            {
            ????????????
            //?For?our?world?matrix,?we?will?just?rotate?the?object?about?the?y-axis.

            ????????????
            //?Set?up?the?rotation?matrix?to?generate?1?full?rotation?(2*PI?radians)?
            ????????????
            //?every?1000?ms.?To?avoid?the?loss?of?precision?inherent?in?very?high?
            ????????????
            //?floating?point?numbers,?the?system?time?is?modulated?by?the?rotation?
            ????????????
            //?period?before?conversion?to?a?radian?angle.
            ????????????int??iTime??=?Environment.TickCount?%?1000;
            ????????????
            float?fAngle?=?iTime?*?(2.0f?*?(float)Math.PI)?/?1000.0f;
            ????????????device.Transform.World?
            =?Matrix.RotationY(?fAngle?);

            ????????????
            //?Set?up?our?view?matrix.?A?view?matrix?can?be?defined?given?an?eye?point,
            ????????????
            //?a?point?to?lookat,?and?a?direction?for?which?way?is?up.?Here,?we?set?the
            ????????????
            //?eye?five?units?back?along?the?z-axis?and?up?three?units,?look?at?the
            ????????????
            //?origin,?and?define?"up"?to?be?in?the?y-direction.
            ????????????device.Transform.View?=?Matrix.LookAtLH(?new?Vector3(?0.0f,?3.0f,-5.0f?),?new?Vector3(?0.0f,?0.0f,?0.0f?),?new?Vector3(?0.0f,?1.0f,?0.0f?)?);

            ????????????
            //?For?the?projection?matrix,?we?set?up?a?perspective?transform?(which
            ????????????
            //?transforms?geometry?from?3D?view?space?to?2D?viewport?space,?with
            ????????????
            //?a?perspective?divide?making?objects?smaller?in?the?distance).?To?build
            ????????????
            //?a?perpsective?transform,?we?need?the?field?of?view?(1/4?pi?is?common),
            ????????????
            //?the?aspect?ratio,?and?the?near?and?far?clipping?planes?(which?define?at
            ????????????
            //?what?distances?geometry?should?be?no?longer?be?rendered).
            ????????????device.Transform.Projection?=?Matrix.PerspectiveFovLH(?(float)Math.PI?/?4,?1.0f,?1.0f,?100.0f?);
            ????????}
            看好拉,多了一個建立matrix的function: 她的作用看代碼嘍!!!~~~~~~~~~~~~~~

            posted on 2006-06-09 16:33 夢在天涯 閱讀(583) 評論(1)  編輯 收藏 引用 所屬分類: DirectX

            評論

            # re: the different of transformed vertex and untransformed vertex 2006-06-09 16:37 夢在天涯

            都有這個device.SetStreamSource(0, vertexBuffer, 0);
            她的作用?可以不要嗎?
              回復  更多評論   

            公告

            EMail:itech001#126.com

            導航

            統計

            • 隨筆 - 461
            • 文章 - 4
            • 評論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1807602
            • 排名 - 5

            最新評論

            閱讀排行榜

            狼狼综合久久久久综合网| 99精品久久久久中文字幕| 久久人人爽人人爽AV片| 久久精品成人欧美大片| 久久精品国产免费一区| 久久久久久A亚洲欧洲AV冫| 久久婷婷色香五月综合激情| 亚洲中文字幕无码久久2020| 99精品国产在热久久无毒不卡 | 久久亚洲国产精品一区二区| 爱做久久久久久| 性做久久久久久久| 国产ww久久久久久久久久| 亚洲精品乱码久久久久久自慰| 日韩亚洲欧美久久久www综合网| 午夜视频久久久久一区| 久久久久亚洲AV成人网人人网站| 久久er国产精品免费观看2| 中文成人久久久久影院免费观看| 丁香狠狠色婷婷久久综合| 久久午夜无码鲁丝片秋霞| 久久精品国产99国产电影网 | 亚洲国产成人久久综合区| 久久99精品国产| 91久久精品91久久性色| 久久综合亚洲欧美成人| 亚洲综合久久夜AV | 久久精品国产亚洲av瑜伽| 久久最近最新中文字幕大全| 91精品国产乱码久久久久久| 久久久国产99久久国产一| 久久久久亚洲?V成人无码| 久久久受www免费人成| 91精品国产综合久久香蕉| 精品熟女少妇a∨免费久久| 欧美精品久久久久久久自慰| 久久er99热精品一区二区| 奇米影视7777久久精品| .精品久久久麻豆国产精品| 97久久精品国产精品青草| 国产精品久久一区二区三区|