点亮鼠标上的对象

时间:2014-04-14 16:28:57

标签: three.js

我试图在鼠标悬停事件中突出显示我的游戏中的网格物体(动画角色等)。 它们有多种纹理,有时还有皮肤。

我以为我会将它们包装成ShaderMaterial并使用hit-test更换制服以使用片段着色器使其变亮。

要做到这一点,我能以某种方式操纵常规着色吗? 我可以混合多种材质,使我的着色器从标准着色器中获取颜色值并调整它们吗? 或者我是否需要完整的单独渲染过程并将其与作曲家混合?

或者可能只是完全不同的东西,比如环境光只应用于一个物体/着色器?

感谢您的任何建议。

3 个答案:

答案 0 :(得分:2)

重新发布,请参阅评论以获取详细信息/讨论:

"您可以在鼠标悬停时更改整个材质/着色器,但我猜这有点性能,具体取决于用户通常做的开关数量以及应用程序的其余部分。我曾经使用的是普通phong材料的发光颜色,例如material.emissive.setRGB()。这也会给你一些很好的效果"。

答案 1 :(得分:0)

有一些例子,你可以从中学到很多东西。看看他们的来源:

答案 2 :(得分:0)

除了GuyGood所说的,如果您确实决定在材料上使用.setRGB(),则需要使用 R ed G reen的值 B lue范围从01,如Three.js Documentation

中所述

或者如果你喜欢,就像我一样,.setHex()功能也存在。