COLLADA Specification2010. 10. 13. 03:29
  • GOAL

    •  COLLADA will use XML

      •  XML은 구조화된 컨텐츠에 잘 정의된 프레임워크.
      • 거의 모든 언어의 편집기가 XML 파서를 가지고 있다.
    •  COLLADA will not use binary data inside XML
    • The COLLADA common profile will expand over time to include as much common data as possible

 

  • Tool Requirements and Options

 

  • Schema Concepts

    •  Address Syntax - COLLADA는 address elements와 instance document포함 값을 위한 두개의 메카니즘을 사용 함

      • URI addressing -The url and source attributes of many elements use the URI addressing scheme that locates instance
        documents and elements within them by their id attribute values.

        • id 어트리뷰트를 사용하는COLLADA 엘리먼트는 URI 정의 주소를 사용할 수 있다. XML spec은 XML 도큐멘트 안에서 URI fragment 를 써 넣어 식별하도록 정의해 놓았다.  URI fragment 식별자는 XPointer syntax를 반드시 따라야 한다.  COLLADA 주소 또한 shorthand pointer 표기법으로 선언된 XPointer syntax와 같은 유니크한 URI 식별자이다. shorthandㅊㅊㅊㅊㅊ pointer는 인스턴스 도큐먼트의 id 어트리뷰트 값이 된다.
        • <source id="here" />   
          <input source="#here" />
          <bind target="here" />
        • 예를 들어, COLLADA 인스턴스 도큐멘트 내부에 light는 ID "Lt-Light"로 정의되어 있고, <instance_light url = "#Lt-Light">처럼 사용되어 참조 될 수 있다. 다음 예는 light node 엘리먼트로 light 라이브러리에서 찾아 참조한다. 
          <library_lights>
            <light id="Lt-Light" name="light">
              <technique_common>
                <ambient>
                  <color>1 1 1</color>
                </ambient>
              </technique_common>
            </light>
          </library>
          ...
          <node id="Light" name="Light">
            <translate>-5.000000 10.000000 4.000000</translate>
            <rotate>0 0 1 0</rotate>
            <rotate>0 1 0 0</rotate>
            <rotate>1 0 0 0</rotate>
            <instance_light url="#Lt-Light" />
          </node>
        •  URI 문장은 Internet Engineering Task Forece(IETF) 문서 RFC 3986에 정의되어 있다, “Uniform
          Resource Identifier (URI): Generic Syntax,” available at http://www.ietf.org/rfc/rfc3986.txt. URI와 같이 5개 계층으로 정해져 있다. : the scheme, authority, path, query, and fragment 이다. BNF의 문장은:
             scheme ":" hierarchy-part ["?" query ] ["#" fragment ]
             hierarchy-part = "//" authority path-abempty
                / path-absolute
                / path-rootless
                / path-empty
          스키마와 각 계층별 요소가 요구된다. 계층별 요소는, 하지만, 비어있을 수 있다.
          URI syntax는 마치 디렉토리 처럼 계층적 패스네임 레벨을 필요로 하며 slashes (“/”)와 escape내의 다른 특별한 캐릭터로 구분된다. 예를 들어, 16진법 변환은 "%20"과 같이 나타낼 수 있다. 절대 경로는 IETF format을 따르지 않고 native file-system path와 같이 사용된다. ( native file-system path 예)“C:\foo\bar\my file#27.dae” )
          하지만 역슬래쉬등을 구분하지 못하는 등의 이유로 다음처럼 항상 타당한 URI 문장을 사용해야 한다. ( An absolute path 예)“/C:/foo/bar/my%20file%2327.dae” )
      • Scoped-Identifier (SID) addressing

        • SID는 sid_type의 값으로, NCName 타입(xs:NCName)의 XML 스키마 언어로 정의되어 있으며 부모 엘리먼트 범위 내에서 유일한 값으로 제한된다. SID들은 같은 계층 레벨의 셋으로 둘러쌓여 있다. <technique>엘리먼트들 사이에 애매하게 SID가 들어가게 될 것이다.
           sidref_type의 값을 사용하는 SID 패스 참조를 포함하는 모든 attribute와 element는 , COLLADA-defined로 id와 sid 어트리뷰트 스키마로 주소를 표기한다. 이것은 target과 ref 어트리뷰트를 포함하며, <SIDREF>와 <SIDREF_array> 엘리먼트, 그리고 SID path 참조를 포함하는 모든 다른 어트리뷰트이다.
        •  SID Addressing Syntax - 식별 영역의 syntax 주소 방식

          • 식별 영여
          • <node id="jsb_directionalLight1" name="jsb_directionalLight1" type="NODE">

                    <translate sid="translate">0 0 0</translate>

                    <rotate sid="rotateZ">0 0 1 -29.81514</rotate>

                    <rotate sid="rotateY">0 1 0 31.23874</rotate>

                    <rotate sid="rotateX">1 0 0 -67.50213</rotate>

                    <scale sid="scale">1 1 1</scale>

 

 

이 글은 스프링노트에서 작성되었습니다.

Posted by BLUE-NOTE