babylonjs3.1新增遮挡剔除属性分类目录友情链接

babylonjs笔记

本文通过翻译转载至babylonjs官方文档,原文:https://doc.babylonjs.com/features/occlusionquery

babylonjs 从v3.1版本开始引入了一个全新的概念:遮挡剔除(Occlusion Culling),官方称为:Occlusion Queries(遮挡查询)
这个属性可以以mesh边界框为单元索引场景中被遮挡的物体,并从场景中剔除,我刚刚试了一下,有用,但最好不要在大物件上面使用,容易出现闪动或者遮挡错误比如墙壁或者相机处于某个mesh的(像瓶子)包围中,它可能在小物件上面很有用,比如茶几上面的杯子。

一、如何工作
在绘制对象之前,Babylon.js引擎在目标Mesh上绘制一个透明的边界框,并创建一个查询来检查WebGl索引,判断mesh的边框是否可见。如果可见,则不绘制该mesh对象,Occlusion Queries是异步的,并且通常该对象的查询结果在当前帧中不可用,因此基于查询结果绘制该对象之前的帧,用户不会注意到的差异,除非你的FPS太低。
演示

二、快速开始
在Mesh上使用Occlusion Queries

var sphere = BABYLON.Mesh.CreateSphere('sphere1', 16, 2, scene);
sphere.occlusionType = BABYLON.AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC;

更多关于occlusionType和支持的算法检查AbstractMesh类文档

如果你的对象默认是在一个不透明的对象后面,你可以将属性设置isOccludedtrue,以便Babylon.js引擎不会决定是否渲染,直到从WebGl引擎检索到查询结果。

sphere.isOccluded = true;

三、高级用法

如前所述,Occlusion Queries结果是异步的,可能需要一些时间才能得到结果,因此对象会花费很多帧来等待查询结果。在这种情况下,您可以使用属性occlusionRetryCount来设置查询中断之前的等待帧数。一旦中断发生,你将需要决定是否绘制对象或保持其状态,属性occlusionType是就是这个作用,
你有2个选项
1)OCCLUSION_TYPE_OPTIMISTIC:这个选项将呈现如果中断发生的网格。
2)OCCLUSION_TYPE_STRICT:这个选项将恢复对象的最后一个状态,不管是可见的还是可见的继续隐藏。

作为使用限制和乐观的场景,如果在场景中有2个昂贵的对象,其中一个是必须呈现对象,因此您可以设置occlusionRetryCount并设置occlusionType为乐观状态,以便在查询结果不可用的情况下呈现对象。如果您的对象可以等待查询可用,则不要occlusionRetryCount在使用occlusionTypeStrict时设置或设置属性,以便在上一个场景中渲染对象时,在当前场景中再次渲染它,否则将其隐藏。

sphere.occlusionRetryCount = 10;
sphere.occlusionType = BABYLON.AbstractMesh.OCCLUSION_TYPE_STRICT;

在Babylon.js中,您还可以使用occlusionQueryAlgorithmType更多属性来设置WebGl遮挡查询算法类型,以检查AbstractMesh类文档

演示: http://www.babylonjs-playground.com/#QDAZ80#3

原文地址:https://www.xidayun.com/index.php/2018/01/08/babylonjs3-1/

WEBGL学习网(WebGLStudy.COM)专注提供WebGL 、ThreeJS、BabylonJS等WEB3D开发案例源码下载。
声明信息:
1. 本站部分资源来源于用户上传和网络,如有侵权请邮件联系站长:1218436398@qq.com!我们将尽快处理。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源打赏售价用于赞助本站提供的服务支出(包括不限服务器、网络带宽等费用支出)!
7.欢迎加QQ群学习交流:549297468 ,或者搜索微信公众号:WebGL学习网
WEBGL学习网 » babylonjs3.1新增遮挡剔除属性分类目录友情链接

发表评论

提供优质的WebGL、ThreeJS源码

立即查看 了解详情