最近在做一个可视化展示的项目,记录一下流程:
- 建模,模型来源,可以参考沙盘展示类项目,自己建模或者拼装其他源模型(本人以前是3D建模师,可以应付一些简单的场景)
- 有效模型导入到web端,这里采用的obj,mtl的组合格式
- 使用Three.js创建场景和模型的编辑--3DMax技术
- 实现数据与模型的交互,位置可以是API,实时状态可以soket通信
项目链接地址:Visualization
蛋糕盘旋转效果、透视:
特写:
实际项目运用:
平滑转换摄像机镜头:
function animateCamera(oldP, oldT, newP, newT, callBack){ var tween = new TWEEN.Tween({ x1: oldP.x, // 相机x y1: oldP.y, // 相机y z1: oldP.z, // 相机z x2: oldT.x, // 控制点的中心点x y2: oldT.y, // 控制点的中心点y z2: oldT.z // 控制点的中心点z }); tween.to({ x1: newP.x, y1: newP.y, z1: newP.z, x2: newT.x, y2: newT.y, z2: newT.z },1000); tween.onUpdate(function(object){ camera.position.x = object.x1; camera.position.y = object.y1; camera.position.z = object.z1; controls.target.x = object.x2; controls.target.y = object.y2; controls.target.z = object.z2; controls.update(); }) tween.onComplete(function(){ controls.enabled = true; callBack&&callBack() }) tween.easing(TWEEN.Easing.Cubic.InOut); tween.start(); }
可视化前缀:htmlpreview.github.io/?