Skip to content

EngineSetting

通过 EngineSetting 可以设置引擎的一些常见配置,EngineSetting 主要由几个不同配置组成,包括拾取模式,渲染管线,阴影设置,后处理设置,天空盒设置等等。

基础使用

在引擎初始化前,需要先设置引擎的配置,可以通过 Engine3Dsetting 的属性来设置。

例如设置场景中可支持的最大灯光数量:

ts
// 最大灯光数量
Engine3D.setting.light.maxLight = 1024;
// 启动对数深度
Engine3D.setting.render.useLogDepth = true;
// 先配置,后初始化
await Engine3D.init();

拾取模式

引擎支持两种拾取模式,一种是 像素级拾取 (pixel),一种是 包围盒拾取 (bound)

引擎默认配置是 bound 模式, 包围盒拾取通过计算模型的AABB包围盒来拾取,精度不如 pixel 模式,但是计算更快,性能更好。包围盒拾取的模式可以通过引擎配置中的 pick 属性来设置。

ts
Engine3D.setting.pick.enable = true;
Engine3D.setting.pick.mode = 'bound';
await Engine3D.init();

像素级拾取模式同样可以通过 pick 属性来设置。

ts
Engine3D.setting.pick.enable = true;
Engine3D.setting.pick.mode = 'pixel';
await Engine3D.init();

详细用法请参考 拾取事件

后处理设置

引擎支持多种后处理,包括各种抗锯齿,bloom,环境光遮蔽等等,可以通过 render 配置中的 postProcessing 属性来设置。

例如设置 bloom 后处理效果:

ts
// 开启 bloom 
Engine3D.setting.render.postProcessing.bloom.enable = true;
// 设置强度
Engine3D.setting.render.postProcessing.bloom.intensity = 0.5;

更多后处理相关设置,详见 后处理

阴影设置

设置阴影的方法和属性,可以通过引擎配置中的 shadow 属性来设置。

ts
Engine3D.setting.shadow.enable = true; // 开启阴影
Engine3D.setting.shadow.type = 'SOFT'; // 软阴影类型
Engine3D.setting.shadow.shadowSize = 2048; // 阴影贴图大小
Engine3D.setting.shadow.shadowBound = 20; // 阴影区域的世界尺寸
Engine3D.setting.shadow.shadowBias = 0.01; // 阴影偏移量

详见 阴影

全局光照设置

通过配置中的 gi 属性来设置全局光照。

ts
Engine3D.setting.gi.enable = true;
Engine3D.setting.gi.probeYCount = 6;
Engine3D.setting.gi.probeXCount = 6;
Engine3D.setting.gi.probeZCount = 6;
Engine3D.setting.gi.offsetX = 0;
Engine3D.setting.gi.offsetY = 10;
Engine3D.setting.gi.offsetZ = 0;
...

详见 全局光照