web3d项目开发中,threejs场景渲染过后,移出场景显存占用仍然存在。为了减少不必要的资源占用,需要释放资源。
在移出模型后,需要释放模型占用的资源
// 从场景中移出數据不再渲染 不在占用gltf.scene需要的GPU资源占用
model.remove(gltf.sc...
yekong
2年前 (2023-01-23)
喜欢
web3d项目开发中,再渲染gltf文件时,为了减少文件的大小,一般选择glb,然后再使用zip进行压缩。以节省带宽.
打开Blender选择文件找到导出选择gltf点击.
选择.glb
然后点击导出就可以了。
导出后再压缩原本10M大小的文件变成了3.3M.
threej...
yekong
2年前 (2023-01-23)
喜欢
问题
gltf模型加载后和建模师做出来的效果差别很大
解决办法
根据threejs里提供的关于GLTFLoader文档来看,需要对纹理进行配置
纹理中包含的颜色信息(.map, .emissiveMap, 和 .specularMap)在glTF中总是使用sRGB颜色空间,而顶点...
yekong
2年前 (2023-01-23)
喜欢
版本
0.123.0,使用0.143版本时会报computeFlatVertexNormals方法不存在
效果
演示地址
threejs实现4棱锥效果
延伸
threejs 在3d地图上标注四棱锥效果
项目代码
var scene = new THREE.Scene()
var...
yekong
2年前 (2023-01-22)
喜欢
通过Box3的学习使用,我们很快就可以找到地图的中心点,通过controls.target.set来将中心点设置为地图的中心点,达到地图在中心的效果。
<!--渲染河北地图-->
<template>
<div class="home...
yekong
2年前 (2023-01-22)
喜欢
问题
渲染出的中国地图没有在坐标中心。
解决方案
使用包围盒获取地图的中心,调整相机的lookAt坐标
创建包围盒
// 地图mapGroup的包围盒计算
var box3 = new THREE.Box3();//创建一个包围盒
// .expandByObject()方法:...
yekong
2年前 (2023-01-22)
喜欢
threejs 在渲染模型的时候需要调整相机的位置以更好的显示模型,这时候可能会需要模型的中心点,以及模型的尺寸, 使用Box3可以获取到网格模型的尺寸以及中心点
// 地图mapGroup的包围盒计算
var box3 = new THREE.Box3();//创建一个包围盒
...
yekong
2年前 (2023-01-22)
喜欢
threejs同时使用相机的lookAt与OrbitControls时,会导致lookAt失效。使用controls.target来代替lookAt进行设置。
// 设置相机控件轨道控制器OrbitControls
const controls = new OrbitContro...
yekong
2年前 (2023-01-22)
喜欢
var that = this
/**
* 创建场景对象Scene
*/
var scene = new THREE.Scene();
//three.js文件加载类FileLoader:封装了XMLHttpRequest
var loader = new THREE.Fi...
yekong
2年前 (2023-01-22)
喜欢
使用threejs加载geoJson数据绘制渲染地图
<template>
<div class="homebody">
<div class="canvasGLTFBody">
...
yekong
2年前 (2023-01-22)
喜欢