位置: IT常识 - 正文

Three.js一学就会系列:05 加载3D模型(three.js入门指南)

编辑:rootadmin
Three.js一学就会系列:05 加载3D模型 系列文章目录

推荐整理分享Three.js一学就会系列:05 加载3D模型(three.js入门指南),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:three.js bim,three.js 教程,three.js中文教程,three.js webgl,three.js入门指南,three.js 教程,three.js入门指南,three.js入门指南,内容如对您有帮助,希望把文章链接给更多的朋友!

Three.js一学就会系列:01 第一个3D网站 Three.js一学就会系列:02 画线 Three.js一学就会系列:03 炫酷3D划线 Three.js一学就会系列:04 炫酷3D文字

文章目录系列文章目录前言一、核心代码讲解引入插件轨道控制器加载3D文件完整代码效果二、3D模型资源总结前言

最近开始入坑前端3D建站,跟大家一起慢慢深入three.js做网站3D

这篇文章给大家讲下 如何加载一个3D模型

一、核心代码讲解引入插件 import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader' import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'Three.js一学就会系列:05 加载3D模型(three.js入门指南)

GLTFLoader : 加载GLTF加载器,glTF(gl传输格式)是一种开放格式的规范 (open format specification), 用于更高效地传输、加载3D内容。该类文件以JSON(.gltf)格式或二进制(.glb)格式提供, 外部文件存储贴图(.jpg、.png)和额外的二进制数据(.bin) OrbitControls : 轨道控制器(OrbitControls)Orbit controls(轨道控制器)可以使得相机围绕目标进行轨道运动。 DRACOLoader : 一个加载器的几何压缩与Draco库。Draco是一个开源库,用于压缩和解压缩3D网格和点云。压缩后的几何图形可以显著变小,代价是在客户端设备上花费额外的解码时间。

轨道控制器this.controls = new OrbitControls(camera, renderer.domElement)this.controls.target = new THREE.Vector3(0, 0, 0)

controls.target:设置控制器的焦点,.object的轨道围绕它运行

加载3D文件const loader = new GLTFLoader()const dracoLoader = new DRACOLoader()dracoLoader.setDecoderPath('https://threejs.org/examples/jsm/libs/draco/')dracoLoader.preload()loader.setDRACOLoader(dracoLoader)loader.load('https://threejs.org/examples/models/gltf/LittlestTokyo.glb', (gltf) => { scene.add(gltf.scene) renderer.render(scene, camera)}, (xhr) => { console.log((xhr.loaded / xhr.total) * 100 + '% loaded')}, (error) => { console.error(error)})

setDecoderPath:设置draco文件地址 loader.load(‘https://threejs.org/examples/models/gltf/LittlestTokyo.glb’) 加载3D模型

完整代码<template> <section> <section id="container"></section> </section></template><script> import * as THREE from 'three' import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader' import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader' let camera, scene, renderer export default { data() { return { } }, mounted() { this.init() this.animate() }, methods: { init() { const container = document.getElementById('container') camera = new THREE.PerspectiveCamera(90, container.clientWidth / container.clientHeight, 0.1, 10000) renderer = new THREE.WebGLRenderer({ antialias: true }) camera.position.set(50, 200, 500) scene = new THREE.Scene() renderer.setClearColor(new THREE.Color(0xF7F2F1)) renderer.setSize(container.clientWidth, container.clientHeight) renderer.shadowMap.enabled = true container.appendChild(renderer.domElement) this.controls = new OrbitControls(camera, renderer.domElement) this.controls.target = new THREE.Vector3(0, 0, 0) this.loadLight() this.load3D() }, load3D() { const loader = new GLTFLoader() const dracoLoader = new DRACOLoader() dracoLoader.setDecoderPath('https://threejs.org/examples/jsm/libs/draco/') dracoLoader.preload() loader.setDRACOLoader(dracoLoader) loader.load('https://threejs.org/examples/models/gltf/LittlestTokyo.glb', (gltf) => { scene.add(gltf.scene) renderer.render(scene, camera) }, (xhr) => { console.log((xhr.loaded / xhr.total) * 100 + '% loaded') }, (error) => { console.error(error) }) }, loadLight() { // 环境光 const ambient = new THREE.AmbientLight(0xFFFFFF) scene.add(ambient) const pointLight = new THREE.PointLight( 0xffffff, 0.5 ); pointLight.position.set( 100, 200, 500 ); pointLight.color.setHSL( 255, 255, 255 ); scene.add( pointLight ); }, animate() { requestAnimationFrame(this.animate) renderer.render(scene, camera) } } }</script><style>body,html { padding: 0; margin: 0;}</style><style scoped> #container { width: 100%; height: calc(100vh); }</style>效果

二、3D模型资源

公共领域的glTF文件可以在网上找到,例如 Sketchfab,或者很多工具包含了glTF的导出功能: Blender by the Blender Foundation Substance Painter by Allegorithmic Modo by Foundry Toolbag by Marmoset Houdini by SideFX Cinema 4D by MAXON COLLADA2GLTF by the Khronos Group FBX2GLTF by Facebook OBJ2GLTF by Analytical Graphics Inc

更多请参考:https://threejs.org/docs/index.html#manual/zh/introduction/Loading-3D-models

总结

以上就是今天要讲的内容,本文仅仅简单介绍了three.js的加载3D模型,而three.js提供了非常多的3D显示功能,后续文章,我将带大家慢慢深入了解。

如果觉得有用欢迎点赞关注 有问题私信我!!~~

本文链接地址:https://www.jiuchutong.com/zhishi/300390.html 转载请保留说明!

上一篇:深度学习之快速实现数据集增强的方法

下一篇:DEFORMABLE DETR详解(deformable detr代码)

  • 荣耀chl-an00是什么型号(荣耀an00是什么手机)

    荣耀chl-an00是什么型号(荣耀an00是什么手机)

  • 华为nova9怎么设置门禁卡(华为nova9怎么设置24小时制)

    华为nova9怎么设置门禁卡(华为nova9怎么设置24小时制)

  • 打印机墨水加错怎么补救(打印机墨水加错了怎么清理)

    打印机墨水加错怎么补救(打印机墨水加错了怎么清理)

  • 忘记qq号怎么办(忘记qq号怎么办手机号注销了)

    忘记qq号怎么办(忘记qq号怎么办手机号注销了)

  • 苹果11没有耳机吗(苹果11没有耳机孔怎么唱全民K歌)

    苹果11没有耳机吗(苹果11没有耳机孔怎么唱全民K歌)

  • 怎么清理电脑主机(怎么清理电脑主机里面的灰尘)

    怎么清理电脑主机(怎么清理电脑主机里面的灰尘)

  • 微信人脸识别不了是什么原因(微信人脸识别不匹配怎么办)

    微信人脸识别不了是什么原因(微信人脸识别不匹配怎么办)

  • oppo怎么呼叫语音助手(op怎么呼叫语音)

    oppo怎么呼叫语音助手(op怎么呼叫语音)

  • 苹果输对密码解不开锁(苹果输密码被锁怎么办)

    苹果输对密码解不开锁(苹果输密码被锁怎么办)

  • word设置首字下沉(word设置首字下沉需要使用的菜单)

    word设置首字下沉(word设置首字下沉需要使用的菜单)

  • 抖音怎么刷新新的内容(抖音怎么刷新新作品)

    抖音怎么刷新新的内容(抖音怎么刷新新作品)

  • 手机刷机照片怎么找回来(手机刷机照片怎样保存)

    手机刷机照片怎么找回来(手机刷机照片怎样保存)

  • 论文怎么插参考文献(论文怎么插参考文献尾注)

    论文怎么插参考文献(论文怎么插参考文献尾注)

  • 苹果手机nfc功能在哪里(苹果手机nfc功能怎么使用门禁卡)

    苹果手机nfc功能在哪里(苹果手机nfc功能怎么使用门禁卡)

  • 苹果11nfc功能怎么开启(苹果11nfc功能怎么读卡)

    苹果11nfc功能怎么开启(苹果11nfc功能怎么读卡)

  • 接收不到短信是什么原因(接收不到短信是怎)

    接收不到短信是什么原因(接收不到短信是怎)

  • 信息拦截怎么取消(信息拦截怎么取消苹果)

    信息拦截怎么取消(信息拦截怎么取消苹果)

  • 闲鱼资金保护只能等吗(闲鱼资金保护要多久解除)

    闲鱼资金保护只能等吗(闲鱼资金保护要多久解除)

  • 走路步数哪里看(走路步数哪里看的到)

    走路步数哪里看(走路步数哪里看的到)

  • iphone xs有指纹识别吗(苹果xs有没有指纹锁)

    iphone xs有指纹识别吗(苹果xs有没有指纹锁)

  • 泰国充电需要转换器吗(泰国充电转换用德标吗)

    泰国充电需要转换器吗(泰国充电转换用德标吗)

  • 进程的内核栈是什么?浅谈Linux的进程内核栈(进程核心栈)

    进程的内核栈是什么?浅谈Linux的进程内核栈(进程核心栈)

  • JavaScript控制元素(标签)的显示与隐藏(javascript控制语句)

    JavaScript控制元素(标签)的显示与隐藏(javascript控制语句)

  • 织梦CMS怎么样在位置导航中的“主页”换成英文(织梦怎么安装)

    织梦CMS怎么样在位置导航中的“主页”换成英文(织梦怎么安装)

  • 受托代销商品款和受托代销商品的区别
  • 租赁厂房对方不租怎么办
  • 资产处置损益属于当期损益吗
  • 增值税为什么不用计提
  • 外包和离岸外包一样吗
  • 网约车有电子发票吗
  • 培训产生的住宿费算培训费吗
  • 小企业周转材料包括什么
  • 增值税普通发票怎么开
  • 没残值的固定资产有哪些
  • 应收票据质押会计处理
  • 我国流转税主要包括
  • 暂估入账估低了怎么办
  • 应收而未收的装修款如何做账务处理?
  • 安装工程通常有哪些工种
  • 专项拨款形成的固定资产递延收益
  • 亏损企业股东年底借钱未还
  • 成本票最多开多少
  • 机动车销售统一票据可以抵扣吗
  • 新注册公司季度资产为零
  • 实际缴纳的增值税比计提的多
  • 法人实名认证需要带什么
  • 卖护肤品赚钱吗
  • 预计负债怎么计提递延所得税资产
  • 初始投资成本与可辨认净资产公允价值
  • 一般纳税人销售二手车增值税税率
  • 代扣个人缴纳社保费
  • 不能运行windows10的设备有哪些
  • 罚款在企业所得税前可以扣除吗
  • vue3全局属性
  • 申请一般纳税人流程
  • 堡垒山是哪个国家
  • 事业单位资产管理中存在的问题及整改措施
  • 小满内容
  • windowsserver2016激活密钥
  • 废品损失科目的账户结构
  • 个税系统有什么用
  • 主营业务成本和生产成本的关系
  • 增值税进项加计抵减账务处理
  • 企业贷款利息是多少
  • 织梦如何使用
  • mysql 提示
  • mongodb游记
  • 收到退货怎么做会计分录
  • 异地交税怎么交
  • MySQL/Postgrsql 详细讲解如何用ODBC接口访问MySQL指南
  • 房地产预缴增值税计算公式
  • 发票可否盖财务章
  • 印花税如何计算缴纳
  • 销售商品发生的运输费计入什么科目
  • 收到去年所得税汇算清缴退税账务处理
  • 手工帐如何结转成本费用
  • 已认证专票发现地址为错误
  • 公司活动费用分录
  • mysql 5.7.5 m15 winx64安装配置图文教程
  • win7咋样
  • ubuntu20.04设置
  • centos如何运行程序
  • fedora 版本
  • thinkpadx230i5
  • win8自带的视频播放器打不开
  • win7小键盘数字键不能用怎么办
  • kcleaner是什么文件夹
  • windows听歌软件
  • linux创建目录函数
  • 你需要windows7sp1才能安装ie11
  • windows8.1如何安装
  • Android Broadcast
  • cmd运行指令闪黑框
  • nodejs readdir
  • shell 方法调用
  • 脚本控制三行三列怎么写
  • pythonweb框架有哪些
  • linux shell有什么用
  • Android Toast设置弹窗大小
  • 批处理文件可用记事本
  • uleb128、sleb128和uleb128p1编码格式介绍
  • unity iphone
  • js倒计时算法
  • 小规模纳税人网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设