Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!

开源生态的建设根植于社区,开发者在社区共享、共创、共赢,将会激发出无限的创造力,这就是开源最大的魅力!

选择开源,源于我们坚信,“独行快,众行远”!

Orillusion 引擎

WebGPU经过六年的时间,终于在2023年4月6日,由Chrome团队发布。5月2号,在Chrome113版本上,WebGPU被默认启动。自此,Web上有望出现3A级渲染的3D应用了!

Orillusion团队三年前开始关注WebGPU发展,经过两年多研发,多次框架重构,性能调优后,Orillusoin引擎在今天以开源的形式正式跟大家见面!

我们致力于在浏览器中实现桌面级的渲染效果,支持超大复杂场景的3D呈现,为3D场景爆发时代提供底层引擎基础工具。

Github地址:

https://github.com/Orillusion/orillusion

引擎优势

WebGPU是基于Web浏览器的全新现代图形API,使网页能够直接调用GPU执行计算任务,并绘制复杂图像。

Orillusion是一套基于WebGPU图形API的Web3D渲染引擎,能够媲美PC端图形API的渲染能力。Orillusion引擎中使用了非常多的GPU开放能力,比如灵活操作的GPU缓存(GPU Buffer),强大的着色器(Webgpu Shader/WGSL),以及备受瞩目的Compute Shader计算内核,充分发挥GPU在非光栅化阶段的并行处理能力。

ECS组件系统

Orillusion使用ECS(Entity-Components-System/实体-组件-系统)组件式架构做为引擎的整体设计思路。消除了继承模式中的继承链复杂、功能交织的问题,通过解耦,封装和模块化设计,开发者可以更灵活的进行功能组合及扩展。实体(entity)一旦挂接了组件(component),不需要复杂的继承关系就拥有了组件的全部能力,再配合上系统内设定的生命周期,使得开发者可以实现更灵活调用。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第1张图片

 组件系统

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第2张图片

内置组件

基础性能

a.连续内存GPU数据提交机制

传统3D引擎在渲染的链路中,CPU与GPU相互等待是性能消耗的主要原因之一。其中一部分等待时长是在每一帧画面渲染前,CPU自身的数据准备和CPU向GPU传输数据的等待过程中产生的,另外一部分等待时长是GPU状态切换频率过多,导致CPU产生了更多的空等待。Orillusion引擎通过减少CPU向GPU写入数据的频率以及降低GPU渲染状态的切换频率,最终来实现性能提升。

性能的提升离不开GPU缓存(GPUBuffer)的利用。在大量数据场景中,可以利用StorageGPUBuffer把数据写入到一个ByteStream中,再统一写入到GPUBuffer进行一次性提交;在少量数据频繁交互的场景中,更多的会把数据写入到一个小内存块(UniformGPUBuffer)中,而后写入到GPUBuffer进行一次性提交。需要指出的是StorageGPUBuffer中的数据是可读、可写、可复制的,但UniformGPUBuffer中的内容仅支持写入。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第3张图片

GPUBuffer

b.全局连续内存矩阵机制

Orillusion引擎还提供了用于提高性能的全局连续内存矩阵(StorageGPUBuffer+BindGroup),它将整合渲染中会使用到的所有矩阵,在渲染前进行统一提交。最终可以实现在不影响渲染结果的情况下,减少数据提交频率、CPU和GPU数据写入时间以及GPU状态切换频率,从而很大程度上改善渲染性能。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第4张图片

局连续矩阵内性能优化

渲染

a.集群光照剔除

场景渲染离不开丰富的光照,所以引擎采用集群光照(Cluster Lighting)来解决灯光数量限制的问题,也可避免延时渲染带来的诸多弊端。

光照数量中最常见的一个弊端是由传统前向渲染(Forward Rendering)中寄存器和性能的限制引起的,导致每个像素能计算的光源数量非常的小,且存在大量GPU性能浪费的情况。引擎通过Cluster Lighting预先算出光源在当前画面区块中像素的使用情况,精确统计出每一个区块像素受到的光源影响,合理裁剪区块像素的计算资源,从而实现性能的提升。而且,结合HDR Lighting和Lighting IES能力,可以渲染出更多丰富饱满的画面效果。

同屏幕128+动态光源

b.PBR渲染

Orillusion引擎中提供了基于物理的材质渲染(PBR-Physical Based Rendering),从而可以支持金属、皮革、橡胶等有各自不同物理属性的材质渲染,让物体拥有丰富的细节,更强的质感表现。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第5张图片

左侧: 金属渲染     右侧: 皮革渲染

c.后处理

后处理(Post-Process Effect)的种类非常丰富,常见的辉光、模糊、景深等都属于该范畴,为了方便使用,Orillusion目前提供了Bloom、GTAO、SSR等后处理特效。

d.Bloom

辉光(Bloom)表现为高光物体带有的泛光效果,合理运用可以使平淡的画面具备影视作品的视觉效果。在引擎的物理光照中,物体表面的反射、折射、自发光等亮度超过了自定义的阈值后,就会形成光溢出的效果。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第6张图片

左侧:高动态光照下的光溢出   右侧:窗户上的光溢出

e.GTAO

环境光遮蔽(AO/Ambient Occlusion)是让整个画面展示接近现实阴影效果的重要手段,Orillusion提供的GTAO(Ground-Truth Ambient Occlusion)可以在一定半径内检测遮挡关系,让遮罩阴影的展现更贴合实际场景。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第7张图片

SSAO/GTAO对比

f.SSR

反射在日常生活中随处可见,反射的拟真程度也是渲染结果好坏的重要影响因素之一。对此,Orillusion提供了屏幕空间反射(SSR) 的能力,以实现真实合理的反射效果。Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第8张图片

左侧:水面SSR倒影   右侧:场景内的倒影

g.粒子系统

现实生活中许多现象或内容是难以使用Mesh模型来呈现的,例如常见的火焰、烟、雾、雨雪等,这种场景一般会采用粒子系统来实现。Orillusion引擎中借助Compute Shader强大的计算能力,既可追求精致的粒子效果,又能保证较高的性能,甚至还可结合场景探索与GPU粒子进行实时交互,以提高视觉特效的上限与质量。

粒子发射器

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第9张图片

基于动画模型的粒子效果

计算着色器

计算能力是WebGPU中最为瞩目的能力之一,也是新一代图形API标准中质的飞跃。Orillusion引擎对原生计算着色器(Compute Shader)进行了封装,作为计算内核使用,以便连接引擎特有的多类GPUBuffer,充分利用GPU的计算能力。引擎通过Compute Shader调用GPU计算内核,将计算任务或图像处理任务分配到每一个内核中进行并行计算,可以在极短的时间内返回结果。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第10张图片

GPU 计算内核

通过Compute Shader我们可以实时改变正在渲染的模型网格、顶点等attribute buffer,实现物理仿真模拟的能力。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第11张图片

流体仿真

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第12张图片

柔体仿真

引擎性能

除了上文中提到的使用GPU缓存(GPUBuffer)提高基础性能之外,引擎还针对不同的用户使用场景进行了三个性能优化方案的对比。以下就以绘制55000个box为场景对比不同渲染方案的性能消耗: 

Orillusion引擎使用结构清晰且高效的ECS组件系统为基础,利用WebGPU开放能力,尤其是强大的GPU缓存与计算内核,对比传统的Web端引擎,在性能,效果和易用性上都有了飞跃式的提升:

  • 性能:得益于多种GPU缓存与全局连续内存机制的使用;

  • 效果:通过合理的光照系统、丰富的后处理特效、粒子系统等整体灵活的相互间配合,可以让三维场景更贴合实际,有效的满足繁杂业务的展示需求;

  • 易用性:不单单受ECS组件系统的提升,许多已封装的API同样带来了更加便捷的使用方式,可以降低开发者的学习难度和维护成本。

  • Orillusion自主研发完全开源的WebGPU轻量级通用渲染引擎,让3D场景更逼真,更炫酷!

2 建设开源生态

开源不等于免费,开源更不等于单纯的公开代码。我们理解开源是一种开放、共享的创新协作模式,它突破物理边界,通过高效敏捷的沟通和协同,实现技术创新。技术人员可以花更多的精力放到创造性工作上,避免重复造轮子。而且,从整个软件产业的供应链上看,开源已经成为未来信息技术的主战场。

最近大家都已经被ChatGPT的相关内容刷屏。由于OpenAI目前并没有对最新训练模型进行开源,导致中国企业如果做出类似的产品,从技术算法角度来看可能至少需要一到两年的时间。但是“大模型”的训练不只是单纯的算法问题,还需要算力和数据的支持,所以这可能导致中国的大模型需要更长的研发迭代时间。

  • 算力指的就是GPU芯片大模型训练需要效率更高的更先进的芯片工艺支持,由于技术封锁,目前看很难在14nm以下的制程上快速实现国产化的突破。
  • 数据指的是有价值的高质量数据国内的企业很多都会把平台内容当做私有财产,放到自己的APP里,无法公开的被获取到。海外的主要互联网内容几乎都有Web版形态,便于通过搜索引擎进行数据分析。有了大量的原始数据池,才能激励完成后续优质数据的标注工作。

因此,我们更加相信开放的Web生态未来的前景非常光明。

Orillusion在创立之初就坚定地拥抱开源,开放包容、共创共赢是基本理念。通过开源可以帮助社区更好地了解技术,也可以通过社区影响力对技术进行推广,邀请更多开发者参与。技术社区积极快速的反馈也能帮助我们汲取更多的需求场景输入,帮助技术迭代更新。我们一直坚信,软件再优秀,如果没有构建起良好的生态,没有开发者和合作伙伴的共建,是很难走得更好更远的。一个开源产品,社区的文化氛围和协同创造力,才是区别于他人的根本。在社区共享、共创、共赢,将会激发出无限的创造力,这也是开源最大的魅力!

对于国内来说,开源发展起步较晚,国内的开源基础软件需要更多的时间。所有想参与其中的角色,不论是技术人员,开源公司,还是投资人,都需要更大的耐心!

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第13张图片

图源:O3DF

目前,Orillusion引擎已经得到了Linux基金会O3DF的认可,即将正式加入Linux开源基金会的大家庭。未来,希望借助国际开源基金会的力量,把我们国人自己的开源项目做大做强,为中国的开源生态贡献一份力量。

3 AI时代的机遇与挑战

ChatGPT的发展历史

ChatGPT自2022年11月发布以来,我们几乎每天都在感慨变革是如此迅猛,甚至产生了极大的AI焦虑,生怕一天不紧跟前沿,就会错过最新的AI技术或者AI应用的消息。当下,可以确定的是,一个全新的AI时代,已经进入了展开期。后续的AI应用,必然也会层出不穷。

我们先简单回顾下ChatGPT的历史。

总体来说,由于OpenAI成立之初,选择了Transformer做为解码器,坚持不懈的把标准的语言模型做为预训练的目标函数,因此开启了ChatGPT的诞生之路。

从2018年开始,GPT1最早在NLP任务上使用pre-training + fine-tuning 的工作范式。不到一年后,GPT2在GPT1的基础上,用更大的数据集训练了一个更大的模型,证明了模型的泛化能力并发掘出了模型zero-shot的潜力。2020年,GPT3不再追求zero-shot的极致表现,而是考虑人类的学习方式,通过极少数样本few-shot(in-context learning)和稀疏注意力的模型结构,把训练数据(45TB)和模型(1750亿参数)提高到GPT2规模的100倍,暴力出奇迹,达到完成人类难以区分的新闻撰写的惊艳效果。当然,也出现了不符合人类偏好的模型“偏见”。

2021年-2022年,InstructGPT基于GPT3,通过有监督微调(SFT)和基于人类反馈的强化学习(RLHF),解决了模型的“偏见”问题,实现了模型回答和人类意图之间的对齐(Alignment)。同时,OpenAI以代码做为训练数据,在GPT3的某个中间版本上进行另外一个路线的训练,推出了Codex初代模型。

2022年4月-7月,基于InstructGPT和Codex初代模型的后续迭代版本,通过进一步的代码训练和微调,创造了第一个GPT3.5家族的模型code-davinci-002,也称为Codex。

2022年5月-6月,基于code-davinci-002,通过有监督指令微调(supervised instruction tuning)得到了text-davinci-002。

2022年11月,在text-davinci-002的基础上,通过RLHF获得了两个不同的模型变体,即text-davinci-003和ChatGPT。前者恢复了一些text-davinci-002所牺牲的上下文学习能力,同时提高了zero-shot能力。而ChatGPT则通过牺牲上下文学习能力来换取建模对话历史的能力。

2023年3月,进入GPT4的时代。它可以理解图像内容,体现了强大的“多模态”特性;有了更强的记忆力,token数量从GPT3.5的4K提升到32K; 有了更强的语言理解能力和推理能力;在各种考试中的表现也是得到了显著的提高。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第14张图片

GPT发展史

我们Orillusion团队在2021年就关注过GPT3的技术和能力,当时大模型已经展现出了很好的协作和概念理解能力,但是还不能实现多轮对话。ChatGPT的出现,补齐了这一短板,而且在其他各个方面都有了大幅度提升。这项革命性的产品,让我们看到了一个巨大的机会。对于引擎产品品类来说,结合大语言模型的能力,使得引擎可以理解人们的意图,变的更加“聪明”,是接下来充满挑战的必经之路。伴随着ChatGPT的出现,我们认真的进行了长达半年多的思考、试错和工程优化,努力寻找着大模型和3D引擎之间的衔接桥梁。

AIGC在3D应用场景的机会

随着现象级应用ChatGPT的出现,LLM的多模态能力已经在文字和图片的生成上表现出了非常好的效果,大幅度提高了生产效率,甚至改变了人们的生活习惯。下一个被LLM覆盖的场景,必然是3D内容的生成。而且这也是降低3D内容创作门槛的最终解决方法。AIGC在3D行业的突破,我们理解为两种表现形式:生成派和调用派。

生成派

比如ChatGPT,Jasper,Imagen,Dall·E 2,Stable Diffusion,Midjourney等,都是在文字或图片的场景里,从0到1的直接创造内容。对于3D资产,通过AI最终也一定可以实现从0到1的直接创造。从当前3D内容生产工作流兼容性的角度,考虑到3D资产需要应用到渲染管线,3D资产最流行的representation就是Mesh,除此之外还包括NeRF,体素,点云,SDF等。当下,可以基于3D数据集直接训练AI模型,实现3D Mesh资产的创作(GET3D),也可以基于2D图片信息,来生成各种representation的3D资产(Point·E,Magic3D,Dreamfusion,Phorhum)。虽然目前来看,3D资产的生成还是处于相对早期的阶段,距离成熟商用可能至少需要半年到一年的时间,甚至是更久,这些不同的representation最终都会通过AI,实现从0到1的直接生成创造。

调用派

在3D应用场景中,LLM是否可以学习各种DCC软件(通过教程,案例,代码等),直接完成对这些基础软件的控制,通过“调用”的方式,完成3D内容的创作。比如我们是不是未来可以教会LLM使用Unity引擎或者3DMax工具,通过输入prompt指令,就可以直接生成我们需要的3D场景或者3D模型。LLM本身更擅长的是对文字内容的理解,而复杂繁琐的专业性工作,有很多成熟的工具可以完成。我们未来是不是只需要把这些操作工具的过程交给AI来完成,而不再通过人工的操作。这好比我们的大脑只需要完成思考,再通过控制我们的手脚来完成工作一样。这种调用派的逻辑更像是ChatGPT当下的插件机制,如果想购买机票,只需要告诉ChatGPT我们的意图,然后通过插件调用成熟的机票购买服务就好了。

AIGC在引擎产品的现状

这两种派别,我们认为第一种生成派是必然会发生的,就好比文字和图像的AIGC一样,目前大量的研究都集中在此。通过这种方式,我们可以快速的获得独立的3D资产,从而可以提高3D建模的效率,甚至是跳过这个专业的繁琐的3D建模阶段。而3D场景应用是一个比文字、图片、视频创作复杂的多的工作流,生成3D资产只是这个复杂工作流中的一个环节。比如,一个3D应用,需要策划给出方案,先完成原画的设计,建模师再完成建模,然后进入到3D/游戏引擎中搭建更复杂的场景,编写交互逻辑,最后发布应用。假设生成派可以实现3D资产从0到1的创造,那在3D应用场景中,AI又能如何加速传统的工作流呢?如果真正想实现3D应用场景全链路的AI化,我们认为调用派所覆盖的这些DCC工具,尤其是可以完成复杂场景搭建和逻辑编写的3D引擎工具,都存在巨大的革命性机会。

而且,在这个革命性机会到来的过程中,由3D引擎公司接入AI能力来实现会更为顺畅。因为这件事情的本质是垂直行业对于AI能力的应用,这需要团队深入了解3D引擎框架,能力和特征,也需要很强的know how经验。怎样让AI理解3D场景,快速学会3D引擎工具的功能,完成3D场景的搭建和3D应用的开发,就变的至关重要。

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第15张图片

Roblox 

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第16张图片

Spline

当ChatGPT出现之后,已经有很多3D引擎公司表达了对于AIGC的认可,也出现了很多官方以及第三方的Demo展示,例如Roblox,Unity,Unreal,Spline等。虽然这个过程可能会相对漫长,也存在巨大挑战,但是AIGC在加速3D应用场景的创作上,已经成为了整个行业的共识。

AIGC在Orillusion引擎的应用

AIGC一直是我们Orillusion团队关注的重点。在引擎设计之初,我们就开始考虑AI对于引擎的适配问题。在ChatGPT出现以后,LLM的多模态表现,对语言内容的理解,包括上下文的逻辑推理能力,都实现了巨大的突破,这让我们感到格外兴奋!接下来,唯一的问题就是怎样教会LLM去理解3D场景,学习Orillusion引擎的功能,最终完成3D应用的创作。这恰恰是我们擅长,且必须要做的事情。

Orillusion✖️AIGC: ChatGPT+WebGPU时代的3D内容创作探索

这件事情的Hard Core有三个方面:

  • 基于WebGPU标准的Orillusion引擎,这是我们的重要核心技术之一3年前,团队开始关注WebGPU的发展,至今经历了两年多的WebGPU引擎研发工作,今天以开源的形式正式和大家见面。未来,我们期待和众多开发者一起努力,共建国人自己的Web3D引擎底层生态。
  • 如何教会大语言模型,理解3D场景,学会使用Orillusion引擎,来构建3D场景应用通过标准化结构化的引擎功能封装,加快大语言模型的学习速度和准确度。基于数据反馈机制,对大模型进行再次finetune,使其对3D场景和引擎功能的理解越来越准确。
  • 如何实现AI能力在3D场景中的扩展。我们都知道ChatGPT本身是语言模型要扩展能力就需要插件帮忙。借鉴这种插件思路,我们也在垂直的3D场景中,基于Orillusion引擎实现了构建3D空间能力的插件化扩展方式,开发者可以通过插件,扩充更加复杂的3D应用开发能力。

基于插件的扩展能力,如果有更多的开发者参与,就会实现更多的垂直化插件功能,也就可以满足更多的用户需求。而更多的用户,就可以产生更多的数据反馈,从而为AI模型带来更大的优化空间。当然,这个正向飞轮最终还要依靠广大的开发者和我们共同努力。因此,我们坚持开源,选择拥抱生态!

基于WebGPU标准的WebLLM项目,深度挖掘了WebGPU的潜力,最近得到了大量的关注。那未来“训练在云,推理在端”的AI框架,是不是也更加值得想象呢?

欢迎大家加入开发者社区交流群(tips:已在123群的就不要重复加入哦,所有的信息每个群都会同步滴!)

如果出现扫码进群已达到上限,请加大添加小鸥微信(图右),我们会邀请您进群~Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第17张图片 


Orillusion 致力于打造全世界第一款完全开源基于 WebGPU 标准的一种轻量级渲染引擎,目标是在浏览器中实现桌面级的渲染效果,支持超大复杂场景的 3D 呈现。易上手,易分享,易迭代,易协作、成本低,跨平台是我们的核心优势,我们将为 3D 场景爆发时代提供引擎基础工具。

未来我们将会持续把最干货最前沿的 WebGPU 技术分享给每一位社区成员,也欢迎大家为 Orillusion 开源社区做出自己的贡献。我们一直坚信,开源社区的技术留痕是每一位技术人员最崇高的追求!因此,我们尊重,我们认可,我们更期待,加入 Orillusion,让我们共同进步!

——Link uncharted, 链接未来世界

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!_第18张图片
 

你可能感兴趣的:(WebGPU,AIGC,3d引擎,开源,前端,图形渲染)