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

            4D星宇

            c++

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              57 隨筆 :: 0 文章 :: 39 評(píng)論 :: 0 Trackbacks

            IRRLICHT的實(shí)現(xiàn):
            1.波浪是如何實(shí)現(xiàn)的?
            先對(duì)每個(gè)點(diǎn)計(jì)算高度,

            void addWave(vector3df& dest, const vector3df source, f32 time

                 dest.Y 
            = source.Y +
             (sinf(((source.X
            /WaveLength) + time)) * WaveHeight) +
             (cosf(((source.Z
            /WaveLength) + time)) * WaveHeight);
            }


            然后再計(jì)算法線,
            recalculateNormals(Mesh);
            2.ATMOSphere
            太陽(yáng)嘛,就是個(gè)跟隨時(shí)間移動(dòng)的BILLBOARD,邊緣最好加上霧化效果。
            3.地形編輯器代碼

            if( Terrain && !RightMouseDown && Terrain->getTriangleSelector() )
            {
            LastMousePosition.set( Device
            ->getCursorControl()->getPosition().X, Device->   getCursorControl()->getPosition().Y );
            //計(jì)算從鼠標(biāo)位置到觀察點(diǎn)的射線
            core::line3df line 
            = CollisionMgr->getRayFromScreenCoordinates( 
             core::position2d
            <s32>( LastMousePosition.X, LastMousePosition.Y ) );
            //計(jì)算以交點(diǎn)為中心,一定半徑范圍內(nèi)的點(diǎn)
            core::vector3df spherePosition;
            if( CollisionMgr->getClosestVertex( line, Terrain->getTriangleSelector(), 
             spherePosition, CurrentVertexIndex ) )
                  {
                   LeftMouseDown 
            = true;

                   
            // Get all vertices with the circle
                   SelectedTerrainVertices.clear();
                   core::vector3df intersection;
                   scene::SCollisionTriangle tri;
                   
            if( CollisionMgr->getCollisionPoint( line, Terrain->getTriangleSelector(), intersection, tri ) )
                   {
                    u32 count 
            = 0;
                    SelectedTerrainVertices.reallocate( Terrain
            ->getTriangleSelector()->getTriangleCount() );
                    Terrain
            ->getTriangleSelector()->getVerticesInRadius( SelectedTerrainVertices.pointer(), Terrain->getTriangleSelector()->getTriangleCount(), count, intersection, RedCircleRadius );
                    SelectedTerrainVertices.set_used( count );
                   }

                   return 
            true;
                  }
                 }

            posted on 2008-05-04 12:17 bloodbao 閱讀(202) 評(píng)論(0)  編輯 收藏 引用 所屬分類: c++
            国产精品无码久久综合| 久久九九青青国产精品| 亚洲国产精品人久久| 久久综合噜噜激激的五月天| 欧美一区二区久久精品| 青青热久久国产久精品 | 久久se这里只有精品| 99久久99久久精品免费看蜜桃| 久久人人爽人人爽人人片AV东京热 | 久久福利青草精品资源站免费| 亚洲中文字幕无码久久2017| 久久人人添人人爽添人人片牛牛 | 久久精品国产亚洲欧美| 国产精品一区二区久久| 国产成人综合久久久久久| 国产三级观看久久| 久久影视综合亚洲| 伊人久久五月天| 久久亚洲私人国产精品vA| 久久ZYZ资源站无码中文动漫 | 久久99国产综合精品| 国产成人久久激情91| 国产99久久九九精品无码| 久久天天躁狠狠躁夜夜av浪潮| 香蕉aa三级久久毛片| 无码AV中文字幕久久专区| 久久免费线看线看| 色婷婷久久久SWAG精品| 久久夜色精品国产噜噜麻豆| 精品久久国产一区二区三区香蕉| 欧美一级久久久久久久大片| 久久66热人妻偷产精品9| 国产精品成人99久久久久 | 成人久久综合网| 中文成人久久久久影院免费观看| 人妻精品久久久久中文字幕69| 亚洲精品国产成人99久久| 精品伊人久久大线蕉色首页| 久久九九亚洲精品| 日产精品99久久久久久| 中文字幕无码久久久|