我试图在鼠标悬停事件中突出显示我的游戏中的网格物体(动画角色等)。 它们有多种纹理,有时还有皮肤。
我以为我会将它们包装成ShaderMaterial并使用hit-test更换制服以使用片段着色器使其变亮。
要做到这一点,我能以某种方式操纵常规着色吗? 我可以混合多种材质,使我的着色器从标准着色器中获取颜色值并调整它们吗? 或者我是否需要完整的单独渲染过程并将其与作曲家混合?
或者可能只是完全不同的东西,比如环境光只应用于一个物体/着色器?
感谢您的任何建议。
答案 0 :(得分:2)
重新发布,请参阅评论以获取详细信息/讨论:
"您可以在鼠标悬停时更改整个材质/着色器,但我猜这有点性能,具体取决于用户通常做的开关数量以及应用程序的其余部分。我曾经使用的是普通phong材料的发光颜色,例如material.emissive.setRGB()。这也会给你一些很好的效果"。
答案 1 :(得分:0)
有一些例子,你可以从中学到很多东西。看看他们的来源:
答案 2 :(得分:0)
除了GuyGood所说的,如果您确实决定在材料上使用.setRGB()
,则需要使用 R ed G reen的值 B lue范围从0
到1
,如Three.js Documentation
或者如果你喜欢,就像我一样,.setHex()
功能也存在。