LayaAir2131新特性摄像机增
下面我们来详细介绍:
增加距离裁剪与裁剪优化
当3D场景较为庞大复杂时,模型面数对性能的压力就显得格外重要,甚至影响到整体效果表现。本次的2.13.1版本,我们不仅对裁剪相关功能进行优化,还提供了开发者可自己控制的距离裁剪。可以减少场景中的模型面数,提升性能,增强整体效果。首先是在Config3D里增加了距离裁剪开关参数distanceVolumCull,该参数默认是关闭的,开发者设置为开启(true),对远处物体进行裁剪。使用示例代码如下://Config3D要在init之前设置let_cfg=newConfig3D();//开启距离裁剪_cfg.distanceVolumCull=true;//初始化引擎的时候,传入修改的Config3D设置Laya3D.init(,,_cfg);距离裁剪的默认值是0.,开发者也可以在开启距离裁剪后,自定义裁剪距离。使用示例代码如下:
letscene=Laya.stage.addChild(newLaya.Scene3D());//省略若干代码Laya.Mesh.load("xxx.lm",Laya.Handler.create(this,(lm:Laya.Mesh)={let_mesh=scene.addChild(newLaya.Sprite3D()).addChild(newLaya.MeshSprite3D(lm))asLaya.MeshSprite3D;//为模型设置距离裁剪的距离参数,默认值为0._mesh.meshRenderer.ratioIgnor=0.;}));按以上方式进行设置后,只有在摄像机的裁剪渲染范围内才会显示出来,例如,某些不重要的模型在远处可能就会被裁剪不可见,离近了才显示出来。这样会优化性能。除距离裁剪外,还优化了视锥包围盒裁剪,增加包围盒裁剪的概率优化,提升了裁剪效率。另外,本次版本也对阴影裁剪进行了优化,在阴影裁剪时,会优先剔除不符合绘入阴影图片的物体来进行优化。以上种种的裁剪优化,可以使得场景中的性能得以提升。是对大型3D项目非常实用的引擎功能。
Camera增加opaquePass
本次版本里,还在Camera里增加了非透明物体贴图opaquePass,开启opaquePass后,会生成非透明物体贴图。在Shader中可以引入u_cameraOpaqueTexture来得到相机渲染管线的非透明图片。使用示例代码如下:letscene=Laya.stage.addChild(Laya.Loader.getRes("xx.ls"));//获取相机letcamera=scene.getChildByName("MainCamera");//非透明物体贴图开启camera.opaquePass=true;使用非透明物体贴图功能,可以实现玻璃折射,水面折射,热浪等效果。详情见示例GlassRefractionDemo,链接:
转载请注明:http://www.abuoumao.com/hykh/580.html