2013-03-18 84 views
0

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

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

我也可以使用单一的白色材质,而不是几何图形的所有面。但是,会产生相同颜色对象的很多重复,因为每个几何图形只有一个颜色但有许多面。

是否有一个“正确”的方式与three.js做到这一点?

回答

1

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

它不应该。如果它们相同,着色器将被重用。因此创建尽可能多的几何材料应该没问题。

+0

谢谢。那么我会用很多材料。克隆基础材料而不是从头开始创建新基础材料会增加内存或速度吗? – Vortico 2013-03-19 21:30:15

+0

应该是一样的。 – mrdoob 2013-03-20 00:41:58