私はModel I/O
を発見していると私は球を作成するために、頂点を生成するためにそれを使用したいと思いますので、私は、このクラスのメソッドを使用してMDLMesh
オブジェクトを作成しました:MDLMeshに名前のないデフォルト属性があるのはなぜですか?
let sphere = MDLMesh.newEllipsoidWithRadii(vector_float3(1, 1, 1), radialSegments: 300, verticalSegments: 300, geometryType: MDLGeometryType.KindTriangles, inwardNormals: false, hemisphere: false, allocator: MTKMeshBufferAllocator(device: device))
すると、それがどのように動作するかを理解するために、私がしたいです私は彼らにこの方法を読んでいる私のこのMDLMeshの属性を調べる:ここ
for attribute in sphere.vertexDescriptor.attributes {
if let vertexAttribute = attribute as? MDLVertexAttribute {
print("Attribute named : \(vertexAttribute.name), of format \(vertexAttribute.format.rawValue)")
}
}
が出力されます。
属性命名:、名前のフォーマット0属性の::、名前のフォーマット0
属性の:、の名前のフォーマット786434
属性のtextureCoordinate、:という名前の通常、フォーマットの786435
属性:名前のフォーマット786435
属性の位置、 format 属性名:、フォーマット0の属性:
フォーマットされた属性:、フォーマット0の属性:
属性名:、フォーマット0フォーマット0の属性指定:
属性名:、フォーマット0属性名:、of form 0のの フォーマットの0の名前の属性:
のフォーマットされた属性:、フォーマット0の属性指定された:
属性の指定された:0フォーマットの0の、
という名前 属性:、名前のフォーマット0属性の:、名前のフォーマット0
属性の:、名前のフォーマット0属性の:、名前のフォーマット0
属性の:、名前のフォーマット0属性の:、フォーマット0
のフォーマット0の属性指定:0フォーマット名0:
属性名:、フォーマット0属性:、of form at 0
私はポジションと法線が自動的に生成されたと考えますが、なぜテクスチャ座標がありますか?それらを生成するために使用されたルールは何ですか? 何よりも、無効な形式の名前のない属性のすべてが存在するのはなぜですか?
はあなたに
EDITありがとう:私が新しいを追加した場合でも、カスタム(法線を生成することによって、例えば)属性ための属性(私の場合は31)の固定数があるように思わ、属性はその無効なものは新しい属性に置き換えられ、属性の総数はまだ31です。
ありがとう、ありがとう! –