全球开源技术峰会(Global Open-source Technology ConferencGOTC 2023由开放原子开源基金会、 Linux 基金会亚太区、上海浦东软件园和开源中国联合发起, 于 5 月 27 日至 28 日在上海顺利举行。
GOTC是面向全球开发者的一场盛大开源技术盛宴,大会以行业展览、主题发言、专题论坛、开源市集的形式展现,与会者将一起探讨元宇宙、3D 与游戏、eBPF、Web3.0、区块链等热门技术主题,以及开源社区、AIGC、汽车软件、AI 编程、开源教育培训、云原生等热门话题,探讨开源未来,助力开源发展。
北京鸥睿零世科技有限公司创始人&CEO白景文受邀出席Web3元宇宙世界专题论坛,发表了题为《元宇宙时代Web3D的生态优势及WebGPU引擎的机遇》的演讲,并参与了《游戏与3D渲染引擎》圆桌讨论。
1 AIGC在3D行业的突破
随着ChatGPT的出现,LLM的多模态能力已经在文字和图片的生成上表现出了非常好的效果。下一个被LLM覆盖的场景,必然是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资产的创作,也可以基于2D图片信息,来生成各种representation的3D资产。虽然目前来看,3D资产的生成还是处于相对早期的阶段。但是,这些不同的representation最终都会通过AI,实现从0到1的直接生成创造。
调用派:资产的产品化
在3D应用场景中,LLM是否可以学习各种DCC软件(通过教程、案例、代码等),通过“调用”的方式,完成3D内容的创作。比如我们是不是未来可以教会LLM使用Unity引擎工具,通过prompt,就可以直接生成我们需要的3D应用。LLM本身更擅长的是对文字内容的理解,而复杂繁琐的专业性工作,有很多成熟的工具可以完成。这好比我们的大脑只需要完成思考,再通过控制我们的手脚来完成工作一样。这种调用派的逻辑更像是ChatGPT当下的插件机制,如果想购买机票,只需要告诉ChatGPT我们的意图,然后通过插件调用成熟的机票购买服务就好了。
生成派解决的是资产创造的问题,但是3D资产创造完,需要有去处,有场景。调用派解决的资产转换为3D资产,产品化的问题。
2 带有AI大脑的3D引擎必然出现
功能级:AI能力独立调用
⾕歌在5月10号召开的I/O⼤会,展示了AI和安卓系统的结合能力:生成式AI的壁纸应用和智能短信助手Magic Compose。这些AI能力的应用还都是属于一个个独立功能的存在,不是系统级的接入。
这种结合AI的形式和运用3D游戏引擎的AI能力开发游戏类似。当下,我们开发游戏也用到了很多AI能力:传统AI能力应用包括语音生成,语音生成面部表情,AI视频动捕等等;大模型AI能力应用包括生成原画素材,游戏剧本,智能NPC等等。我们认为这种AIGC的应用的确可以大大加速3D内容的生成效率,但是都不是系统级别的。
系统级:3D内容工具的范式转变
微软在5月23号召开Build开发者大会,推出了Windows Copilot,这对微软有重大战略意义。它的本质是给windows安装了一个大脑,而且它可以慢慢进化的。虽然现在能做的事情有限,但是这可能是新⼀代AI操作系统的雏形,通过自然语言的方式,完成人和操作系统(机器)的交流。
在这个AIGC的时代,我们需要给3D引擎装上一个大脑,大语言模型,必须系统级的理解3D引擎,这将是3D内容创作工具的范式转变。
充分发挥AI的先发优势,需要像微软一样从战略上重视。半年来,我们对AI大语言模型了解的还非常浅显,战略上愈加重视,才能理解的更为深刻,才有可能制定出更加领先且正确的战术计划。
3D应用的开发必须有3D引擎的支持,是非常不容易被大模型替代的。在这个相对的垂直场景,一定会出现一个带有AI大脑的3D引擎,为3D创作提供系统级的AIGC能力。
3 WebGPU和AIGC对3D引擎的影响
简单回顾游戏引擎30多年的发展史,每个时代都会有不同的3D内容需求,不同的需求又会催生出不同的引擎公司,进而站上历史舞台。
第一款游戏引擎,是由ID Software在1993年发布的《德军总部3D》,创始人John Carmack也被称为“FPS游戏之⽗”。同年,经过优化后,ID发布了《DOOM》,最终成为了游戏引擎技术的代表。但是,这两款引擎都是伪3D。真正的3D引擎是ID在1996年发布的《Quake》,它开始⽀持模型,动画和粒子特效。1997年的《Quake2》,开始⽀持OpenGL。
1998年,Epic公司的Unreal诞生。当时游戏的开发已经变的相对复杂,需要很多功能模块。Unreal当时最主要的特征是集成了游戏开发的很多模块,包括物理、⾳效、碰撞等。所以,从游戏引擎通用性角度,Unreal要好很多。但是这还不够,Unreal真正能⽐肩Quake,是经过几轮的代码重构和迭代后,发布的Unreal3。这个过程中,Epic公司做的最成功的决定就是全力拥抱微软的生态,努力适配Widows的图形API接口DX。最终在Xbox上发布了《战争机器》,也奠定了它在PC主机这个时代的引擎霸主的地位。这个时代对3D内容的需求,就是渲染逼真,效果好。
2004年,伴随着让游戏引擎大众化的口号,Unity成⽴。Unity成功的很大原因是借助于移动互联⽹的浪潮,尤其是2007年iPhone发布的时候,当时只有Unity一款引擎可以为IOS开发游戏应用。最终Unity凭借它的跨平台特性,很快的成为了移动互联网时代的主流引擎⼯具。这个时代对3D内容的需求,就是人们可以通过移动⼿机,随时随地的快速进⼊3D世界。
随后,各家游戏引擎开始普遍的去游戏化标签。比如,Unity的口号从“game development platform”变成了“real-time 3D content platform”,Unreal也开始深⼊到各个⾏业,包括影视,⼯业,仿真,⾃动驾驶等等。随着覆盖场景的增多,协作的需求也多了起来。所以英伟达推出的Omniverse,横向打通了各种3D内容制作工具,让不同的角色可以快速协作,进而提升工作效率。
在这个发展的过程中,出现过3D内容轻量化的阶段。曾经的Flash被抛弃后,很多优势都被WebGL所借鉴,也出现过非常火爆的页游。但是,从商业角度,并没有出现特别成功的引擎公司。
我们也尝试做过分析,首先Web技术不只是可以用来做网页,一样可以打包发布成移动端和桌面端的应用,甚至是未来的VR/AR/MR的应用。其次,Web在2D内容有《羊了个羊》,在工具层面上有Figma。3D场景上没有特别成功的案例,一个很有可能的原因就是Web上的3D天花板WebGL的性能问题。这导致在Web上很难开发出高质量,高性能,高留存的3D应用。
**
但是,这样⼀种局⾯,很有可能随着WebGPU的出现被彻底打破。2023年5⽉2号WebGPU正式发布,它本质上是释放了GPU的⽣产⼒,在浏览器上可以进⾏⾼性能的计算和渲染。**
WebGPU增加了计算着色器,可以把GPU的通用计算能力独立出来,不再需要通过 fragment shader和vertext shader进⾏模拟;同时WebGPU取消了全局状态机,把内存管理交给技术人员,大大提高了灵活度,可以针对不同的需求进行自由调整。这两个技术上的变化,也表现在两个⽐较实际的场景上。第一个场景是,浏览器通过WebGPU可以直接运行大模型,比如Stable Diffusion。第⼆个场景式, 浏览器中可以更加轻松的实现桌⾯级的渲染效果算法,实现更加逼真的3D内容呈现。
浏览器的全球安装量是非常巨大的,Chrome一家在全球就有30亿用户。WebGPU带来的技术和场景的变化,意味着几十亿人,可以⼏乎0成本的获得超强的计算和渲染能⼒。再配合上浏览器天然的跨平台,易传播的属性,便可以轻松的让⽤户体验到各种AI能力和高质量3D内容。
大模型的训练是需要巨大算力支持的,因此我们在当下体验AI服务的时候,经常因为云端资源的限制而被“卡”住。有了WebGPU的技术,它可以轻松的释放端侧的算力,未来AIGC服务表现为“训练在云测,推理在端测”的模式很有可能成为新的趋势。
以ChatGPT为代表的⼤语⾔模型,已经改变了人们的习惯和认知。当下,是一个AIGC普众化需求爆发的时代,更多的⼈都渴望更方便快捷的获得AI的能⼒,获得AIGC的3D创作能⼒。 我们认为不久的将来,⼀定会出现⼀个轻量级的、易传播的,系统级集成AI能⼒的AI原⽣3D引擎。
Orillusion致力于打造全世界第一款完全开源基于WebGPU标准的一种轻量级渲染引擎,目标是在浏览器中实现桌面级的渲染效果,支持超大复杂场景的3D呈现。易上手,易分享,易迭代,易协作、成本低,跨平台是我们的核心优势,我们将为3D场景爆发时代提供引擎基础工具。
未来我们将会持续把最干货最前沿的WebGPU技术分享给每一位社区成员,也欢迎大家为Orillusion开源社区做出自己的贡献。我们一直坚信,开源社区的技术留痕是每一位技术人员最崇高的追求!因此,我们尊重,我们认可,我们更期待,加入Orillusion,让我们共同进步!
——Link uncharted, 链接未来世界
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。