LayaAir2.11新特性:Blinnphong增加光透射功能、增加drawMeshInstance指令等,大幅提升渲染效果

LayaAir 2.11.0beta版引入了Blinnphong材质的光透射功能和drawMeshInstance渲染指令,大幅增强3D渲染性能。Blinnphong的enableTransmission属性开启光线透射,配合厚度图、透射率等属性实现细腻效果。drawMeshInstance则用于高效实例化渲染,提高性能,适用于大规模相同Mesh的渲染场景。
摘要由CSDN通过智能技术生成

本次LayaAir 2.11.0beta版是鼠年的最后一个版本,同时也是2021年的第一个版本。所以本次的更新内容也是干货满满,再次大幅提升了3D渲染能力。本文将逐个详细介绍。

提示

1、本文中涉及的代码,均会省略大量代码,仅为介绍功能使用的核心代码,

2、代码的API使用方式为基于引擎源码的使用方式,与开放下载版本的Laya.xxx的写法不同,

3、各不同语言引擎版本API的使用方式、以及完整的示例代码请前往Layabox官网示例栏目查看。

Blinnphong支持光透射功能

从LayaAir2.11 beta版本开始,Blinnphong材质支持了光线透射功能,也就是当光线射入半透明材质,会产生光线透射的效果。例如下图的效果:

(来自官网BlinnPhong_Transmission示例截图)

或者查看视频动态效果:

(视频画质已被压缩,仅用于效果预览)

当我们想使用Blinnphong的光线透射效果时,将Blinnphong的 enableTransmission 属性设置为true即可。

示例代码为:

//打开兔子材质的次表面散射功能
this.rabbitMaterial.enableTransmission = true;


//打开猴子材质的次表面散射功能
this.monkeyMaterial.enableTransmission = true;

(点击代码,左右滑动查看全文)

下面我们继续介绍一下Blinnphong材质光线透射功能相关的其它属性,

厚度图属性thinknessTexture用于加载一张描述物体厚度信息的贴图,这是一张会描述物体各个地方透光比例的材质贴图。例如兔子的耳朵比较薄,透光会强一些,兔子的身体比较厚,透光会弱一些。

厚度图并非普通的贴图,需要找3D美术同学生成

有无厚度图的对比效果如下图所示:

示例代码为:

this.rabbitMaterial.enableTransmission = true;
//为兔子材质添加厚度贴图
this.rabbitMaterial.thinknessTexture = Loader.getRes("xxx/xxx.jpg");

(点击代码,左右滑动查看全文)

由于入射光分为透射部分和反射部分,透射率属性transmissionRate用于描述透射光占总光量的比例,该属性同时也会影响反射光部分的强度。

透射率属性值分别为0、0.5、1的对比效果如下图所示:

示例代码为:

this.rabbitMaterial.enableTransmission = true;
this.rabbitMaterial.thinknessTexture = Loader.getRes("xxx/xxx.jpg");
//设置兔子材质的透射率为0.1
this.rabbitMaterial.transmissionRata = 0.1;

(点击代码,左右滑动查看全文)

backDiffuse属性用于设置透射扩散范围系数,系数的范围是1-10,值越大范围越小,1是最大扩散范围值,10是最小扩散范围值。效果如下图所示:

示例代码为:

this.rabbitMaterial.enableTransmission = true;
this.rabbitMaterial.thinknessTexture = Loader.getRes("xxx/xxx.jpg");
this.rabbitMaterial.transmissionRata = 0.1;
//设置透射扩散范围系数为3.88
this.rabbitMaterial.backDiffuse = 3.88;

(点击代码,左右滑动查看全文)

transMissionColor是透射颜色

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值