2011-02-06 3 views
8

이 레이어를 효율적으로 구현하는 데 어떤 레이어가 도움이됩니까? 이 세 가지 구성 요소를 초기 레이어와 함께 나열하고 나머지는 내가 간대로 코딩 할 수 있도록하는 것이 바람직합니다.계층화 된 COLLADA Loader for OpenGL3.1 + Context

그래픽 엔진에서 사용할 COLLADA 로딩 라이브러리를 작성 중입니다. 물론 제가 시작하자마자 이것이 큰 일인 것처럼 보입니다. 이제 다른 레이어를 사용하기 위해 라이브러리를 작성하려고합니다.

나는 이 아니고이지만 아직 COLLADA을 (를) 알고 있습니다. 내가있을 수 있으리라 믿고있어 :

  • 기하학 층
  • 쉐이더 층
  • texure합니다 레이어

심지어 내가 확신 해요 이들의 다른 종류의 일부가 될 필요가 있습니다 계층화 체계.

사이드 노트, 나는 대부분 irrXML 또는이 interesting XML library을 사용할 것입니다. 달리 권고하지 않는 한, 파일을 읽으려면 방금 here을 읽으십시오.

답변

15

알고 계십니까? 공개 자산 가져 오기 라이브러리 (http://assimp.sourceforge.net/)? 그래픽 엔진에서 Collada 로딩 및 타겟 사용에 대한 지원이 상당히 있습니다. 콜라다 로더를 직접 작성하는 것은 어려울뿐 아니라 생산적인 사용을 위해 충분히 안정적으로 사용할 수있는 연령대가 필요합니다. 주로 형식이 매우 복잡하기 때문에 (또는 Assimp의 Collada 로더의 기본 작성자가 농담으로 말하면 : 거의 turing입니다. -complete) 모든 수출업자는 자신의 이상한 습관을 가지고 있습니다.

추가 기능이 필요한 경우 Assimp의 Collada 로더를 기반으로 작업하고 필요한 것을 추가 할 수 있습니다 (BSD 라이센스, 원본을 특성 부여하는 한 오래 걸릴 수 있습니다).

참고 : 나는 프로젝트와 affliated 따라서 편견이 아닙니다. 그러나 우리는 우리 자신의 콜라다 로더를 쓰기로 만든 끔찍한 경험 후, 난 그냥 내가 가장 가능성이 우리가 너무 사용 irrXML

을 사용하는 것입니다 ... 경고를 할 필요 같은

사이드 메모를 느낀다. 처음부터 새로 시작 하시겠습니까?하지 마십시오. TinyXML과 같은 DOM 파서를 사용하십시오. Collada는 복잡하지만 매우 잘 정의되어 있으므로 SAX 파서는 문서 트리를 직접 작성해야하므로 작업을 강화합니다. 전체 문서와 비슷하게 데이터 구조가 필요합니다. Collada 요소는 상호 연결되어 있습니다. 의미있는 것을 읽으려면 다양한 상호 참조를 해결해야합니다.)

+0

OpenAsset loader와 모든 기능을 지원하는 렌더링 엔진을 인터페이싱하기위한 적절한 레이어를 제안 할 수 있습니까? 라이브러리에 대해 들어 봤지만 내가 인식하지 못하는 오버 헤드와 멀티 스레딩/스트리밍 문제에 항상 관심이 있습니다. 당신이 그것에 대해 어떤 말을 가지고 있다면 나는 그것을 감사 할 것입니다. –

+0

나무를 짓는 것에 관해서는, 이것은 주로 내가 왜 자신의 로더 또는 적어도 다른 번역기에서 번역기를 쓸 필요가 있다고 생각한 이유입니다. 주로 OpenCL을 위해 데이터를로드 할 때마다 특정 방식으로 데이터를 포장해야합니다. –

+0

'레이어'가 의미하는 바를 얻지 못합니다.Assimp는 한 번에 파일을 읽고 이해하는 모든 것을 모아서 통합 된 출력 데이터 구조로 변환하여 호출자가이 (메모리 내) 형식을 처리하기 만하면됩니다. –