멀티미디어/이미지(Image)
glTF - Buffers, BufferViews
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
반응형