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

上海 高端 网站建设90后做网站赚了

上海 高端 网站建设,90后做网站赚了,郑州黑马程序员培训机构官网,郑州设计师网一.加载普通的gltf模型 glTF(gl传输格式)是一种开放格式的规范 (open format specification), 用于更高效地传输、加载3D内容。该类文件以JSON(.gltf)格式或二进制(.glb)…

一.加载普通的gltf模型

glTF(gl传输格式)是一种开放格式的规范 (open format specification), 用于更高效地传输、加载3D内容。该类文件以JSON(.gltf)格式或二进制(.glb)格式提供, 外部文件存储贴图(.jpg、.png)和额外的二进制数据(.bin)。一个glTF组件可传输一个或多个场景, 包括网格、材质、贴图、蒙皮、骨架、变形目标、动画、灯光以及摄像机。

1.导入

import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';

2.创建实例

//实例化加载器
const loader = new GLTFLoader()

3.导入模型文件

loader.load('./models/car.glb', function (gltf) {scene.add(gltf.scene)console.log(gltf)
}, undefined, function (error) {console.error(error)
})

这样就可以导入我们的模型文件

如果画面是一片漆黑的话,调整一下场景的颜色,因为没有光源,模型是纯黑色的,在黑色背景下看不到。

scene.background = new THREE.Color(0x999999)

想让我们的模型有颜色可以加入光源,也可以加入背景贴图,用环境光照亮模型。

// 导入hdr加载器
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader'// 全景贴图
const rgbeLoader = new RGBELoader()
rgbeLoader.load('./assets/night.hdr', (texture) => {//设置球型映射texture.mapping = THREE.EquirectangularReflectionMapping // scene.background = texture // 设置背景scene.environment = texture  // 设置环境//反射贴图// material.envMap = texture
})

二、加载压缩的模型

对于一些占比比较大模型,往往会进行压缩。对于这种压缩的模型,我们直接导入会报错THREE.GLTFLoader: No DRACOLoader instance provided.

这时我们需要使用DRACOLoader(一个用于加载经过Draco压缩的图形库)来处理。

1.导入DRACOLoader

// 解压模型
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';

2.创建实例

// 解压模型
const dracoLoader = new DRACOLoader()

3.设置解压路径

//设置解压库的路径
dracoLoader.setDecoderPath('./draco/')

在这里我们需要在node_modules\three\examples\jsm\libs文件下找到draco文件,将改文件复制到public文件下。

4.加载模型

//实例化加载器
const loader = new GLTFLoader()
// 设置解压库
loader.setDRACOLoader(dracoLoader)loader.load('./models/car.glb', function (gltf) {scene.add(gltf.scene)console.log(gltf)
}, undefined, function (error) {console.error(error)
})

5.全部代码

<template>
</template><script setup>
// 导入three
import * as THREE from 'three'  // 导入threejs
//导入轨道控制器
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
// 导入模型
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'
// 解压模型
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
// 导入hdr加载器
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader'// 创建场景
const scene = new THREE.Scene()
scene.background = new THREE.Color(0x999999)// 创建相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
camera.position.z = 10// 创建渲染器
const renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)//辅助坐标系
const axesHelper = new THREE.AxesHelper(5)
scene.add(axesHelper)// 创建控制器
const controls = new OrbitControls(camera, renderer.domElement)//自适应窗口
window.addEventListener('resize', () => {camera.aspect = window.innerWidth / window.innerHeightcamera.updateProjectionMatrix()renderer.setSize(window.innerWidth, window.innerHeight)
})// 全景贴图
const rgbeLoader = new RGBELoader()
rgbeLoader.load('./assets/night.hdr', (texture) => {//设置球型映射texture.mapping = THREE.EquirectangularReflectionMapping // scene.background = texture // 设置背景scene.environment = texture  // 设置环境//反射贴图// material.envMap = texture
})// 解压模型
const dracoLoader = new DRACOLoader()
//设置解压库的路径
dracoLoader.setDecoderPath('./draco/')//实例化加载器
const loader = new GLTFLoader()
// 设置解压库
loader.setDRACOLoader(dracoLoader)
// 加载模型
// loader.load('./models/mingzhu.glb', function (gltf) {
//     scene.add(gltf.scene)//     console.log(gltf)
// }, undefined, function (error) {
//     console.error(error)
// })
loader.load('./models/car.glb', function (gltf) {scene.add(gltf.scene)console.log(gltf)
}, undefined, function (error) {console.error(error)
})// 创建场景fog
scene.fog = new THREE.Fog(0x000000, 0.5, 50)
//创建场景指数雾
// scene.fog = new THREE.FogExp2(0x000000, 0.1)// 渲染循环
function animate() {requestAnimationFrame(animate)renderer.render(scene, camera)
}
animate()</script><style lang="scss" scoped>
</style>

http://www.yayakq.cn/news/217272/

相关文章:

  • 通辽做网站的公司网站设计基础语言不包括这些内容
  • 做体育类网站素材做微商都去哪些网站留言
  • 南京网站建设方案软件平台包括什么
  • 网站调优技能空气炸锅做糕点的网站
  • 天津城市基础设施建设投资集团有限公司网站商城网站的开发怎么做
  • 无锡优化网站公司wordpress 缩略图设置
  • 微网站建站平台做优秀企业网站
  • 上饶便宜的做网站公司用网站做数据库
  • 网站建设 印花税公司注册资本最低多少
  • 知识产权教育平台网站开发总结网站设计风格及特点
  • 注册app短信验证码平台win10一键优化
  • wordpress搭建子網站巴州网站建设库尔勒网站建设钟爱网络
  • 湛江网站建设外包360网站托管
  • 外包加工网站有哪些网站访客记录
  • 做flash网站一键生成app的软件
  • 一个网站的建设需要什么鄂州网站建设
  • 网站建设哪些公司秦皇岛抚宁区建设局网站
  • 江门网站建设易搜互联wordpress自动保存图片
  • 黄骅市属于嘉兴网站推广优化
  • 元谋县住房和城乡建设局网站网站建设成本包含哪些方面
  • 怎么做 代刷网站装饰协会网站源码
  • 做网站最烂公司手机类网站设计
  • 深圳高端做网站公司邢台做移动网站费用
  • 商务网站规划与设计实训报告修改WordPress图片上传
  • 福州网站建设工作室项目招商
  • 广东企业微信网站开发织梦下载网站模板
  • 湟源县网站建设查看网站点击量
  • 天津先进网站建设指导wordpress上传到哪
  • 泰州城乡建设网站房屋平面图设计软件免费
  • 质量好网站建设商家动态Js文件 做网站标题