store.raywenderlich.com/products/metal-by-tutorials
세상에 내가 대체 뭘 공부하고 있는 거지? 2장인데 벌써 생각도 해본적 없는 신세계가 찾아오네요. 3D Model에 대해 알아보고, 샘플로 주어진 모델들을 MTKView에 그려봅니다. 여긴 어디... 난 누구...
3D model은 3차원 공간의 점들로 이루어집니다. MDLMesh의 생성자를 이용하면 box, sphere, cone 등 간단한 도형을 코드로 그리는 게 가능하며, 3D file format으로 작성된 모델을 import해서 MDLMesh를 생성할 수도 있습니다. 여기서는 Wavefront Technologies에서 만든 .obj format을 사용하고, 3D modeling app으로 Blender를 사용합니다. 무료인데다 RayWenderlich에서 튜토리얼도 제공한다고 하네요. www.raywenderlich.com/2622-blender-tutorial-for-beginners-how-to-make-a-mushroom
Blender Tutorial for Beginners: How To Make A Mushroom
Learn how to make a 3D mushroom in this Blender tutorial for beginners!
www.raywenderlich.com
모르는 개념이 너무 많이 나와서 책에 나오는 내용들을 도저히 정리하기가 어렵습니다. 깨달은 대로 나열해보면
객체를 생성할 때 descriptor를 사용하는 것은 Metal에서 아주 일반적으로 사용하는 패턴이라고 합니다. 읽어들일 모델 데이터 포맷을 descriptor에 정의해야 합니다. 데이터 포맷을 동적으로 처리해야하는 이유는 아마도 3D file format이 다양하기 때문...이겠죠?
모든 model은 origin을 갖고 있습니다. 다만 Metal NDC(Normalized Device Coordinate) 시스템은 2-unit wide, 2-unit high, 1-unit deep하다고 합니다. 왜죠.
뭔지도 모르면서 일단 튜토리얼을 따라하고 있습니다. 일단 MDLMesh가 있고 그에 1:1로 맵핑되는 MTKMesh가 있습니다. Mesh는 Submesh의 container로 Submesh 배열을 프로퍼티로 갖고 있으며, 각 Submesh는 triangle에 대응합니다.
즉, 3개의 vertex로 표현할 수 있는데, 이 때 vertex의 순서에 따라 Submesh의 방향이 결정됩니다. Winding order가 반시계 방향일 경우 해당 triangle은 우리를 향하고 있는 것이고, 시계 방향일 경우 반대쪽을 향하는 것입니다. 이후에 다시 다뤄진다고 하는데, GPU는 전달받은 triangle 중 우리를 향하지 않는 triangle을 추려냄으로써 프로세싱 타임을 아낄 수 있다고 합니다.
Metal. Ch 1. Hello, Metal! (0) | 2020.06.07 |
---|
댓글 영역