加载模型FBX到场景中
使用FBXLoader加载FBX模型到场景之中
FBX 加载DEMO
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js'const loader = new FBXLoader();loader.load('./model.fbx', function (object) {scene.add(object);});
通过加载BFX就得到了一个场景
先通过材质给地板之类的进行调色,使场景更加的好看协调
lor.setStyle('#040912')
// object 为要添加效果的object
// 添加包围的geometry
// 重点
const geometry = new THREE.ry);// 获取物体的世界坐标 旋转等
const worldPosition = new THREE.Vector3();
WorldPosition(worldPosition);// this.effectGroup.add();
const material = new THREE.LineBasicMaterial( {color: 0x4C8BF5,linewidth: 1,linecap: 'round', //ignored by WebGLRendererlinejoin: 'round' //ignored by WebGLRenderer
} );const line = new THREE.LineSegments(geometry, material);line.name = 'surroundLine';py(object.scale);
ation);
py(worldPosition);scene.add(line);
效果:
用当前的高度值来获取当前所处于整个mesh的高度插值
获得插值
用插值计算出混淆的颜色
float indexMix = vPosition.z / (uSize.z * 0.6);
outgoingLight= mix(outgoingLight, uTopColor, indexMix);
使用中心点计算出当前一个扩散的一个范围,当前的范围值内通过sin计算出渐变的效果
vec2 position2D = vec2(vPosition.x, vPosition.y);if (uDiffusion.x > 0.5) {// 扩散速度float dTime = mod(time * uDiffusion.z, uRadius * 2.0);// 当前的离中心点距离float uLen = distanceTo(position2D, vec2(uCenter.x, uCenter.z));// 扩散范围if (uLen < dTime && uLen > dTime - uDiffusion.y) {// 颜色渐变float dIndex = sin((dTime - uLen) / uDiffusion.y * PI);distColor = mix(uColor, distColor, 1.0 - dIndex);}}
代码文件 /effect/radar.js
目前效果: 物体渐变、包围线条、扩散波、流动效果、飞线,扫光、线条扫光、光墙
持续会添加: 线条物体切换效果,道路跑光等。
需要什么效果可以在下方留言,持续添加效果中
github:代码地址
喜欢的请点一个star 或者给一个赞
此代码教程只有对应的github有,其他的均为假冒。 目前有一个叫 老陈打码的博主,直接剽窃工程开始卖课程(已有不少被剽窃)
本文发布于:2024-01-29 13:59:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650799215777.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |