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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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 设置整个三个几何体对象的颜色_Three.js_Webgl - Fatal编程技术网

Three.js 设置整个三个几何体对象的颜色

Three.js 设置整个三个几何体对象的颜色,three.js,webgl,Three.js,Webgl,有没有办法使用THREE.js设置整个THREE.Geometry对象的颜色?我有一些天真的方法可以做到这一点,但没有一种方法看起来是理想的 我可以克隆材质并为每个几何体设置不同的颜色。基本上,每个几何体都与材质具有一对一的关系。但是,这将在GPU上创建许多重量级材质对象和可能不必要的额外着色器 我也可以使用单一的白色材质,为几何体的所有面着色。但是,由于每个几何体只有一种颜色,但有许多面,因此会创建许多相同颜色对象的重复 使用three.js是否有“适当”的方法 但是,这将在GPU上创建许多重

有没有办法使用THREE.js设置整个
THREE.Geometry
对象的颜色?我有一些天真的方法可以做到这一点,但没有一种方法看起来是理想的

我可以克隆材质并为每个几何体设置不同的颜色。基本上,每个几何体都与材质具有一对一的关系。但是,这将在GPU上创建许多重量级材质对象和可能不必要的额外着色器

我也可以使用单一的白色材质,为几何体的所有面着色。但是,由于每个几何体只有一种颜色,但有许多面,因此会创建许多相同颜色对象的重复

使用three.js是否有“适当”的方法

但是,这将在GPU上创建许多重量级材质对象和可能不必要的额外着色器


不应该。如果着色器相同,则将重复使用它们。因此,创建尽可能多的几何体材料应该是可以的。

谢谢。那么我将使用许多材料。克隆基础材料而不是从头开始创建新材料是否会增加内存或提高速度?