• 正文概述
  • 上文 WEB 3D技术 three.js 雾 基础使用讲解我们讲了雾的基本使用方法

    但是 如果我们要做一个树林 一颗一颗树去加 那真的是要累死了

    我们一定是在建模软件上 建模好这样的模型 然后将模型导入到场景

     

    官网中搜索 GLTFLoader

     

    在这里插入图片描述

    在我们日常WEB开发中 用的最多的3D格式 就是 GLTF

     

    这里 我们需要一个glb 或者 gltf 文件

    可以直接访问 https://www.webvrmodel.com/php/static/model-1666.html

    或者下载我的资源

    three.js GLTFLoader学习案例

     

    首先 我们需要在代码中 带入 gltf加载器

     

    //导入gltf加载器import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";

    然后 我们编写代码如下

     

    import './style.css'import * as THREE from "three";import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";//导入gltf加载器import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";//创建场景const scene = new THREE.Scene();scene.fog = new THREE.Fog(0x999999,0.1,10);scene.background = new THREE.Color(0x999999);// 实例化加载器g1tfconst gltfLoader = new GLTFLoader();gltfLoader.load( // 模型路径 "/gltf/cityModel.gltf", // 加较完成同调 (gltf) =>{ console.log(gltf); })//创建相机const camera = new THREE.PerspectiveCamera( 45, //视角 视角越大 能看到的范围就越大 window.innerWidth / window.innerHeight,//相机的宽高比 一般和画布一样大最好 0.1, //近平面 相机能看到最近的距离 1000 //远平面 相机能看到最远的距离);//c创建一个canvas容器 并追加到 body上const renderer = new THREE.WebGLRenderer(0);renderer.setSize(window.innerWidth, window.innerHeight);document.body.appendChild(renderer.domElement);//设置相机位置 这里 我们设置Z轴 大家可以试试 S Y 和 Z 都是可以的camera.position.z = 5;//设置相机默认看向哪里 三个 0 代表 默认看向原点camera.lookAt(0, 0, 0);//将内容渲染到元素上renderer.render(scene, camera);const controls = new OrbitControls(camera, renderer.domElement);function animate() { controls.update(); requestAnimationFrame(animate); /*cube.rotation.x += 0.01; cube.rotation.y += 0.01;*/ renderer.render(scene, camera);}animate();

    不要什么几何体了 我们直接声明GLTFLoader实例

    然后通过 实例的 load 函数导入 gltf格式文件

    回调函数接收一个行参 即 gltf文件实例对象

     

    我们运行代码 打开控制台

    很明显 这里是拿到了的

     

    在这里插入图片描述

    scene 字段即为我们当前的场景

    我们直接在回调函数中 编写代码

     

    scene.add(gltf.scene)

    将 scene 添加进来

     

    在这里插入图片描述

    运行代码 场景就出来了

     

    在这里插入图片描述

    scene 下的 children 即是我们的物体 还有一个相机 当然 我们只展示物体 相机是不管的

     

    在这里插入图片描述

    但是 目前 我们所有物体 目前是个黑白的

    是因为 他需要一个灯光的材质

     

    在这里插入图片描述

    虽然现在看着暗暗的

     

    在这里插入图片描述

    我们改成这样

     

    const gltfLoader = new GLTFLoader();gltfLoader.load( // 模型路径 "/gltf/scene.glb", // 加较完成同调 (gltf) =>{ gltf.scene.traverse((child) => { if (child.isMesh) { child.frustumCulled = false; child.castShadow = true; child.material.emissive = child.material.color; child.material.emissiveMap = child.material.map; } }); scene.add(gltf.scene); })

    色彩就出来了

     

    在这里插入图片描述

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网(glbxz.com)gltf文件下载-glb格式下载-模型制作 » WEB 3D技术 three.js通过 GLTFLoader 导入并应用 gltf/glb 3D资源

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    • 7879会员数(个)
    • 16034资源数(个)
    • 40本周更新(个)
    • 39125 今日更新(个)
    • 1139稳定运行(天)

    提供最优质的资源集合

    加入VIP
    开通VIP 享更多特权,建议使用 QQ 登录
    ×