当前位置: 首页 > article >正文

ThreeJs练习——载入外部模型

对应教程

three.js docs

通过此教程,掌握了如何通过载入GLTF格式的外部模型,除此之外,还可以在如其他obj格式。都演示练习。

练习代码

GLTF格式模型导入

参考并删减此样例的内容:three.js-master/examples/webaudio_orientation.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>导入模型demo</title>
</head>
<body>
<div id="info"></div>
<script type="importmap">
    {
        "imports": {
            "three": "./three.js-master/build/three.module.js",
            "three/addons/": "./three.js-master/examples/jsm/"
        }
    }
</script>
<script type="module">
    import * as THREE from "three"
    import { GLTFLoader } from "three/addons/loaders/GLTFloader.js"
    import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
    // 基本场景创建
    const scene = new THREE.Scene();
    scene.background = new THREE.Color( 0xa0a0a0 );
    const camera = new THREE.PerspectiveCamera(75, // 视野FOV,代表能看到的视野角度
        window.innerWidth/window.innerHeight, // 长宽比,代表被压扁的程度
        0.1,  // 近界面,比近界面近的物体不会被渲染
        1000 // 远界面,比远界面远的物体不会被渲染
    );
    const renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement)
    camera.position.set(3,2,3);
    // 载入模型
    const gltfLoader = new GLTFLoader();
    gltfLoader.load( './three.js-master/examples/models/gltf/BoomBox.glb', function ( gltf ) {
        const boomBox = gltf.scene;
        // boomBox.position.set( 0, 0.2, 0 );
        boomBox.scale.set( 20, 20, 20 ); // x,y,z轴的缩放比例,如果太小,看不到。
        scene.add( boomBox );
        renderer.setAnimationLoop( animate );
    } );
    // 设置控制轨道
    const controls = new OrbitControls( camera, renderer.domElement );
    controls.target.set( 0, 0.1, 0 );
    controls.update();
    controls.minDistance = 0.5;
    controls.maxDistance = 10;
    controls.maxPolarAngle = 0.5 * Math.PI;
    // 渲染立方体
    function animate() {
        requestAnimationFrame(animate);
        renderer.render(scene, camera)
    }
    animate();
</script>
</body>
</html>

安利一个开源项目

threejs-learning/src/common/threeModules/Viewer.js at public · tingyuxuan2302/threejs-learning · GitHub


http://www.kler.cn/a/502004.html

相关文章:

  • Java100道面试题
  • 工厂人员定位管理系统方案(二)人员精确定位系统架构设计,适用于工厂智能管理
  • 不同音频振幅dBFS计算方法
  • uniApp通过xgplayer(西瓜播放器)接入视频实时监控
  • python milvus 如何检查有多少个collection 以及多少个index,多少个database
  • Artec Leo 3D扫描仪与Ray助力野生水生动物法医鉴定【沪敖3D】
  • 【源码解析】Java NIO 包中的 HeapByteBuffer
  • C++—9、如何在Microsoft Visual Studio中调试C++
  • 性能测试工具Jmeter负载模拟
  • TPS61022 PFM的机制以及TPS61xxx转换器的PFM与PWM之间的负载阈值
  • 使用jquery的$.ajax提交带有FormData的post请求报错TypeError: Illegal invocation
  • 详解C#调用系统文件窗口:打开文件、保存文件和选择文件夹
  • 【Javaweb02】初探CSS:网页样式设计的入门指南
  • 《机器学习》——TF-IDF(关键词提取)
  • 如何用python实现语音输出
  • 积鼎科技:国产自主核反应堆流体仿真解决方案
  • 深度解析Linux中的调试器gdb/cgdb的使用
  • MySQL 16 章——变量、流程控制和游标
  • 青少年编程与数学 02-006 前端开发框架VUE 23课题、UI框架
  • huggingface/bert/transformer的模型默认下载路径以及自定义路径
  • 《使用 YOLOV8 和 KerasCV 进行高效目标检测》
  • 【机器学习案列】学生抑郁可视化及预测分析
  • 迁移WSL中的ext4.vhdx文件
  • MATLAB与Python中的快速傅里叶变换频谱分析
  • R9000P发热严重
  • 聚铭网络当选中关村华安关键信息基础设施安全保护联盟理事单位