Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 如何在gltf中指定网格上的面?_Three.js_Gltf - Fatal编程技术网

Three.js 如何在gltf中指定网格上的面?

Three.js 如何在gltf中指定网格上的面?,three.js,gltf,Three.js,Gltf,我希望能够引用glTF文件中特定网格上的特定面。然而,我对原语的概念感到困惑。通常,我会使用face索引(即,在three.js中),并且我总是能够引用同一张脸。但是,glTF中的网格有时具有多个基本体。这些是否使用相同的面缓冲区?他们是否至少使用连续的面缓冲区?我想知道我是否可以只使用一个数字(即,面索引)引用网格中的面,或者我是否还需要使用基本体索引 网格基本体是否共享一个顶点池?单个网格中的两个glTF基本体可以是相关的,也可以是不相关的,就像两个glTF网格各自包含一个基本体一样。两个基

我希望能够引用glTF文件中特定网格上的特定面。然而,我对原语的概念感到困惑。通常,我会使用face索引(即,在three.js中),并且我总是能够引用同一张脸。但是,glTF中的网格有时具有多个基本体。这些是否使用相同的面缓冲区?他们是否至少使用连续的面缓冲区?我想知道我是否可以只使用一个数字(即,面索引)引用网格中的面,或者我是否还需要使用基本体索引


网格基本体是否共享一个顶点池?

单个网格中的两个glTF基本体可以是相关的,也可以是不相关的,就像两个glTF网格各自包含一个基本体一样。两个基本体可能具有:

  • 相同的顶点属性但不同的索引
  • 相同的顶点属性和索引,但材质不同
  • 没有共享的顶点属性或索引
  • 完全不同的绘制模式(点、线、三角形等)
因此,除非您完全控制正在加载的文件,否则默认和最安全的假设是将每个基本体视为一个完全独立的网格。如果有更具体的情况需要检查(如上面的前两个项目),您可以随时将其添加为以后的优化

如果将glTF文件加载到threejs中,则每个基本体将成为公共
THREE.Group
下的一个单独的
THREE.Mesh

有关更多详细信息,请参阅