十5、polygon API

用來存儲polygon(faces,edges,vertices)等部分的基本數據結構,這些數據結構而後被封裝到polygonal shape nodes,這些節點構成maya的基本結構——dependency graph。html

 

Polygon components:node

 polygon Mesh 由三種基本的component組成: 數組

1. Vertices數據結構

2. Edges:app

3. Faces:url

在這三種基礎的polygon components之上還有2中附加的component:spa

5. Face-Vertices指針

6. UVscomponent

 

每個polygon mesh的vertices存儲在一個數組中,數組的每一項爲一個三維的浮點數指針,每一項對應一個vertexId,這個vertexId基於數組的index,edges和faces的索引都是基於這一個數組的索引。htm

邊索引:polygon mesh的邊存儲在邊數組中,每一條邊由2個頂點組成,因此邊數組的每一項爲一個指向邊結構的指針。邊結構第一項的integer指向start vertex在頂點數組中的vertexId,第二項指向end vertex在頂點數組的頂點數組中的vertexId:

面數組:

polygonal mesh的面也所有被存儲在一個數組中,每個面被描述爲一個整數序列,每個整數表明一個edge的ID,因此它是基於邊表上的。

第一個序列表明一個面的包圍邊,接下來的子序列表明瞭面當中全部的holes。

internal flags 標誌了每一個序列的起止。

(1)face array:

(2)face index array(face offset array):

 

face-vertices:

相鄰的面共享一些頂點,一般你須要對應於某一個面的頂點,從而與一樣的處於另外一個面的同一個頂點進行區分,這就是face-vertices。

face-vertices是conceptual components,用來定義polygonal的特性(feature),例如color per vertex和UVs。face-vertices由face array和face index array來表示,每個face-vertices由一個faceid和一個vertexid共同構成

能夠有faceid在face array中找到edges,而後每一個edgeid的start vertex就是由verticesid來對應的。

例子:

於是face array能夠變爲:

 

UVs:

UVs依賴於face-vertices的概念,UVs對應於2D的平面用來將texture映射到polygon surface上,The structure that holds UVs in Maya consists of two arrays:

  • A UV index array that uses the exact same indices of the face array (visualized as a face vertex array).
  • A UV array that holds a list of UV points indexed by UVIds.

The first array associates each face vertex with a given UVId or none at all if the face that the face-vertex belongs to is not mapped. Each UVId then corresponds to an index in the UV list that holds the 2D point (U and V float values) where the UV is situated on the UV space.:

 

 

The Polygonal shape node:

用來表示一個mesh,對應maya中的一個DG,The polygonal shape node holds four fundamental attributes: an inMesh, an outMesh, a cachedInMesh, and pnts (tweaks), as shown in the following illustration.

相關文章
相關標籤/搜索