网格Three.js上两种材质之间的动画
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网格Three.js上两种材质之间的动画相关的知识,希望对你有一定的参考价值。
我试图随着时间的推移将网格材质更改为另一种材质(最好使用Greensock动画平台)。有没有办法使用非着色材料?
伪代码:
TweenMax.to(mesh.material.map, 1, {image:newTexture});
答案
您想要在不编写自定义ShaderMaterial
的情况下从一种材料补间到另一种材料。
这是实现这种效果的一种方法。但它需要重复你的网格。
var mesh = new THREE.Mesh( geometry, material1 ); // transparent false
scene.add( mesh );
var mesh2 = new THREE.Mesh( geometry, material2 ); // transparent true, opacity 0
scene.add( mesh2 );
//mesh2.onBeforeRender = function ( renderer ) { renderer.clearDepth(); }; // optional
var tween = new TWEEN.Tween( mesh2.material )
.to( { opacity: 1 }, 1500 )
.delay( 1500 )
.start();
一定要打电话
TWEEN.update();
在你的动画循环中。
three.js r.87
另一答案
您可以使用emissiveMap
存储新图像并将其color
保存到0x000000
。
然后,您可以运行两个补间。
首先补间从map
到{r:1, g:1, b:1}
的漫反射{r:0, g:0, b:0}
颜色
另一个补间用于将发射颜色从{r:0, g:0, b:0}
改为{r:1, g:1, b:1}
以上是关于网格Three.js上两种材质之间的动画的主要内容,如果未能解决你的问题,请参考以下文章