美文网首页
Three.JS 发光球体,材质纹理,缩放移动动画,教程

Three.JS 发光球体,材质纹理,缩放移动动画,教程

作者: 南瓜泥1 | 来源:发表于2017-12-06 11:03 被阅读0次

一开始接触Three.js是非常蒙的,结合网上的一些教程以及自身对3dmax的一点点了解,开始了Three.js的探索。

注:引用的是three.min.js

发光球体的辉光效果

//导入纹理vartexture=THREE.ImageUtils.loadTexture('mt4.png', {},function() {//引入图片为mt4.png,该图片是半透明的,类似辉光效果renderer.render(scene,camera);});varmaterial=newTHREE.MeshLambertMaterial({//设置texture纹理map:texture,material:0.5,//透明度 取值0-1transparent:true,//设置是否为透明});

//设置球3,该球效果是辉光效果varsphere3=newTHREE.Mesh(newTHREE.SphereGeometry(5,110,140),//半径是5,多边形拟合数,多边形拟合数material);//引入上面声明的材质sphere3.position.set(0,0,10);//球心的坐标位置varpivotPoint=newTHREE.Object3D();//3d效果sphere3.add(pivotPoint);//向球球3添加3d效果scene.add(sphere3);//添加到场景中

//设置球4varsphere4=newTHREE.Mesh(newTHREE.SphereGeometry(4,40,20),//半径是4,多边形拟合数,多边形拟合数newTHREE.MeshLambertMaterial({//改材质是自发光球体,没有阴影的白色球体emissive:0xffffff,    }));sphere4.overdraw=true;//这个没啥用sphere4.position.set(0,0,10);//球心的坐标位置,和上一个球的位置一样,scene.add(sphere4);//添加到场景中

设置相机的位置:

camera.position.z=80;//设置相机位置,x=0 y=0 z=80camera.lookAt(scene.position);document.body.appendChild(renderer.domElement);

缩放、移动 动画:

render();vari=1;//动画判断参数functionrender() {//动画变大缩小if(i<100) {sphere3.scale.x+=0.001;//球球3的x,y,z宽度统统增加sphere3.scale.y+=0.001;sphere3.scale.z+=0.001;        }else if(i<200) {sphere3.scale.x-=0.001;//当到了200的时候,缩小,免得变得越来越大sphere3.scale.y-=0.001;sphere3.scale.z-=0.001;    }elsei=0;i++;

sphere3.position.x += 0.01;//球球3的x坐标增加,可以实现平移效果

renderer.render(scene,camera);//渲染场景requestAnimationFrame(render);//回到render方法重新渲染,得以实现上面的动画效果}

接下来是完整代码(如需运行,需要three.min.js,和mt4.png 材质纹理图片)

(←可以直接下载这张图)

html><htmllang="en"><head><metacharset="UTF-8"><title>燕小溜的教程title><scriptsrc="three.min.js">script><style>body{background:#000;

}a{color:#fff;

}style>head>head><ahref="http://blog.csdn.net/yangnianbing110/article/details/51306653">http://blog.csdn.net/yangnianbing110/article/details/51306653a><br><body><scripttype="text/javascript">varscene=newTHREE.Scene();//    scene.fog=new THREE.Fog(0xffffff,0.045,100);//启用场景雾化varrenderer=newTHREE.WebGLRenderer();renderer.setClearColor(0x000000,1.0);//设置背景是黑的renderer.setSize(window.innerWidth,window.innerHeight);varcamera=newTHREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,1,1000);//眼镜(相机)的视野大小设置//点光源varlight=newTHREE.DirectionalLight();light.position.set(0,0,80);//点光源位置,注意:这里与相机的位置是一致的scene.add(light);//导入纹理vartexture=THREE.ImageUtils.loadTexture('mt4.png', {},function() {//引入图片为mt4.png,该图片是半透明的,类似辉光效果renderer.render(scene,camera);

});varmaterial=newTHREE.MeshLambertMaterial({//设置texture纹理map:texture,material:0.5,//透明度 取值0-1transparent:true,//设置是否为透明});//设置球3,该球效果是辉光效果varsphere3=newTHREE.Mesh(newTHREE.SphereGeometry(5,110,140),//半径是5,多边形拟合数,多边形拟合数material);//引入上面声明的材质sphere3.position.set(0,0,10);//球心的坐标位置varpivotPoint=newTHREE.Object3D();//3d效果sphere3.add(pivotPoint);//向球球3添加3d效果scene.add(sphere3);//设置球4varsphere4=newTHREE.Mesh(newTHREE.SphereGeometry(4,40,20),//半径是4,多边形拟合数,多边形拟合数newTHREE.MeshLambertMaterial({//改材质是自发光球体,没有阴影的白色球体emissive:0xffffff,

}));sphere4.overdraw=true;//这个没啥用sphere4.position.set(0,0,10);//球心的坐标位置,和上一个球的位置一样,scene.add(sphere4);camera.position.z=80;//设置相机位置,x=0 y=0 z=80camera.lookAt(scene.position);document.body.appendChild(renderer.domElement);render();vari=1;//动画判断参数functionrender() {//动画变大缩小if(i<100) {sphere3.scale.x+=0.001;sphere3.scale.y+=0.001;sphere3.scale.z+=0.001;sphere4.scale.x+=0.001;sphere4.scale.y+=0.001;sphere4.scale.z+=0.001;

}else if(i<200) {sphere3.scale.x-=0.001;sphere3.scale.y-=0.001;sphere3.scale.z-=0.001;sphere4.scale.x-=0.001;sphere4.scale.y-=0.001;sphere4.scale.z-=0.001;

}elsei=0;i++;renderer.render(scene,camera);//渲染场景requestAnimationFrame(render);//回到render方法重新渲染,得以实现上面的动画效果}script><canvaswidth="1242"height="609"style="width:1242px;height:609px;">canvas>body>html>

相关文章

  • Three.JS 发光球体,材质纹理,缩放移动动画,教程

    一开始接触Three.js是非常蒙的,结合网上的一些教程以及自身对3dmax的一点点了解,开始了Three.js的...

  • c4d操作学习2

    1.小球动画 克隆球体,加背景 c一下 发光材质 渲染设置-输出-720p 全部帧 到右视图,光影着色,作为渲染视...

  • iOS 动画

    移动动画 渐隐 缩放 翻转 重复动画

  • Flutter跨平台移动端开发丨Animation、Animat

    目录 动画相关主要对象 缩放动画 非线性缩放动画 淡入淡出 非线性淡入淡出 平移动画 非线性平移动画 动画相关主要...

  • 数字人C4D材质灯光渲染课堂之十四:一屉广东虾饺-2

    【材质】 一、虾饺材质: 1、建立一个新材质,勾选颜色,在纹理通道添加燥波,设置如下: 2、勾选发光通道,在纹理添...

  • android 简单动画

    平移动画 旋转 // 缩放动画 // 透明度

  • 6 车充 3

    海报合成参考图片 产品先建个大概 材质分层 整体材质调整 加一点凹凸 凹凸纹理和发光 科技电路 基础材质 加发光电...

  • spriteMaterial (rotate) 旋转问题

    spriteMaterial是Three.js中的点精灵材质。利用它我们可以在场景中加载图片,贴上纹理。并且效果很...

  • 132 粒子信息节点

    创建一个无光环境,为球体添加粒子系统,渲染改为物体 基础材质,大球改为纯金属光滑材质,镜面材质 小球添加自发光,+...

  • iOS动画

    ===永久闪烁的动画===== ======横向 纵向移动======= =========缩放====== --...

网友评论

      本文标题:Three.JS 发光球体,材质纹理,缩放移动动画,教程

      本文链接:https://www.haomeiwen.com/subject/gammottx.html