2016-04-29 69 views
3

我正在试图使用opengl在three.js中创建一个模型查看器。 而我想要做的功能之一是在运行时更改纹理。 我已经做到了。但对我来说似乎有点残酷,我想要更酷的东西。像这样video。 当然我知道这是一个先进的东西,但我没有找到任何关于它的例子。 一些提示?有没有办法在three.js中的纹理之间进行自定义转换

+0

我想你会需要一个自定义ShaderMaterial – 2pha

回答

2

您需要两个纹理之间线性插值(线性插入)。你的片段着色器需要保存两个纹理,然后在加载第二个纹理时触发lerping,第二个纹理是要更改的纹理。比使用像col = fromTex.rgb * (1.0-t) + toTex.rgb * t这样的操作,并在整个时间内改变混合/搭配系数t,直到您完全融入第二个纹理。 t可以作为制服发送,随着时间的推移,它将从0.0->1.0缓慢变化。

+0

就是这样!工作得很好。 –

+0

或者你可以在片段着色器中使用'mix'函数。更简单。 – taseenb

相关问题