山海鲸支持CS/BS双模式。其中在BS模式下,山海鲸也支持云渲染和端渲染的两种渲染模式,下面简单介绍下两种渲染模式的区别和优劣:
云渲染有的时候也称为推流、流送。起源于UE的Pixel Streaming,是UE为了解决其无法直接在Web端运行的问题而采用的方案。云渲染的基本原理是由服务端将3D模型加载并渲染出每一帧画面,将画面编码为视频流,采用WebRTC协议将视频流传输到前端,前端播放这个视频流的同时,监测所有鼠标事件,并将鼠标事件也通过WebRTC协议传输到服务端,服务端收到鼠标事件后,对画面进行控制。
云渲染通常是采用多实例的模式,也就是每一个用户访问云渲染的时候,服务端都会创建一个渲染实例,这样不同用户之间的操作不会互相干扰,但每一个同时访问客户,都会需要占用一定的独立服务器资源。另一种是单实例模式,这种模式较为简单,类似于远程桌面,所有用户看到的是一样的画面,A用户控制,B用户画面也会变。单实例模式的最大优点就是节省服务器资源,但是对于正常的多用户场景下其实都是不太适用的。
云渲染的效果主要由服务器的配置决定的,同时也会受到网速的影响。云渲染在响应的及时性以及画面质量上都会受到很大的限制,一般只在前端访问的设备不能配置较好的GPU时才会使用这种模式。
端渲染就是常规的网页打开模式,前端基于WebGL或者最新的WebGPU渲染出3D画面。事件响应和画面渲染都在浏览器中进行,因此响应及时性和画面质量都较好。和云渲染正好相反,端渲染对访问的客户端机器性能要求高,对服务器性能几乎没有任何要求。由于常见的游戏引擎如UE或者Unity对端渲染支持都较差(UE官方不支持端渲染,Unity只有效果比较差的URP管线支持端渲染),因此在使用游戏引擎时,通常只能使用云渲染。
山海鲸的视觉渲染引擎原生基于WebGL开发,但实现了大量之前在前端渲染中不曾被支持的高级效果,如多散射模式下的大气雾、体积雾、自动曝光、接触阴影等等。因此在端渲染的情况下也可以达到甚至超过一些游戏引擎渲染的画面,因此在通常情况下我们推荐大家直接使用端渲染,这也是山海鲸最大的优势之一。但如果确实由于前端无法配置高级别的硬件的情况下,也可以在发布项目时,勾选云渲染。这样山海鲸会自动切换为多实例的云渲染模式:
更多数字孪生可视化干货内容等你发现
了解更多内容