我是否需要一个 Three.Color() 对象,或者我可以简单地使用我自己的 {r:xx, g:xx, b:xx} 对



我有一个颜色模块,用于表示大多数类型的颜色。对于它来说,有一个 Three.Color 对象是微不足道的,它只是一个具有三个 r、g、b 属性的对象。

但是Three.Color有一个具有多种方法的原型。

所以问题是:我可以在 Three 需要颜色的地方使用普通的 {r:xx, g:xx, b:xx} 对象吗?或者如果我实际上使用新的 Three.Color(( 代替,最好(避免转换(。

我想你的问题的答案取决于你的情况。Three.js 渲染器使用.isColor等属性来执行大量检查,因此当引擎检查它正在处理的对象类型时,传递仅包含{r, g, b}个值的对象在很多情况下都不起作用。

此外,如果您将渲染器设置为处理伽玛色彩校正,则需要.convertLinearToGamma.再加上可能还有其他几个我想不起来的场合,所以我认为最好从一开始就创建一个THREE.Color,以避免将来遇到很多不需要的行为。

最新更新