一種幾何表示法,具有構成頂點的屬性和定義基元的可選索引數據。幾何圖形和描述陰影的
new Geometry(options)
Appearance
可分配給Primitive
進行可視化。APrimitive
可以從許多異構(在許多情況下)幾何結構中創建,以提高性能。幾何圖形可以使用GeometryPipeline
中的函數進行轉換和優化。
Parameters:
options
(Object)
Name | Description |
---|---|
options.attributes
GeometryAttributes
|
組成幾何體頂點的屬性。 |
options.primitiveType
PrimitiveType
default PrimitiveType.TRIANGLES
|
幾何體中基本體的類型。 |
options.indices
(Uint16Array | Uint32Array)
|
用于確定幾何體中基本體的可選索引數據。 |
options.boundingSphere
BoundingSphere
|
完全包圍幾何體的可選邊界球體。 |
Example
// Create geometry with a position attribute and indexed lines.
var positions = new Float64Array([
0.0, 0.0, 0.0,
7500000.0, 0.0, 0.0,
0.0, 7500000.0, 0.0
]);
var geometry = new bmgl.Geometry({
attributes : {
position : new bmgl.GeometryAttribute({
componentDatatype : bmgl.ComponentDatatype.DOUBLE,
componentsPerAttribute : 3,
values : positions
})
},
indices : new Uint16Array([0, 1, 1, 2, 2, 0]),
primitiveType : bmgl.PrimitiveType.LINES,
boundingSphere : bmgl.BoundingSphere.fromVertices(positions)
});
Members
attributes : GeometryAttributes
組成幾何體頂點的屬性。此對象中的每個屬性對應于包含屬性數據的
GeometryAttribute
。屬性始終不交錯存儲在幾何圖形中。
有保留的具有眾所周知語義的屬性名。以下屬性由幾何圖形創建(取決于提供的VertexFormat
)。
position
-三維頂點位置。64位浮點(用于精度)。每個屬性3個組件。見VertexFormat#position
.normal
-正常(標準化),通常用于照明。32位浮點。每個屬性3個組件。見VertexFormat#normal
.st
-2d紋理坐標。32位浮點。每個屬性2個組件。參見VertexFormat#st
.bitangent
-位范圍(標準化),用于切線空間效果,如凹凸貼圖。32位浮點。每個屬性3個組件。參見VertexFormat#bitangent
.tangent
-切線(標準化),用于切線空間效果,如凹凸貼圖。32位浮點。每個屬性3個組件。請參見VertexFormat#tangent
以下屬性名稱通常不是由幾何體創建的,而是由Primitive
或GeometryPipeline
函數添加到幾何體以準備渲染幾何體。
- {
position3DHigh
-編碼64位位置用GeometryPipeline.encodeAttribute
計算的高32位。32位浮點。每個屬性4個組件。 position3DLow
-編碼64位位置的低32位,用GeometryPipeline.encodeAttribute
計算。32位浮點。每個屬性4個組件。position3DHigh
-使用GeometryPipeline.encodeAttribute
計算的編碼64位二維(Columbus視圖)位置的高32位。32位浮點。每個屬性4個組件。position2DLow
-使用GeometryPipeline.encodeAttribute
計算的編碼64位二維(哥倫布視圖)位置的低32位。32位浮點。每個屬性4個組件。color
-rgba顏色(標準化),通常從GeometryInstance#color
開始。32位浮點。每個屬性4個組件。pickColor
-用于拾取的rgba顏色。32位浮點。每個屬性4個組件。
-
Default Value:
undefined
See:
Example:
geometry.attributes.position = new bmgl.GeometryAttribute({
componentDatatype : bmgl.ComponentDatatype.FLOAT,
componentsPerAttribute : 3,
values : new Float32Array(0)
});
boundingSphere : BoundingSphere
完全包圍幾何體的可選邊界球體。這通常用于剔除。
-
Default Value:
undefined
indices : Array
可選索引數據,與
Geometry#primitiveType
一起確定幾何體中的基本體。
-
Default Value:
undefined
primitiveType : PrimitiveType
幾何體中基本體的類型。這通常是
PrimitiveType.TRIANGLES
,但可以根據特定的幾何圖形變化。
-
Default Value:
undefined
Methods
(static) computeNumberOfVertices(geometry) → {Number}
計算幾何體中的頂點數。運行時相對于頂點中的屬性數是線性的,而不是頂點數。