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

posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
Compiling the Input
翻譯:kun 2014.12.4


The input compile step involves gathering together all the resources needed to build the navigation mesh. This may be as simple as compiling the source geometry into the correct format, or it may be very complex, such as gathering off-mesh connections, mapping triangle type to area, gathering custom processors, etc.
【編譯輸入數據】這一步在整理一些數據,這些數據和生成NavigationMesh相關。這些數據可能只是簡單的將原始的三角形Mesh的頂點數據轉換為適合NavigationMesh的數據結構,也可以做其他十分復雜的事情,比如收集分離的mesh之間的連接關系(1),將三角形信息映射到自定義的區域數據上,或者準備好調度一些自定義的處理流程。




The results of this step are the InputGeometry, ProcessorSet, and ConnectionSet objects. (Though finalization of the connection set can be delayed to a later step.)
這一步完成之后,會得到如下的對象: InputGeometry, ProcessorSet, ConnectionSet. (ConnectionSet只是生成NavigationMesh的中間數據,最終數據里不會包含這個對象,但是會包含其信息, 其本身會在之后的步驟里被釋放掉)。


There is no standard implementation for compiling the input since the process is specific to the design environment. In Unity the input is gathered from various project assets and scene objects, such as mesh filters. In other environments it might be gathered directly from Maya or 3DSMax data.
編譯輸入數據是沒有標準實現的,這個步驟依賴于特定的平臺和環境。在Unity3D里,輸入數據來自assets和gameObject,比如mesh filters組件。在其他環境中,可能輸入數據直接從Maya或3DSMax模型文件里獲取(或者寫這些軟件的插件)。




Input Geometry


The InputGeometry object consists of standard triangle mesh data (vertices and indices) with additional triangle area assignment. It is derived from the source geometry.
InputGeometry對象除了包含原始的三角網格數據(頂點序列和索引序列),還包括對這些三角形按特定區域進行分組的信息。它繼承了原始幾何體的信息。


The InputGeometryCompiler and InputGeometryBuilder classes are used to create the input geometry object.
InputGeometryCompiler 和 InputGeometryBuidler 這兩個工具類用來生成 Input Geometry對象。


Each triangle in the input geometry is assigned an area based on surface type. Usually, triangles are assigned a default area, such as MaxArea, then special triangles are assigned special areas as needed. For example, 'meadow' and 'sidewalk' triangles may be the default area, while 'water' and 'swamp' triangles are assigned to other areas. Assigning areas during the build process ensures that polygons are properly formed for each type of surface.
每一個三角形都會被歸到某種區域內,區域的劃分一般依據于數據想表達的地貌。通常來講,三角形會被指定為一個默認區域類型,比如MaxArea,不過有一些三角形會被指定一個特殊的區域類型。舉個例子,用來表達“草地”和“人行道”的三角形會被指定到默認區域,而“水面”和“沼澤”這些三角形則會被指定為其他的區域類型。區域類型的劃分可以確保在生成多邊形列表時,不會生成跨地貌的多邊形。(2)




CopyC#
// Example: Creating a simple input geometry object.
// 例子: 創建一個簡單的InputGeometry對象.


// Where 'mesh' is a TriangleMesh object containing all of the input triangles.
// 'mesh'對象是指一個作為原始輸入的三角形網格對象.(3)


// Create an area buffer that assigns the default area id to all triangles.
// 創建一個區域buffer,長度為三角形的數量,每一個三角形都會被設置為默認區域。
byte[] areas = NMGen.CreateDefaultAreaBuffer(mesh.triCount);


// Create the builder.
// All triangles with a slope over 45.5f will be re-assigned to NMGen.NullArea.
// 創建builder.
// 所有與xz平面夾角超過45.5度的三角面都會視為不可達,會被設置為 NMGen.NullArea.
InputGeometryBuilder gbuilder = InputGeometryBuilder.Create(mesh, areas, 45.5f);


// Build in a single step.
// Build操作.
gbuilder.BuildAll();


// Get the result.
// 獲取結果,為之后的步驟做準備.
InputGeometry geom = gbuilder.Result;




The InputGeometryCompiler class can be used to combine multiple triangle meshes into a single triangle mesh, including area assignment.
InputGeometryCompiler 類可以用來合并多個三角形網格,并且區域信息也會自動合并.




ProcessorSet


The ProcessorSet contains INMGenProcessor objects used to add special behavior to the main build step. A processor may do something simple, such as applying default flags to all polygons (ApplyPolygonFlags), or something complex such as evaluating heightfield intermediates in order to auto-generate off-mesh connections.
ProcessorSet包含多個INMGenProcessor對象,INMGenProcessor是一些在生成NavigationMesh的過程中的特殊操作。一個processor可能只做了一些簡單的事情,比如將所有的多邊形設置為default;或者一些更復雜的事情,例如計算高度圖以便為自動生成分離的Mesh之間的連接關系提供數據支撐。


CopyC#
// Example: Creating a processor set.
// 例子:創建一個ProcessorSet.


// There is a standard set of processors needed for almost every build.
// 系統已經提供了一套標準的processors,可以滿足大多數的生成.
myProccessorList.Add(ProcessorSet.GetStandard(ProcessorSet.StandardOptions));


// You can also add other processors, including custom processors of your own.
// 當然你可以添加一些自己的Processor.
myProcessorList.Add(myCustomProcessor);
myProcessorList.Add(myOtherCustomProcessor);


// Create the set.
// 創建ProcessorSet.
ProcessorSet processors = ProcessorSet.Create(myProcessorList.ToArray());




How these processors are used is described further in The Incremental Builder topic.
如何使用這些processor會在Incremental Builder章節里進行介紹.


ConnectionSet


The ConnectionSet defines the off-mesh connections that will be added to the navigation mesh. In some cases they are fully defined during the input build process. In other cases they are generated by custom processor's later in the build process.
ConnectionSet定義了分離的Mesh相互之間是如何連接的,這些信息會被添加到NavigationMesh里。有時候這些信息可以在BuildInput步驟里自動生成,而另外一些時候則是由用戶某個自定義的Processor被安排在了特定步驟,從而提供此功能。(4)


The ConnectionSetCompiler can be used to dynamically compile connections for eventual inclusion in the connection set.
ConnectionSetCompiler可以動態的對編譯連接關系進行處理,并且可以處理各個連接之間的包含關系。(5)






(1)一些跳躍可達/傳送可達之類的自定義行為.
(2)因為不同的區域其路徑代價一般會不同,這會用于A*之類的啟發函數估價.
(3)其實是u3d的mesh對象,可以通過MeshFilter的mesh屬性得到.
(4)沒太懂.
(5)沒太懂.

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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在线热播精品免费99热| 日韩一级二级三级| 亚洲欧美另类国产| 久久一二三四| 亚洲二区免费| 91久久久在线| 日韩一级欧洲| 欧美一区二区精品| 欧美成年人网站| 欧美日韩黄色一区二区| 国产欧美日韩精品丝袜高跟鞋 | 1769国产精品| 亚洲人久久久| 欧美在线视频导航| 亚洲国产一区二区视频| 午夜久久久久久| 欧美成年人视频| 国产视频在线观看一区| 亚洲国产精品久久久久婷婷884| 99成人在线| 久久久久久久久综合| 亚洲福利国产精品| 亚洲欧美日产图| 欧美高清视频在线| 国精产品99永久一区一区| 一区二区三区 在线观看视| 久久久久91| 亚洲视频国产视频| 欧美激情一二三区| 永久域名在线精品| 欧美一区91| av不卡在线观看| 欧美精品福利视频| 在线日韩中文| 久久久久国内| 亚洲欧美日韩精品久久奇米色影视 | 亚洲国产婷婷综合在线精品| 国产精品美女| 国产免费亚洲高清| 一区二区三区精品久久久| 久久综合九色| 宅男噜噜噜66国产日韩在线观看| 免费观看不卡av| 亚洲福利视频一区二区| 久久免费一区| 午夜视频一区在线观看| 国产精品成人一区二区三区吃奶| 亚洲精品乱码| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲自拍16p| 亚洲精品在线视频观看| 欧美成年人视频网站欧美| 精品成人在线| 久久久精品性| 欧美一区免费视频| 国产日韩一区二区| 久久精品国产亚洲一区二区| 亚洲欧美国产77777| 国产欧美一区视频| 香蕉国产精品偷在线观看不卡| 亚洲视频一二| 国产欧美日韩综合一区在线播放| 性欧美激情精品| 亚洲夜晚福利在线观看| 国产精品永久入口久久久| 亚洲小说欧美另类社区| 亚洲手机在线| 国产中文一区二区三区| 美女性感视频久久久| 久热re这里精品视频在线6| 亚洲二区三区四区| 亚洲电影网站| 欧美午夜剧场| 久久国产一二区| 蜜臀av一级做a爰片久久| 亚洲日本中文字幕免费在线不卡| 91久久精品一区二区别| 欧美午夜激情小视频| 亚洲欧美在线看| 久久精品亚洲精品国产欧美kt∨| 91久久精品美女| 一本一本久久| 激情久久影院| 日韩一级精品| 国模精品娜娜一二三区| 亚洲精品欧美专区| 国产在线乱码一区二区三区| 亚洲成在人线av| 国产精品久久综合| 免费美女久久99| 欧美日韩一区三区| 久久全球大尺度高清视频| 欧美高清不卡| 久久精品国产免费| 欧美日韩不卡合集视频| 久久久91精品国产| 欧美视频在线观看一区| 玖玖在线精品| 日韩视频在线观看一区二区| 国产一区二区三区免费观看 | 亚洲永久免费观看| 精品成人国产在线观看男人呻吟| 亚洲国产精品第一区二区三区| 国产精品日韩在线播放| 亚洲激情视频网| 激情婷婷欧美| 亚洲综合99| 亚洲一区二区三区三| 欧美大片网址| 理论片一区二区在线| 国产精品视频自拍| 99re8这里有精品热视频免费| 亚洲成色最大综合在线| 新片速递亚洲合集欧美合集| 一区二区三区黄色| 免费观看久久久4p| 免费中文日韩| 国产午夜精品在线| 亚洲在线成人| 亚洲字幕一区二区| 欧美国产三级| 最新国产の精品合集bt伙计| 亚洲国产美女| 久久久久久久久久久久久女国产乱| 亚洲色图综合久久| 免费影视亚洲| 欧美1区2区| 亚洲动漫精品| 欧美大香线蕉线伊人久久国产精品| 美女主播一区| 亚洲福利专区| 麻豆成人在线播放| 欧美激情一区二区三区成人| 精品二区久久| 久久综合国产精品台湾中文娱乐网| 久久综合网hezyo| 一色屋精品视频在线看| 久久这里有精品视频| 欧美寡妇偷汉性猛交| 亚洲国产精品视频一区| 欧美成人日本| 日韩网站免费观看| 先锋影音国产精品| 国际精品欧美精品| 另类综合日韩欧美亚洲| 亚洲人成绝费网站色www| 一本到高清视频免费精品| 欧美日韩黄视频| 亚洲女与黑人做爰| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧洲精品一区二区三区不卡 | 91久久久久| 欧美大片免费观看在线观看网站推荐 | 欧美不卡视频一区发布| 91久久精品国产91久久| 亚洲少妇中出一区| 国产亚洲欧洲997久久综合| 一区二区冒白浆视频| 久久久久国色av免费观看性色| 国内成+人亚洲+欧美+综合在线| 亚洲午夜国产成人av电影男同| 欧美在线在线| 亚洲黄色在线视频| 国产精品一区一区三区| 麻豆精品在线视频| 日韩小视频在线观看| 久久精品主播| 99精品国产在热久久下载| 国产精品日韩| 麻豆精品视频| 午夜在线视频观看日韩17c| 亚洲成在线观看| 亚洲视频一区二区免费在线观看| 国产欧美一区二区三区久久 | 欧美国产精品v| 亚洲一区国产一区| 永久久久久久| 国产精品美女黄网| 欧美精品一区三区在线观看| 亚洲欧美另类国产| 亚洲清纯自拍| 农夫在线精品视频免费观看| 午夜久久电影网| 亚洲靠逼com| 一区二区三区在线视频观看| 国产精品区一区二区三区| 欧美成人一区二免费视频软件| 欧美一区二区三区另类| 亚洲视频高清| 在线一区免费观看| 亚洲精品久久久久久久久久久| 久久久夜夜夜| 欧美综合77777色婷婷| 亚洲欧美日韩人成在线播放| 中国女人久久久| 一本色道久久88亚洲综合88| 亚洲国产精品久久久久婷婷884|