threejs

参考官网环境配置安装相关依赖后,搭建一个场景展示模型的基本流程。

  1. 创建Three.js场景
const scene = new THREE.Scene();
  1. 加载GLB文件

Three.js提供了加载GLB文件的工具,GLTFLoader、DRACOLoader 需搭配使用

const loader = new THREE.GLTFLoader();
const dracoLoader = new DRACOLoader();
const draco_path = '/draco/';
dracoLoader.setDecoderPath(draco_path);
gltfLoader.setDRACOLoader(dracoLoader)

gltfLoader.load('path/to/model.glb', (gltf) => {
  scene.add(gltf.scene);
});

  1. 创建设置相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
  1. 设置渲染器
    渲染器负责将3D场景渲染到网页上。
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
  1. 调整照明
    为了让3D模型看起来更加逼真。
    环境光在Three.js场景中扮演着基础光源的角色,会均匀地照亮场景中的所有物体,且没有特定的方向,也不会产生阴影。
    方向光可以模拟来自无限远的平行光线,类似于太阳光。方向光非常适合用于模拟日光或其他远距离光源的效果。例如,它可以用于增强场景的逼真度和立体感,为物体提供明暗效果。
//环境光
const ambientLight = new THREE.AmbientLight(0xffffff, 0.5);
scene.add(ambientLight);
//方向光
const directionalLight = new THREE.DirectionalLight(0xffffff, 1);
directionalLight.position.set(10, 10, 10);
scene.add(directionalLight);
  1. 添加交互功能
    通过鼠标或键盘来控制3D场景。
const controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.enableZoom = true;
controls.enablePan = true;
  1. 动画循环

定时更新场景让动画更加流畅的并且没有顿感的渲染在网页上。

function animate() {
  requestAnimationFrame(animate);
  renderer.render(scene, camera);
  controls.update()
}
animate();

over

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容