青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Benjamin

靜以修身,儉以養德,非澹薄無以明志,非寧靜無以致遠。
隨筆 - 398, 文章 - 0, 評論 - 196, 引用 - 0
數據加載中……

3d游戲尋路簡介

3d 游戲的尋路算法主要還是A* (a-star,A星)使用的比較廣泛,它有快速、路徑短,不成環等優點,在orge,unity等引擎中得到了廣泛的使用。

A*的最初設計是基于2d平面,對于3d 尋路就需要先對場景網格化,生成平面,把3d的問題轉化為2d的問題,然后就可以通過A*進行尋路。
 3d 游戲尋路大致分為2部分:navmesh(3d轉2d)、A*算法

網格數據(navmesh)生成:
1、Voxelization – Create a solid heightfield from the source geometry.
2、Generate Regions – Detect the top surface area of the solid heightfield and divide it up into regions of contiguous spans.
3、Generate Contours – Detect the contours of the regions and form them into simple polygons.
4、Generate Polygon Mesh – Sub-divide the contours into convex polygons.
5、Generate Detailed Mesh – Triangulate the polygon mesh and add height detail.
相關概念: 體素化Voxelization 向量空間(vector space) 到 體素空間(voxel space) 的轉換. 用到的是叫保守體素化(Conservative voxelization) 的算法, 它保證了每個多邊形面都能完全被生成的三維象素(voxel)包裹。
              體素化后, 生成的都是可尋路的高度場(heightfield)信息, 不可尋路部分被剔除.這一步是從一個固態高度場(solid heightfield) 生成一個開放高度場(open heightfield) 的過程, 一個開放高度場表示在一個固態空間上可能尋路的平面.
                區域生成Region   Generation 定義,哪部分的面是可以尋路的, 并且把尋路區域分隔成連續的平面以供最后生成簡單尋路多邊形. 最終結果, 墻體,圍欄, 柱子, 桌子底等不可能尋路的平面在這步根據鄰居信息和分水嶺算法(the watershed algorithm) 被剔除, 一些孤立的小局域(比如桌子表面) 也被剔除. 樓梯, 雖然是多級, 也會被當做一個平面(綠色). 樓梯扶手等平面也被剔除.
                  輪廓生成Contour Generation 完成從體素空間回到向量空間的轉換. 區域(region) 輪廓將被"遍歷(walk)", 形成簡單的多邊形.其中, 有些區域被合并, 多邊形的邊更平滑, 邊長度被優化. 此時,可尋路區域已經被一些簡化的多邊形所表示。
               凸多邊形生成Convex Polygon Generation:把多邊形切分為三角形, 而后盡量合并的方式 精細網格生成
               Detailed Mesh Generation: 通過"德勞內三角化"(Delaunay triangulation) 算法三角化成包含高度信息的三角形,頂點信息也會在這里補到各個三角形上, 以保證高度信息和模型保持一致.

A* (a-star,A星)大致描述:
             1、把起始格添加到開啟列表。
             2、尋找開啟列表中F值最低的格子(當前格),將其切到關閉列表
             3、對相鄰的8格最如下處理:如果它不在開啟列表中,把它加進去 ;如果它已經在開啟列表中,用G值為參考檢查新的路徑是否更好。更低的G值意味著更好的路徑。如果這樣,把這一格的父節點改成當前格,并且重新計算這一格的G和F值。如果你保持你的 開啟列表按F值排序,改變之后你可能需要重新對開啟列表排序。
             4、當把目標格添加進了關閉列表,這時候路徑被找到;如果沒有找到目標格,開啟列表已經空了,這時候,路徑不存在。 最后,保存路徑,從目標格開始,沿著每一格的父節點移動直到回到起始格。這就是需要的路徑。
            (1-4是個循環過程)
            附注:
            開啟/關閉列表:臨時記錄區,算法中的變量
           G值:從起點A,沿著產生的路徑,移動到網格上指定方格的移動耗費。
           H值:從網格上那個方格移動到終點B的預估移動耗費。
           F值:G + H 父節點:記錄最短路徑

           A*(A-Star)算法:公式: f(n)=g(n)+h(n)
           f(n) 是節點n從初始點到目標點的估價函數
           g(n) 是在狀態空間中從初始節點到n節點的實際代價
           h(n)是從n到目標節點最佳路徑的估計代價 最短路徑,關鍵在于估價函數h(n): 估價值h(n)<= n到目標節點的距離實際值,搜索的點數多,搜索范圍大,效率低。但能得到最優解。
           估價值>實際值, 搜索的點數少,搜索范圍小,效率高,但不能保證得到最優解。 估價值與實際值越接近,估價函數取得就越好 對幾何路網來說,取兩節點間歐幾理德距離(直線距離)做為估價值,即f=g(n)+sqrt((dx-nx)*(dx-nx)+(dy- ny)*(dy-ny));這樣估價函數f在g值一定的情況下,會或多或少的受估價值h的制約,節點距目標點近,h值小,f值相對就小,能保證最短路的搜索向終點的方向進行。

           算法的搜索過程: 創建兩個表,OPEN表保存所有已生成而未考察的節點,CLOSED表中記錄已訪問過的節點。 遍歷當前節點的各個節點,將n節點放入CLOSE中,取n節點的子節點X,->算X的估價值。
           偽代碼: While(OPEN!=NULL)
                     {
                           從OPEN表中取估價值f最小的節點n;
                           if(n節點==目標節點)
                              break;
                           else
                            {
                                 if(X in OPEN) 比較兩個X的估價值f //注意是同一個節點的兩個不同路徑的估價值 if( X的估價值小于OPEN表的估價值 ) 更新OPEN表中的估價值; //取最小路徑的估價值
                                 if(X in CLOSE) 比較兩個X的估價值 //注意是同一個節點的兩個不同路徑的估價值 if( X的估價值小于CLOSE表的估價值 ) 更新CLOSE表中的估價值; 把X節點放入OPEN //取最小路徑的估價值
                                 if(X not in both) 求X的估價值; 并將X插入OPEN表中; //還沒有排序 } 將n節點插入CLOSE表中; 按照估價值將OPEN表中的節點排序; //實際上是比較OPEN表內節點f的大小,從最小路徑的節點向下進行。
                           }

             關于尋路:可以用開源的 RecastNavigation ,里面就有上述算法的實現和demo,支持unity 3d的尋路。
            可以用來做地圖服務器的案例。 https://github.com/memononen/recastnavigation
            unity 3d導航數據的導出要將任意的 Mesh 轉換成 rcPolyMes,生成相應的多邊形和鄰邊;這里每個多邊形設置為基礎的三角形, 然后用內建的函數來優化合并多邊形,接著再建立鄰邊即可,這樣就可以得出最優化的 NavMesh 最終數據。
            注意:Unity 在導出 NavMesh的數據是包含 NavMesh 中得多邊形 Poly信息,可以利用這個直接建立多邊形,這樣下來數據最接近unity本身的數據。

posted on 2014-12-13 00:04 Benjamin 閱讀(7600) 評論(0)  編輯 收藏 引用 所屬分類: 雜談

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合给合| 久久精品免费电影| 国产综合视频| 欧美日韩国产一区二区| 欧美精品久久99| 欧美色道久久88综合亚洲精品| 亚洲欧洲综合另类| 午夜国产欧美理论在线播放| 欧美日韩中国免费专区在线看| 欧美精品久久一区二区| 亚洲第一精品夜夜躁人人爽| 亚洲网站在线观看| 一区二区三区欧美日韩| 欧美一区二区三区视频免费| 亚洲在线一区| 欧美日韩日本视频| 欧美日韩免费观看中文| 国产日韩在线一区二区三区| 国产欧美另类| 欧美天堂亚洲电影院在线播放| 国产精品美女| 亚洲黑丝在线| 国产真实精品久久二三区| 国产精品日韩在线播放| 国产亚洲欧美aaaa| 99精品国产热久久91蜜凸| 久久人91精品久久久久久不卡| 久久久午夜视频| 99日韩精品| 免费日韩成人| 欧美一区二区视频在线| 亚洲欧美日韩在线播放| 久久精品成人欧美大片古装| 国产精品毛片在线| 有码中文亚洲精品| 亚洲精品国久久99热| 久久人人爽人人| 性色av一区二区三区在线观看| 欧美亚洲免费高清在线观看| 亚洲影院高清在线| 日韩亚洲国产精品| 欧美猛交免费看| 亚洲人成欧美中文字幕| 先锋影音国产精品| 久久蜜桃av一区精品变态类天堂| 欧美激情综合网| 一本久久综合亚洲鲁鲁| 亚洲日产国产精品| 欧美区在线观看| 欧美成人激情视频| 在线播放日韩专区| 欧美激情视频一区二区三区免费| 久久精品av麻豆的观看方式| 欧美怡红院视频| 国产一区二区三区高清在线观看 | 久久夜色精品亚洲噜噜国产mv| 一本色道久久综合狠狠躁篇的优点| 亚洲一区二区三区视频| 欧美一区激情视频在线观看| 国一区二区在线观看| 欧美mv日韩mv国产网站| 久久嫩草精品久久久精品一| 国产精品自拍一区| 亚洲欧洲日夜超级视频| 伊人久久亚洲影院| 夜夜嗨av一区二区三区网页| 亚洲日本中文字幕免费在线不卡| 欧美精品国产精品日韩精品| 亚洲日本中文字幕| 欧美一区二区三区四区视频 | 久久精品麻豆| 久久精品五月| 亚洲欧美国产精品桃花| 欧美性开放视频| 欧美国产精品劲爆| 激情婷婷亚洲| 久久久精品网| 久久综合五月| 国产精品av久久久久久麻豆网| 久久久久久久综合狠狠综合| 国产免费一区二区三区香蕉精| 亚洲午夜视频在线| 91久久在线视频| 欧美精品首页| 欧美激情一区二区| 亚洲黑丝在线| 亚洲大胆在线| 在线观看日韩av电影| 久久伊伊香蕉| 亚洲一卡久久| 欧美不卡一卡二卡免费版| 欧美精选一区| 小辣椒精品导航| 嫩草国产精品入口| 一区二区三区产品免费精品久久75| 国产亚洲综合性久久久影院| 久久免费视频一区| 亚洲视频导航| 一区二区精品国产| 亚洲小说欧美另类社区| 欧美成人精品在线| 亚洲午夜高清视频| 国产精品乱人伦中文| 亚洲免费视频一区二区| 免费欧美在线视频| 亚洲女与黑人做爰| 国产一区二区三区高清| 欧美久久久久久久久久| 欧美有码在线视频| 91久久夜色精品国产网站| 欧美一区高清| 久久国产精品黑丝| 日韩视频在线观看免费| 国产一区二区三区在线观看免费视频| 在线视频亚洲欧美| 美女脱光内衣内裤视频久久影院 | 午夜精品www| 欧美日韩国产成人在线| 欧美日韩视频在线一区二区| 国产精品日日摸夜夜添夜夜av| 欧美午夜性色大片在线观看| 欧美日韩精品一区二区| 国产日韩在线亚洲字幕中文| 亚洲少妇最新在线视频| 国产精品毛片va一区二区三区| 免费成人高清在线视频| 欧美精品一区视频| 激情国产一区二区| 国产日韩欧美二区| 在线观看一区视频| 欧美中文字幕第一页| 欧美国产日本| 国产欧美精品一区| 欧美一区二区三区在线播放| 模特精品裸拍一区| 欧美在线日韩| 久久久久久尹人网香蕉| 欧美成人精品在线| 国产精品久久久91| 国产欧美日韩| 欧美一区2区三区4区公司二百| 夜夜夜久久久| 免费成人毛片| 欧美一区二区黄| 欧美福利专区| 欧美高清视频www夜色资源网| 国产精一区二区三区| 日韩视频三区| 久久视频在线视频| 亚洲激情校园春色| 欧美在线观看视频一区二区三区| 国产一区二区三区不卡在线观看 | 国产日韩欧美在线视频观看| 国模私拍一区二区三区| 久久久久久一区| 国产一区二区三区不卡在线观看| 亚洲一区二区精品| 午夜一区二区三区在线观看| 亚洲剧情一区二区| 欧美三级日韩三级国产三级| 亚洲精品国产精品国自产观看| 翔田千里一区二区| 亚洲欧美电影在线观看| 9色国产精品| 亚洲欧美激情视频| 91久久夜色精品国产网站| 免费视频一区| 欧美亚洲一区二区三区| 麻豆国产精品一区二区三区| 亚洲日韩欧美一区二区在线| 午夜精品99久久免费| 国产欧美综合一区二区三区| 亚洲黄色在线看| 在线观看日韩专区| 欧美激情一区二区三区在线| 久久尤物视频| 99re热这里只有精品视频| 午夜国产精品影院在线观看| 国产精品久久久一区麻豆最新章节| 一本色道久久综合亚洲精品不卡| 亚洲欧美国产日韩天堂区| 午夜精品免费在线| 女仆av观看一区| 欧美高清视频一区| 国产精品毛片va一区二区三区| 午夜精品在线视频| 国产一区二区黄| 久久久久成人精品免费播放动漫| 亚洲国产成人在线视频| 亚洲国产精品va| 亚洲免费观看高清完整版在线观看熊 | 卡一卡二国产精品| 亚洲午夜电影网| 亚洲综合999| 亚洲午夜精品在线| 欧美午夜视频| 99热免费精品| 日韩视频免费观看高清完整版| 久久综合九色综合网站| 欧美国产一区视频在线观看|