在three.js中,是否有一种方法可以制作自定义纹理之间的过渡效果?

4
我正在尝试使用OpenGL在three.js中创建一个模型查看器。 其中一个功能是在运行时更改纹理。 我已经做到了。但对我来说似乎有点粗暴,我想要更酷的东西。就像这个视频。 当然,我知道这是高级的东西,但我没有找到任何关于它的例子。 有什么提示吗?

我认为你需要一个自定义的ShaderMaterial。 - 2pha
1个回答

2

您需要在两个纹理之间进行线性插值(lerp)。您的片段着色器需要持有两个纹理,然后在加载第二个纹理(即您想要更改的纹理)时触发lerping。然后使用像 col = fromTex.rgb * (1.0-t) + toTex.rgb * t 这样的操作,并在整个时间内改变混合/插值系数t,直到完全混合到第二个纹理。可以将t作为一个uniform发送,随着时间的推移缓慢地从0.0->1.0更改。


搞定了!运行得很好。 - Guilherme Nunes
或者你可以在片段着色器中使用 mix 函数。更简单。 - taseenb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接