首页 / 浏览问题 / 三维GIS / 问题详情
WebGL项目,s3mb瓦片模型能添加实时阴影吗
21EXP 2022年06月28日
如题,目前通过Entity API添加的独立小模型是可以开启实时阴影效果的,想问下s3mb瓦片模型是否也能开启实时阴影呢,这样就不用靠烘焙实现阴影效果了。

1个回答

您好,s3mb的三维切片缓存中的是实体模型是可以在开启日光源后显示阴影的。

scene.sun.show = true,即可

可以参考效果:http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#S3MTiles_jingmo

希望可以帮助到您。

10,758EXP 2022年06月28日

scene.sun.show不需要手动设置为true,默认就是true。

你发的那个demo链接,那个阴影是烘焙出来的,不是实时阴影sad

你指的实时阴影具体是?

就是这种阴影效果,这个就是实时渲染的阴影,不是烘焙的,只不过截图中的是Entity对象的阴影,我想要s3mb切片缓存的模型也有这种实时阴影。

不太理解您具体业务应用上是有什么区别吗?

以及您所说的实时渲染具体用的是哪个接口实现的,是entity自身的专有接口吗。
比如我们现在要做一个工厂的模型展示,工厂模型最终是转成s3mb三维切片缓存加载到场景中,但我们希望工厂的场景,能有真实的阴影效果,又不想用烘焙的方式去实现,想通过实时渲染的方式实现阴影效果。
那我建议您的模型数据不是去切三维切片缓存,而是发布数据服务,在webgl通过数据查询的方式把模型查询出来通过实体的方式加载数据或者从缓存里取出模型实体,因为按您描述的使用的是entity实体自身的方法做的,没法去对缓存本身操作。

你们技术人员只给我们培训了导出三维切片缓存发布的方式,你说的发布数据服务,在webgl通过数据查询的方式把模型查询出来我们不知道怎么玩frown。你的意思是s3mb三维切片缓存这种是没法对s3mb模型进行实时阴影渲染的是吧。

嗯,你发出来的是s3mlayer里缓存,您用的这个方法要去成模型实体才可以你想的entity实体模型操作。

缓存在前端实时渲染出阴影可以参考该demo,http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#shadowQuery

根据需要的日照阴影参数,实时生成新的阴影效果,使用该方法需要注意场景本身需要开启阴影:
    var viewer = new Cesium.Viewer('cesiumContainer', {
        shadows : true
    });

对于您业务上的需要阴影实时跟着相机拖动变化的效果,建议是通过代码相机移动时,点光源跟着相机一起移动,

同时该需求我会上报研发,您可以私信我您的联系方式,若产品层面实现该效果我也会测试无误后,联系您给您提供产品包。

...