Three.js 使用颜色过渡对网格进行动画处理 (tween.js)

elv*_*rde 5 javascript transition tween three.js tween.js

我为了实现这个目标而变得疯狂。我想在悬停时更改网格(ConvexGeometry)的颜色,直到这里我可以毫无问题地做到这一点,我可以更改网格的颜色。

\n\n

当我想用从 a 到 b 的颜色过渡/插值来实现它时,问题就出现了,现在我正在使用 tween.js 但它不起作用。我不知道网格是否支持材质颜色过渡,或者问题是其他的......我将不胜感激。

\n\n

我无法\xc2\xb4t找到任何这样做的例子......只有这种类似的方法

\n\n

无论如何,当我将鼠标悬停在对象上时,我正在执行以下操作:

\n\n
var tween = new TWEEN.Tween(INTERSECTED.material.materials[0].color)\n            .to({r: 0, g: 25, b: 155}, 5000)\n            .easing(TWEEN.Easing.Quartic.In)\n            .onUpdate(function() {\n                INTERSECTED.material.materials[0].color.r = this.r;\n                INTERSECTED.material.materials[0].color.g = this.g;\n                INTERSECTED.material.materials[0].color.b = this.b;\n              }).start()\n
Run Code Online (Sandbox Code Playgroud)\n

Joh*_*ohn 3

基本上,您需要tween.update(time)对每个请求的动画帧执行操作。

我修改了 Threejs.org 的示例来演示这一点:http://jsfiddle.net/up1wg1Lo/2/

请注意,我向animte和添加了参数render,以便他们可以知道刻度。tween.update(time)另请注意第 143 行的用法