【发布时间】:2020-10-27 00:49:30
【问题描述】:
Khronos 文档将步幅定义为:
当缓冲区视图用于顶点属性数据时,它可能具有 byteStride 属性。该属性定义了每个顶点之间的跨度(以字节为单位)。
我有些困惑,因为我已经尝试过的许多示例(其中 3 个)的步幅为 0,所以直到现在我只是忽略了该属性。这些示例渲染得很好。
我是从类型推断“步幅”。例如如果类型是 vec3 并且组件类型是浮点数,我将每 12 个字节加载为一个元素。阅读规范时我不完全确定的一些事情是,
当stride不为0时,这是否意味着数据可以交错?
当步幅为非 0 时,数据可以是非连续的(例如填充字节)吗?
换句话说,您是否会遇到缓冲区未交错但sizeof(type_component) * element_count 的总大小不是要读取的总内存小节的除数的情况?
【问题讨论】:
标签: c++ json parsing rendering gltf