상세 컨텐츠

본문 제목

glTF - Buffers, BufferViews

멀티미디어/이미지(Image)

by cepiloth 2018. 11. 20. 16:25

본문

728x90
반응형



  • buffer, bufferView 및 accessor 객체의 예제에 이미 Minimal glTF File 절에 나와 있습니다. 이 절에서는 이러한 개념을 더 자세희 설명 합니다.


Buffers


  • 버퍼는 고유한 구조 또는 의미가 없는 로우 바이너리 데이터 블록을 나타냅니다. 이 데이터는 URI를 사용하여 버퍼에 의해 참조 됩니다.
  • 이 URI 는 외부 파일을 가리 키거나 JSON 파일에서 이진 데이터를 직접 인코딩하는 데이터 URI 일 수 있습니다.
  • minimal glTF file 은 데이터 URI 에 인코딩된 44 바이트의 데이터가 있는 버퍼의 예제입니다.


1
2
3
4
5
6
  "buffers" : [
    {
      "uri" : "data:application/octet-stream;base64,AAABAAIAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAA=",
      "byteLength" : 44
    }
  ],
cs


  • 버퍼의 데이터의 일부분은 스키닝 정보 또는 애니메이션 키프레임이 포함되거나, 색인 되어 있거나, 꼭지점 속성으로 렌더러에 전달 되어야 할 수도 있습니다.
  • 이 데이터를 사용할 수 있으려면 데이터의 구조와 유형에 대한 추가 정보가 필요 합니다.



BufferViews


  • 버퍼에서 데이터를 조립하는 첫 번째 단계는 버퍼뷰 객체를 사용하는 것 입니다. 버퍼뷰는 하나의 버퍼의 데이터의 슬라이스를 나타 냅니다.
  • 이 슬라이스는 바이트 단위의 오프셋과 길이를 사용하여 정의됩니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  "bufferViews" : [
    {
      "buffer" : 0,
      "byteOffset" : 0,
      "byteLength" : 6,
      "target" : 34963
    },
    {
      "buffer" : 0,
      "byteOffset" : 8,
      "byteLength" : 36,
      "target" : 34962
    }
  ],
cs


  • 첫 번째 버퍼뷰는 버퍼 데이터의 처음 6 번째 바이트를 나타냅니다. 두번 째는 버퍼의 36 바이트를 의미하며 오프셋은 8 바이트 입니다.





  • 밝은 회색으로 표시된 바이트는 아래에 설명 된것처럼 접근자를 올바르게 정렬하는 데 필요한 패딩 바이트 입니다. 각 버퍼뷰는 추가로 target 이라는 속성을 포함 합니다. 이 속성은 나중에 버퍼 뷰가 참조하는 유형이나 특성을 분류하기 위해 렌더러에서 사용 될 수 있습니다.

  • target 은 데이터가 정점 속성에 사용됨을 나타내는 상수 일 수 있습니다. (34962, ARRAY_BUFFER를 나타 냅니다.) 또는 데이터가 정점 인덱스에 사용 될 수 있습니다. (34963, ELEMENT_ARRAY_BUFFER로 나타 냅니다.)

  • 이 시점에서 버퍼데이터는 여러 부분으로 나누어지고 각 부분은 하나의 bufferView로 설명됩니다. 하지만 렌더러에서 이 데이터를 실제로 사용 하려면, 데이터의 유형 및 레이아웃에 대한 추가 정보가 필요합니다.

  • Reference


728x90
반응형

관련글 더보기

댓글 영역