材质属性.visible
查看Three.js文档的基类Material,可以知道材质属性.visible的作用就是控制绑定该材质的模型对象是否可见,默认值是true,LineBasicMaterial、SpriteMaterial、MeshBasicMaterial等材质都会继承基类Material的可见性.visible属性,也就是说无论点模型Points、线模型Line或网格模型Mesh默认都是可见的。如果想隐藏一个模型可以设置该模型材质的.visible属性值为true。

// 隐藏网格模型mesh,visible的默认值是true
mesh.material.visible =false
1
2
// 使网格模型mesh处于显示状态
mesh.material.visible =true
1
2
隐藏一个层级模型
如果一个模型对象包含了多个网格模型Mesh,嵌套了很多层,形成了一个树结构,只有根部节点是网格模型Mesh,中间节点都是组对象Group或Object3D对象。如果你想通过控制材质的.visible属性批量隐藏该模型对象下的所有网格模型Mesh,首先需要做的就是要递归遍历树结构找到所有的网格模型Mesh,然后把所有网格模型Mesh材质的.visible属性设置为false。

通过对象的.traverse()方法递归遍历一个模型,然后通过对象的类型属性.type判断该对象是不是网格模型对象Mesh,如果是的话执行obj.material.visible =false。

modelObject.traverse(function(obj) {
if (obj.type === "Mesh") {
obj.material.visible =false
}
})
1
2
3
4
5
属性.visible本质
如果你有兴趣了解Three.js底层知识,可以阅读这段话,根据提示深入研究,如果没有兴趣,可以跳过,只要会使用.visible就可以了。

Three.js的WebGL渲染器WebGLRenderer在渲染一个点Points、线Line、网格Mesh等模型对象的时候,会判断它绑定材质的.visible属性值,如果一个模型绑定材质的.visible属性是false,该模型就不会被渲染,具体可以阅读src目录下的WebGLRenderer.js源码。
---------------------

Three.js模型隐藏或显示的更多相关文章

  1. JS实现“隐藏与显示”功能(多种方法)

    1,通过按钮实现隐藏与显示: 这个是通过按钮点击实现的隐藏与显示,具体代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  2. 原生JS实现全屏切换以及导航栏滑动隐藏及显示——重构前

    思路分析: 向后滚动鼠标滚轮,页面向下全屏切换:向前滚动滚轮,页面向上全屏切换.切换过程为动画效果. 第一屏时,导航栏固定在页面顶部,切换到第二屏时,导航条向左滑动隐藏.切换回第一屏时,导航栏向右滑动 ...

  3. js控制TR的显示隐藏

    在很多现实的场景中,有的文本框我们希望在选择“是”的按钮之后才出现,这就需要js控制TR的隐藏和显示,如何控制,本文为大家揭晓 下文分享的一段代码:选择是的按钮就显示身高和体重的文本框的代码.注意:r ...

  4. js设置控件的隐藏与显示的两种方法

    js设置控件的隐藏与显示,设置控件style的display和visibility属性就可以了,下面有个示例,需要的朋友可以参考下用JavaScript隐藏控件的方法有两种,分别是通过设置控件的sty ...

  5. JS实现信息的显示和隐藏

    JS实现信息的显示和隐藏 我们在写注册页面的时候,必填信息是可见的,可选信息是隐藏的,如果用户希望填写,可以单击“详细信息”. 代码如下:<!DOCTYPE html><html&g ...

  6. js基础--浏览器标签页隐藏或显示状态 visibility详解

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 在工作中我们可能会遇到这样的需求,当浏览器切换到别的标签页或着最小化时,我们需要暂停页面上正在播放的视频或者音乐,这个需求 ...

  7. Vue 使用Spread.js没有层级关系(隐藏与显示)

    Vue 使用Spread.js没有层级关系(隐藏与显示) 1.vue会给元素加一个监控属性.去掉 spread.js没有层级关系过半是column中值的问题

  8. Dynamics CRM 365 不用按钮工具,直接用js脚本控制按钮的显示隐藏

    Dynamics CRM 365 不用按钮工具,直接用js脚本控制按钮的显示隐藏: try { // 转备案按钮 let transferSpecialRequestButton = parent.p ...

  9. js 原生: 身份证脱敏、唯一随机字符串uuid、对于高 index 元素的隐藏与显示

    1. 对于高 index 元素的隐藏 与 显示 export const hideIndexEle = (cssStr)=>{ const player = getElementsByCss(c ...

随机推荐

  1. [Selenium] close alert window

    public static boolean isAlertPresent(WebDriver driver) { try { driver.switchTo().alert(); return tru ...

  2. 使用masonry手写约束

    在iOS开发过程中,手写contraints是非常痛苦的一件事情,往往那么一丢丢功能要写大量的代码,非常容易发生错误,并且非常不方便调试.所以只有在不得以的情况下才采用手工方式写contraints, ...

  3. 【旧文章搬运】Idle进程相关的一些东西

    原文发表于百度空间,2009-05-13========================================================================== Idle进 ...

  4. linux软硬连接学习总结

    创建连接实质上就是给系统中已经存在的文件指定另外一个可以访问它的名称,linux系统当中连接的创建有两种形式:硬链接(Hard Link),与符号链接(Symbloic Link)既软链接. ln命令 ...

  5. $.ajax与$.post、$.get的一点区别

    后台代码: [HttpPost] public string DoLogin(string username,string password) { return "success" ...

  6. Educational Codeforces Round 21E selling souvenirs (dp)

    传送门 题意 给出n个体积为wi,价值为ci的物品,现在有一个m大的背包 问如何装使得最后背包内的物品价值最大,输出价值 分析 一般的思路是01背包,但n*v不可做 题解的思路 We can iter ...

  7. kettle系列-我的开源kettle调度、管理平台[kettle-manager]介绍

    kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端调度.管理工具. 新版本 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操 ...

  8. 黑客攻防技术宝典web实战篇:攻击会话管理习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 登录一个应用程序后,服务器建立以下 cookie:Set-cookie: sessid=a ...

  9. 最短路之Dijkstra(迪杰斯特拉)

    一般用法: Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法是很有代 ...

  10. 019 [工具软件]窗体置顶 DeskPins

    DeskPins:Windows下将任何窗体置顶的工具 官方主页:https://efotinis.neocities.org/deskpins/index.html 官方下载的是一个exe安装包,用 ...