FBX에서 생산 된 나쁜 Collada를 수정하는 방법?


10

PandaBD에서 FBX 파일을 가져올 수 있도록 FBX SDK (2011.3.1)를 사용하여 FBX 파일을로드하고 Collada 파일로 저장하려고했습니다. 불행히도 결과 Collada 파일은 여러 가지 이유로 사용할 수 없습니다.

  • Maya 고유의 ​​추가 기술이 있습니다

퍼지다

<diffuse>
    <texture texture="Map__2-image" texcoord="CHANNEL0">
        <extra>
            <technique profile="MAYA">
                <wrapU sid="wrapU0">TRUE</wrapU>
                <wrapV sid="wrapV0">TRUE</wrapV>
                <blend_mode>ADD</blend_mode>
            </technique>
        </extra>
    </texture>
</diffuse>
  • 파일의 다른 곳에서 참조되지 않는 texcoord 채널 이름을 지정합니다 (이전 코드 샘플에서는 "CHANNEL0"을 사용하는 형상이 없습니다 ...)

  • 모든 폴리곤은 기본 재질 (확산 색상, 스페 큘러 색상 등)을 사용하여 처음으로 두 번 내보내고 질감 재질을 사용하여 다시 두 번 내 보냅니다.

어쨌든 결과 Collada 파일은 OpenCOLLADA 또는 Panda3D의 "dae2egg"로 올바르게 열 수 없습니다.

누구나 OpenCOLLADA와 같은 잘 알려진 Collada 수입 업체가이를 "수정"하고 이해하는 방법에 대한 경험이 있습니까?


3
이것은 Collada에서 발견 한 큰 문제입니다. 실제로 지나치게 생성 된 형식이기 때문에 지원을 주장하는 임의의 도구간에 데이터를 전송하는 데 그다지 유용하지 않습니다. 거의 모든 스키마의 데이터를 포함 할 수 있으며 사용중인 특정 가져 오기 프로그램이 실제로 처리 할 수없는 유효한 표준 호환 Collada 파일 일 수 있습니다. 가져 오기 / 내보내기를 더 잘 제어하거나 도구가 원하는 Collada를 생성 할 때 데이터 교환 형식으로 사용하는 것이 훨씬 더 유용합니다.

1
@ 조쉬 : 적어도 닫힌 바이너리 형식과 달리 사람이 읽을 수 있습니다. 최소한 Collada를 사용하면 한 데이터 세트에서 다른 데이터 세트로 변환 할 수있는 도구 및 스크립트를 작성할 수 있습니다. 추가 작업이 필요한 경우에도 Interop은 가능 합니다.
Nicol Bolas

답변:


2

AC # 도구는 당신의 친구입니다-.NET System.Xml 프레임 워크를 사용하여 입력 파일을 반복하고, 좋아하지 않는 부분을 찾아 내고, 문서를 다시 작성하기 전에 문서에서 제거하거나 조정할 수 있습니다. 다시. 실제로 XSLT가하는 일이지만 실제로는 동일한 작업을 수행하는 암호화 된 XSLT 구문을 찾는 것보다 변환을 설명하기 위해 C # 코드를 작성하는 것이 더 쉽다는 것을 항상 발견했습니다.

당신이해야 할 일은 '나쁜'사례를보고 공통점이 무엇인지 파악하는 것입니다. 예를 들어 texcoord = "CHANNEL0"을 사용하는 텍스처를 가진 모든 디퓨즈 기법을 쉽게 찾을 수 있습니다. 모든 객체를 반복하고 각 객체에 대해 해당 속성의 모든 기술을 확인하십시오. 찾지 못한 경우 출력 문서에 노드를 추가하고 계속 진행하십시오. 노드를 인식하지 못하면 출력에 추가하고 계속하십시오. 찾은 경우 출력 문서에 추가하지 않아도 효과적으로 삭제됩니다.

그러나 중복 다각형을 발견하는 것은 약간 까다 롭습니다. 각 다각형 쌍을 동등성으로 분석해야하기 때문입니다. "평평한 색상의 다각형은 신경 쓰지 않고 텍스처 된 다각형 만 신경 쓰는 것"과 같은 규칙을 결정할 수 있다면 훨씬 더 간단 할 것입니다. 그러면 적절한 다각형을 버릴 수 있습니다.

그러나 실제로 복제본을 얻는 것은 매우 이상합니다. 지오메트리의 복제는 명백한 이유로 큰 문제가 아니므로 FBX가 그렇게 할 것입니다. Collada를 Maya / Max와 함께 사용한 적이 있으므로 FBX가 생산하는 것을 보증 할 수 없었습니다. 그러나 저는 묻습니다. FBX 파일에 실제로 지오메트리가 중복되어 있지 않다고 확신하십니까?


답변 주셔서 감사합니다. 물론 내 수입 업체에서 문제를 해결할 수 있었기 때문에 표준 문제를 해결하고 아직 발견하지 못한 문제에 대한 수정 사항을 적용 할 수 있도록 동일한 문제를 이미 해결하고 수정 한 사람을 찾고있었습니다.
David

0

다른 내보내기를 찾거나 쓰거나 Collada 파일이 XML이기 때문에 [XSLT] [1]을 사용하여 원하지 않는 데이터를보다 일반적인 형태로 변환하거나보다 일반적인 형태로 변환 할 수 있습니까?


그것은 내가하고있는 일이지만, 나는 이미 그 일을 한 사람을 찾고 있었다 (바퀴를 재발 명하지?)
David
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.