从这两个技术可以看到 AI 技术的发展趋势——从以前在每个专门领域训练专门的模型,去做领域专用的 AI 小模型的技术,到现在不管从学术研究上,还是从业界对 AI 关注度上,都逐渐变成了“生成式 AI 大模型”。最典型的形式是 Stable Diffusion 和 ChatGPT 这两种,通过 Text Prompt,用大模型来生成图片或者文本,或者用 plugins 这种方式调用第三方工具。
Unity 是 3D 可交互的实时引擎,所以我们专注在 3D 数据的应用。生成式 AI 从文本和图像、1D 和 2D 的数据扩展到 3D 有很大的难点。
第一大难点是 3D 数据的表示有非常多选择。如果把 2D 数据推广到 3D,最简单的一个推广是体素的数据表达,但是体素的数据表达并不是很高效;常用的 Mesh 更高效,但是 Mesh 不是很规则,所以数据的一致性上会有问题。如果在 3D 数据生成式 AI 里来看,它选择会有更多,比如到底用体素还是点云、Mesh、SDF、隐式场等,学术界在每个表达方式上都有很多论文和新技术出来,但是目前距达到生产可用的质量,还是有一定差距的。
第二个难点是,3D 数据的特点是它呈现的依赖非常多。3D 数据需要在引擎里渲染出比较好的效果,它不单取决于模型本身,还取决于贴图、材质、Shader、光照、动画、VFX 等,这给 3D 的 AIGC 的生成带来很多困难。第三个难点是 3D 的高质量数据比较稀缺,图片生成、文本生成用到的数据量都巨大,图片生成是50亿的规模,但是目前 3D 公开的数据是远达不到这个量级的。
不同的 3D 数据用 AIGC 的方式生成,会有不同的路径。由于 3D 数据很有数据稀缺性,我们有没有办法通过 2D 的生成式 AI,也就是通过现在相对比较成熟的 2D 图片生成技术来提升 3D 模型的生成质量?这也是业界发展最快的一个领域,就是通过可微渲染技术,把 3D 降维成 2D,然后加上 2D 的生成式 AI 模型作为监督,比如用 Diffusion 的 Loss 对它进行监督。
但是现在这种方式还是需要通过监督把 Loss 反传回去来优化 3D 模型,这种方式相当于都要在单个模型上进行训练。最近清华大学发布的 ProlificDreamer 技术,一次推理可能需要几个小时的推理时间,它本身是训练和优化的过程,会比较慢。这个领域现在发展非常快,我们也在持续关注。