1,介绍

该示例使用的是 r95版本Three.js库。

主要实现功能:多细节层次 —— 在显示网格时,根据摄像机距离物体的距离,来使用更多或者更少的几何体来对其进行显示。

效果图如下:

2,动画主要说明

多细节层次(LOD,Levels of Detail)

多细节层次 —— 在显示网格时,根据摄像机距离物体的距离,来使用更多或者更少的几何体来对其进行显示。

每一个级别都和一个几何体相关联,且在渲染时,可以根据给定的距离,来在这些级别对应的几何体之间进行切换。 通常情况下,你会创建多个几何体,比如说三个,一个距离很远(低细节),一个距离适中(中等细节),还有一个距离非常近(高质量)。

LOD – three.js中文文档 (yanhuangxueyuan.com)

如下代码添加物体到场景中时,使用LOD进行添加并设置可见距离


var lod = new THREE.LOD();// 创建一个基础材质的立方体
function createBoxGeometryBasicMaterialImg() {var texture = THREE.ImageUtils.loadTexture("assets/textures/brick-wall.jpg");var mat = new THREE.MeshPhongMaterial();mat.map = texture;// 创建一个立方体并设置大小var cubeGeometry = new THREE.BoxGeometry(8, 8, 8);var cube = new THREE.Mesh(cubeGeometry, mat);// 设置立方体位置cube.position.x = -10;cube.position.y = 3;cube.position.z = 0;return cube;
}// 创建一个基础材质的立方体
function createBoxGeometryBasicMaterial() {// 创建一个立方体并设置大小var cubeGeometry = new THREE.BoxGeometry(14, 14, 4);// MeshBasicMaterial(基础材质不会对光源有反应只会使用指定的颜色渲染)var cubeMaterial = new THREE.MeshBasicMaterial({color: 0xff0000,});var cube = new THREE.Mesh(cubeGeometry, cubeMaterial);// 设置立方体位置cube.position.x = -5;cube.position.y = 10;cube.position.z = -30;return cube;
}// 创建一个球形几何体
function createSphereGeometryLambertMaterial() {var textureLoader = new THREE.TextureLoader();// 创建一个球体var sphereGeometry = new THREE.SphereGeometry(4, 20, 20);var cubeMaterial = new THREE.MeshStandardMaterial({map: textureLoader.load("assets/textures/brick-wall.jpg"),});// cubeMaterial.map.wrapS = THREE.RepeatWrapping;// cubeMaterial.map.wrapT = THREE.RepeatWrapping;var sphere = new THREE.Mesh(sphereGeometry, cubeMaterial);// 位置范围sphere.position.x = 20;sphere.position.y = 4;sphere.position.z = 2;return sphere;
}// 将立方体添加到场景中
var cube = createBoxGeometryBasicMaterial();
lod.addLevel(cube, 200);// 将立方体添加到场景中
var cube_img = createBoxGeometryBasicMaterialImg();
lod.addLevel(cube_img, 100);// 将球体添加到场景中
var sphere = createSphereGeometryLambertMaterial();
lod.addLevel(sphere, 300);scene.add(lod);function renderScene() {orbit.update();lod.update(camera)// 使用requestAnimationFrame函数进行渲染renderer.render(scene, camera);requestAnimationFrame(renderScene);
}

需要学习案例、素材、模型,请进入博客首页查看其他文章或者留言

在线预览:左本的博客 (zuoben.top)

Threejs使用LOD根据摄像机距离物体的距离显示不同的物体相关推荐

  1. threejs 物体根据相机位置显示_Threejs学习笔记(一) 基础篇

    基本概念 此学习笔记主要记录使用threejs的制作http://sqace.163.com网站中用到的API和相关知识点. 一个完整的3D环境包含以下元素: 1.场景(Scene):是物体.光源等元 ...

  2. 【Unity3D】游戏物体操作 ① ( 场景简介 | 添加游戏物体 | 操作游戏物体 | 选中游戏物体 | 场景显示效果缩放 | 重命名游戏物体 | 复制游戏物体 | 删除游戏物体 | 移动物体 )

    文章目录 一.Scene 场景简介 二.添加游戏物体 三.操作游戏物体 1.选中游戏物体 2.场景显示效果缩放 3.重命名游戏物体 4.复制游戏物体 5.删除游戏物体 6.Inspector 检查器窗 ...

  3. 数据科学中常见的9种距离度量方法,包括欧氏距离、切比雪夫距离、半正矢距离等

    1.欧氏距离(Euclidean Distance) 欧式距离可解释为连接两个点的线段的长度.欧式距离公式非常简单,使用勾股定理从这些点的笛卡尔坐标计算距离. 代码实现: import numpy a ...

  4. 学习笔记5——距离度量(欧氏距离、马氏距离、闵氏距离、曼哈顿距离等)

     参考:深度学习中常用的几种距离度量算法 - 简书 (jianshu.com) 常见的9种距离度量方法-电子发烧友网 (elecfans.com) 1.欧氏距离 欧式距离并不是尺度不变的,因此所计算的 ...

  5. 【Unity3D】物体、材质的设置、物体位移与旋转

    Unity3D和Flash一样,甚至可以说是和C#一样,拖完组件,再写一系列的脚本,完成编程,甚至可以说,就是带编程脚本的3DSMAX.那么如何完成最基本的物体.材质的设置.物体位移与旋转呢?下面用一 ...

  6. 【Unity3D自学记录】NGUI之显示2D游戏物体的名字

    http://www.unitymanual.com/thread-14635-1-1.html 用NGUI 显示游戏物体的名字,当然也可以显示物体的血条 状态信息 最终效果 第一步 首先找到场景中的 ...

  7. 曼哈顿距离和切比雪夫距离链接

    存一下链接慢慢看 曼哈顿距离和切比雪夫距离 这个更清晰一些: 关于曼哈顿距离和切比雪夫距离 NN中常用的距离计算公式:欧式距离.曼哈顿距离.马氏距离.余弦.汉明距离

  8. 余弦距离(Cosine距离)与编辑距离分别是什么?各有什么优势和使用场景?

    余弦距离(Cosine距离)与编辑距离分别是什么?各有什么优势和使用场景? import numpy as np from sklearn.metrics import pairwise_distan ...

  9. 2个点马氏距离计算实例_数据分析基础:距离度量方式(欧式距离、马氏距离、曼哈顿距离)...

    数据分析中,为了评定数据之间的相似度,有很多不同的距离的计算方法,如欧氏距离,马氏距离等等. 欧氏距离 Euclidean distance:欧几里得距离,m维空间中两个点之间的真实距离 离差平方和, ...

最新文章

  1. 参加Java培训需要注意哪些
  2. 深入剖析 RocketMQ 源码 - 消息存储模块
  3. gitlab8.2-8.16-8.17-9.0升级
  4. java类接口的区别_【Java基础】java接口和类的区别-瑶瑶吖的回答
  5. spring注解注入属性
  6. Python练习2-基本聊天程序-虚拟茶会话
  7. JSPServlet学习笔记----第4章
  8. SQL with(nolock)详解
  9. 为什么安装了Microsoft .NET Framework 4之后我的电脑网卡启动会变得很慢很慢。。...
  10. L3-020 至多删三个字符 [DP]
  11. 任正非:做芯片砸钱不行 得砸数学家、物理学家、化学家
  12. 一个项目工程的重构小结
  13. 95-190-035-源码-window-Time Window 实现
  14. [CLR via C#]18. Attribute
  15. 黑马程序员 Python学习笔记之PyCharm 的初始设置
  16. 2022新UI聚合支付系统四方源码下载+升级修复漏洞完美版
  17. 计算机专业为职业环境分析,2021年计算机职业环境分析报告|计算机职业环境分析-得范文网...
  18. 10个免费网页统计与分析工具
  19. 什么是生产流程管理系统?
  20. 环境实验耐高温、耐低温、温度变化、恒定湿热、湿热循环

热门文章

  1. 老年高血压案(知老)
  2. 基于Python(Django)+MySQL实现(Web)大学生信用评价系统分析与设计【100010400】
  3. java程序设计答案电子工业出版社_java 语言程序设计(机械工业出版社)课后习题答案 - 下载 - 搜珍网...
  4. win98计算机系统硬件配置,Windows98操作系统优化实战(1) -电脑资料
  5. Mybatis之关联关系映射
  6. 新浪微博自动转发评论 源码 按键精灵实现 详细注释 几十行代码实现 涉及图像识别模拟键盘鼠标
  7. Sentinel-限流 冷启动
  8. R12供应商银行账户SQL
  9. excel两个字符串相减_Excel技巧—超实用的字符串拆分小技巧
  10. 帝国CMS采集-帝国自动采集-帝国CMS免登录发布插件