我希望能够引用glTF文件中特定网格上的特定面。但是,我对基元的概念感到困惑。通常,我将使用人脸索引(即在three.js中),并且始终能够引用同一人脸。但是,有时glTF中的网格具有多个基元。这些使用相同的面部缓冲区吗?他们至少使用连续的面部缓冲区吗?我想知道我是否可以仅使用一个数字(即,面索引)来引用网格中的面,或者是否还需要使用基本索引。
网格图元共享一个顶点池吗?
答案 0 :(得分:2)
单个网格中的两个glTF基本体可能与两个glTF网格(每个都包含一个基本体)相关或无关。两个原语可能具有:
因此,除非您完全控制要加载的文件,否则默认和最安全的假设是将每个基本体视为完全独立的网格。如果您要检查更具体的情况(例如上面的前两个项目符号),则可以随时将其添加为以后的优化。
如果将glTF文件加载到threejs中,则每个基元将在公用<div class="something" id="thing"></div>
<a><i class="some-icon" id="iconA"></a></i>
<a><i class="some-icon" id="iconB"></a></i>
</div>
<div class="something" id="thing"></div>
<a><i class="some-icon" id="iconA"></a></i>
<a><i class="some-icon" id="iconB"></a></i>
</div>
下变成单独的THREE.Mesh
。
有关更多详细信息,请参见glTF specification section on Meshes。