本文主要是介绍WebGL BabylonJS 如何创建阴影,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关键点:
1、需要显示阴影的mesh 的 receiveShadows 属性设置为true
2、阴影对光源有限制,一般为定向光
3、级联阴影更容易生成真实的阴影
4、开启光源的autoCalcShadowZBounds 属性更容易生成阴影
// 创建定向光this.light = new BABYLON.DirectionalLight('DirectionalLight',new BABYLON.Vector3(0.2, -0.7, 0.4),this._scene,)
// 自动计算阴影投射的最小和最大 Z 值this.light.autoCalcShadowZBounds = true// 创建一个级联阴影生成器,并传入阴影贴图分辨率和光源
this.shadowGenerator = new BABYLON.CascadedShadowGenerator(1920, this.light);// 设置阴影偏移量
this.shadowGenerator.bias = 0.001;// 设置级联阴影参数 lambda
this.shadowGenerator.lambda = 0.9;// 设置阴影投射的最大 Z 值为 3500
this.shadowGenerator.shadowMaxZ = 3500;//添加需要投射阴影的meshthis.shadowGenerator.addShadowCaster(mesh)// 开启接收阴影 将需要显示阴影的mesh 的 receiveShadows 属性设置为trueconst ground = BABYLON.MeshBuilder.CreateGround('ground', { width: 10000, height: 10000 })ground.receiveShadows = true
这篇关于WebGL BabylonJS 如何创建阴影的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!