2016-11-21 2 views
1

콜라다 파일의 구조를 이해하려고합니다. 특히 pycollada 라이브러리 (https://github.com/pycollada/pycollada)를 사용하고 있습니다. 나는 2 개의 질문이있다.Collada (* .dae) 파일 구조 및 Pycollada

질문 1 : 처음 (http://pycollada.github.io/creating.html)에서 파일을 생성하기 위해 튜토리얼을 살펴 갖는

는, 내가 이해하지 못하는 것은 콜라다 개체의 구조입니다. 특히, 다음 코드 줄을보고있는 것은 메쉬의 형상을 만드는 데 사용되는 것, 그리고 형상은 메쉬에 포함되어

>>> triset = geom.createTriangleSet(indices, input_list, "materialref") 
>>> geom.primitives.append(triset) 
>>> mesh.geometries.append(geom) 

>>> mesh = Collada() 
>>> geom = geometry.Geometry(mesh, "geometry0", "mycube", [vert_src, normal_src]) 

과 몇 줄의 누군가 Collada 파일의 명확한 구조를 가지고 있습니까? 어딘지 이해할 수있는 시각적 표현 일 가능성이 있습니다.

질문 2 :

내가 두 번째를 추가해야하는 위치 (여기 내가 콜라다 파일의 내부에 2 개의 다른 3D 객체, 예를 들어, 큐브 및 구형을 의미)이 다른 개체를 원한다면? 두 번째 지오메트리 오브젝트가 메시 내부에 있습니까? 아니면 두 번째 TriangleSet이 지오 메트릭 내부에 있습니까? 아니면 다른 방식으로 정의되어 있습니까?

답변

2

COLLADA의 <geometry> 요소는 기하학적 모양을 설명하는 정보의 컨테이너입니다. 디지털 자산을 만들 때 3D 객체를 표현할 수 있습니다. 그리고 다각형 메쉬는 이러한 표현 가능성 중 하나 일뿐입니다. 다른 가능성은 예를 들어 <brep> 일 수 있습니다.

폴리곤 기반 지오메트리 기술은 <mesh> 요소의 하위 요소로 <geometry> 아래에 포함됩니다. 이러한 요소는 <lines>, <linestrips>, <polygons>, <polylists>, <triangles>, <trifans><tristrips>입니다.

따라서 구조는 다음과 같습니다. <geometry> -> 어떤 종류입니까? -> 즉 <mesh> -> 어떤 다각형 기반 형상이 포함되어 있습니까? -> 즉 <triangles> 나 COLLADA 당신에게 형상의 내부 구조를 보여 드리죠 :

Structure of triangle-based mesh geometry in COLLADA

당신은 아래 <p> 요소 아래에 <float_array><source> 요소 3D 공간에서 점의 위치와 인덱스를 정의 할 수 있습니다 <triangles>. <p> 요소는이 예에서 꼭지점뿐만 아니라 법선도 정의합니다.

두 번째 질문은 형상 라이브러리에서 두 번째 <geometry>으로 정의하거나 요소 아래의 메쉬 부분으로 정의 할 수 있습니다. 그러나 나중에 서로 분리해야한다면, 예를 들어 입방체의 인스턴스를 2 개 만들고, 다른 하나는 파란색이고 다른 하나는 구체의 인스턴스입니다. 동일한 메시 아래서는 안됩니다. 두 개의 분리 된 기하학 오브젝트로 정의해야합니다. 그것은 당신의 사건에 달려 있습니다.