내가 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)") } }
하면 출력 이름 : 위치 포맷이라는 786,435
속성 : 정상 포맷 786,435
속성 이름 : textureCoordinate, 포맷 786,434
속성 이름 :라는 형식 0 속성 : 포맷 0
라는 속성들 : 중 format 0 형식의 0 :
형식의 0 특성 : 0의 형식의 특성 0 :
형식의 0 특성 : : 0 형식의 특성 :
명명 된 특성 :, 형식 0 속성 이름 :, 형식 0
속성 이름 :, 형식 0 속성 이름 :, of form 0
형식의 0 : 0 형식의 0 :
형식의 특성 : 0 형식의 0 :
특성 이름 :, 형식 0의 특성 이름 :, 형식 0
속성 이름 :라는 형식 0 속성 : 포맷 속성라는 0
:라는 형식 0 속성 : 포맷 속성라는 0
:라는 형식 0 속성 : 포맷 0
0의 형식의 속성 : 0 형식의 0 :
명명 된 특성 :, 형식 0 특성 :, of form at 0
저는 위치와 법선이 자동으로 생성되었지만 왜 텍스처 좌표가 있다고 생각합니까? 규칙을 생성하는 데 사용 된 규칙은 무엇입니까? 무엇보다도 잘못된 형식의 이름없는 속성이 모두 있습니까?
당신에게
편집 감사 :이 속성의 고정 된 수의 (31 내 경우)이 있음을 보일 수있을 것입니다 때문에, (생성 법선에 의해 예를 들어) 속성을 새 사용자 정의 속성을 추가 할 경우에도 그 유효하지 않은 속성은 새로운 속성으로 대체되며 총 속성 수는 여전히 31입니다.
오, 고맙습니다. –