小鸥带着Orillusion引擎新版本来啦!
展示新功能之前先看看这段时间WebGPU有哪些重大变化:
· 对于StorageGPUBuffer的使用更加严格。在每个Pipeline中限制数量为8个,且在ComputeShader中使用时,从未写入的必须用**,有写入过的需要使用<write,read>****。**
· 在使用textureSampleCompare采样深度对比时,不能嵌套使用不确定的for循环语句,同样不能在采样对比之前存在判断语句、discard、switch等会造成执行分支的语法。
应对这些变化,Orillusion Engine又做了什么调整:
· 优化合并不适用的GPUBuffer;
· 去除textureSampleCompare改为使用textureSample;
· Mac下wgsl做了 for 循环适配。
针对这次WebGPU的变化,我们第一时间进行了全引擎的适配调整和升级。这种迭代和更新速度,已经可以说明一切了:WebGPU,我们是认真的!
V0.6.9功能新增主要包括两部分:
Wasm Matrix
Wasm Matrix功能通过Web assembly编译 c++版本的矩阵计算,弥补JavaScript 大量矩阵计算性能差的问题 ,带来1.8倍以上的矩阵计算性能。纯计算测试对比数据:
计算 30万个矩阵更新计算
级联阴影CSM(Cascade Shadow Map)
常用于支持大场景中更好的阴影渲染那效果,将视锥内阴影按四个等级进行划分,在着色处理阴影的阶段根据当前所处阴影等级选择合适的阴影贴图,能够获得更加精确、覆盖全视锥体范围的阴影效果。使用了CSM阴影后,能够解决阴影Bound范围过大,阴影的像素密度不够导致马赛克化过于严重;Bound范围小、阴影区域过小,远处的物体丢失阴影的问题。CSM的Demo小鸥已在下方奉上:
此外,在新版本中修复GUI平移问题、粒子深度问题、worldpanel深度问题等,优化了组件生命周期、八叉树demo、canvas style,以及后处理特效中的Bloom(辉光)与GTAO等功能。具体更新日志如下:
· Webg****pu: fix latest WGSL error
· Canvas**:** fix external canvas style
· GUI: UITransform will be updated correctly
· Octree: Improve Octree's sample
· Component: fix component life cycle
· Particle: fix particle material depth bug
· WorldPanel: fix worldPanel depth compareFun
· Bloom: fix bloom uniform data offset
· GTAO: Reduce threshold of dot gtao
Orillusion致力于打造全世界第一款完全开源基于WebGPU标准的一种轻量级渲染引擎,目标是在浏览器中实现桌面级的渲染效果,支持超大复杂场景的3D呈现。易上手,易分享,易迭代,易协作、成本低,跨平台是我们的核心优势,我们将为3D场景爆发时代提供引擎基础工具。
未来我们将会持续把最干货最前沿的WebGPU技术分享给每一位社区成员,也欢迎大家为Orillusion开源社区做出自己的贡献。我们一直坚信,开源社区的技术留痕是每一位技术人员最崇高的追求!因此,我们尊重,我们认可,我们更期待,加入Orillusion,让我们共同进步!
——Link uncharted, 链接未来世界