如何在three.js中使带纹理的网格对象成为灰度?

时间:2019-03-08 14:02:31

标签: canvas three.js

我想使带纹理的对象在按下按钮时显示为灰度,然后在再次单击按钮后保留其原始颜色。我该怎么办?

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决此问题。可能最简单的方法是准备纹理的第二个灰度版本。单击按钮时,只需交换纹理即可。

另一种选择是使用简单的后处理效果,如以下live demo中所示。但是,这将改变整个场景的视觉外观,而不仅仅是单个对象。如果您只想操作某些对象,则需要像OutlineEffect这样的更高级的后处理。

还可以增强现有材料,以便您可以均匀地控制最终颜色到灰度值的转换。该制服将是一个简单的整数值,表示开/关。

// -