欢迎使用 AI 进行游戏开发! 在本系列中,我们将使用 AI 工具在 5 天内创建一个功能完备的农场游戏。到本系列结束时,您将了解到如何将多种 AI 工具整合到游戏开发流程中。本文将向您展示如何将 AI 工具用于:

  1. 美术风格
  2. 游戏设计
  3. 3D 素材
  4. 2D 素材
  5. 剧情

注意: 本教程面向熟悉 Unity 开发和 C# 语言的读者。如果您不熟悉这些技术,请先查看 Unity for Beginners 系列后再继续阅读。

第 3 天:3D 素材

本教程系列的 第 2 部分 介绍了 使用 AI 进行游戏设计。更具体地说,我们提问 ChatGPT 进行头脑风暴,进而设计农场游戏所需的功能组件。

在这一部分中,我们将探讨如何使用 AI 制作 3D 素材。先说结论:不可行。因为 现阶段 的文本-3D 技术水平还没有发展到可用于游戏开发的程度。不过 AI 领域在迅速变革,可能很快就有突破。如想了解 文本-3D 现阶段进展现阶段不可行的原因,以及 文本-3D 的未来发展,请继续往下阅读。

文本-3D 现阶段进展

我们在 第 1 部分 中介绍了使用 Stable Diffusion 帮助确立游戏美术风格,这类 文本-图像 的工具在游戏开发流程中表现非常震撼。同时游戏开发中也有 3D 建模需求,那么从文本生成 3D 模型的 文本-3D 工具表现如何?下面总结了此领域的近期进展:

  • CLIPMatrixCLIP-Mesh-SMPLX 可以直接生成 3D 纹理网格。
  • DreamFusion 使用 diffusion 技术从 2D 图像生成 3D 模型。
  • CLIP-Forge 可以从文本生成体素(体积像素,3 维空间最小分割单元,类似图片的像素)3D 模型。
  • CLIP-NeRF 可以输入文本或者图像来驱动 NeRF 生成新的 3D 模型。
  • Point-EPulsar+CLIP 可以用文本生成 3D 点云。
  • Dream Textures 使用了 文本-图像 技术,可以在 Blender(三维图形图像软件)中自动对场景纹理贴图。

注:3D 对象有多种表征形式:显式(explicit representation)包括网格、体素、点云等,可以进行贴图、渲染、合成虚拟视角等;隐式(implicit representation)通常使用函数映射来描述,NeRF 就是一种可以合成虚拟视角的隐式表征。

除 CLIPMatrix 和 CLIP-Mesh-SMPLX 之外,上述大部分方法或基于 视图合成 (view synthesis) 生成 3D 对象,或生成特定主体的新视角,这就是 NeRF(Neural Radiance Fields,神经辐射场) 背后的思想。NeRF 使用神经网络来做视图合成,这与传统 3D 渲染方法(网格、UV 映射、摄影测量等)有较大差异。

那么,这些技术为游戏开发者带来了多少可能性? 我认为 现阶段,实际上它还没有发展到可用于游戏开发的程度。下面我会说明一下原因。

现阶段不可行的原因

注意: 此部分面向熟悉传统 3D 渲染技术(如 网格UV映射,和 摄影测量)的读者。

网格是大部分 3D 世界的运行基石。诸如 NeRFs 的视图合成技术虽然效果非常惊艳,但现阶段却难以兼容网格。不过 NeRFs 转换为网格 方向的工作已经在进行中,这部分的工作与 摄影测量 有些类似,摄影测量是对现实世界特定对象采集多张图像并组合起来,进而制作网格化的 3D 模型素材。

既然基于神经网络的 文本-NeRF-网格和摄影测量的采图-组合-网格两者的 3D 化流程有相似之处,同样他们也具有相似的局限性:生成的 3D 网格素材不能直接在游戏中使用,而需要大量的专业知识和额外工作才能使用。因此我认为,NeRF-网格可能是一个有用的工具,但现阶段并未显示出 文本-3D 的变革潜力。

还拿摄影测量类比,目前 NeRF-网格 最适合的场景同样是创建超高保真模型素材,但实际上这需要大量的人工后处理工作,因此这项技术用在 5 天创建一个农场游戏系列中没有太大意义。为保证游戏开发顺利进行,对于需要有差异性的多种农作物 3D 模型,我决定仅使用颜色不同的立方体加以区分。

不过 AI 领域的变革非常迅速,可能很快就会出现可行的解决方案。在下文中,我将讨论文本-3D 的一些发展方向。

文本-3D 的未来发展

虽然文本-3D 领域最近取得了长足进步,但与现阶段文本-2D 的影响力相比,仍有显著的差距。对于如何缩小这个差距,我这里推测两个可能的方向:

  1. 改进 NeRF-网格和网格生成(将连续的几何空间细分为离散的网格拓扑单元)技术。如上文提到的,现阶段 NeRF 生成的 3D 模型需要大量额外的工作才能作为游戏素材使用,虽然这种方法在创建高保真模型素材时非常有效,但它是以大量时间开销为代价的。如果您跟我一样使用 low-poly(低多边形)美术风格来开发游戏,那么对于从零开始制作 3D 素材,您可能会偏好更低耗时的方案。
  2. 更新渲染技术:允许 NeRF 直接在引擎中渲染。虽然没有官方公告,不过从 Nvidia OmniverseGoogle DreamFusion3d 推测,有许多开发者正在为此努力。

时间会给我们答案。如果您想跟上最新进展,可以在 Twitter 上关注作者查看相关动态。如果我错过了哪些新进展,也可以随时与我联系!

敬请期待第 4 部分的分享,我将为您介绍如何 使用 AI 制作 2D 素材

致谢

感谢 Poli @multimodalart 提供的最新开源文本-3D 信息。


英文原文: https://huggingface.co/blog/ml-for-games-3

原文作者: Dylan Ebert, Hugging Face 工程师

中文译者: SuSung-boy (苏桑),经常倒腾图像的工业视觉算法工程师。

AI 制作 3D 素材|基于 AI 5 天创建一个农场游戏,第 3 天的更多相关文章

  1. 基于空镜像scratch创建一个新的Docker镜像

    我们在使用Dockerfile构建docker镜像时,一种方式是使用官方预先配置好的容器镜像.优点是我们不用从头开始构建,节省了很多工作量,但付出的代价是需要下载很大的镜像包. 比如我机器上docke ...

  2. 从头基于空镜像scratch创建一个新的Docker镜像

    我们在使用Dockerfile构建docker镜像时,一种方式是使用官方预先配置好的容器镜像.优点是我们不用从头开始构建,节省了很多工作量,但付出的代价是需要下载很大的镜像包. 比如我机器上docke ...

  3. ZAM 3D 制作3D动画字幕 用于Xaml导出

    原地址-> http://www.cnblogs.com/yk250/p/5662788.html 介绍:对经常使用Blend做动画的人来说,ZAM 3D 也很好上手,专业制作3D素材的XAML ...

  4. 使用CATransformLayer制作3D图像和动画

    之前我们讲过可以用CALayer搭配CATransform3D来实现将View做3D旋转, 今天我们再看一个3D的新东西 CATransformLayer, 看名字就知道这个layer跟旋转有关, 那 ...

  5. Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

    提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...

  6. 用AI制作炫酷效果

    PART1:制作第一个效果 步骤一:新建一个800*600的画布. 骤二:从工具栏选“矩形工具”,创建一个800*600的矩形.白色的是画布,浅红色(我的AI之前保留的填充颜色,每个人都不一样)的是你 ...

  7. 推荐一款国产优秀的基于 AI 的 Web 自动化测试工具——kylinTOP 测试与监控平台

    对于于一般的传统的自动化测试工具,如:Selenium,robotFramework,QTP等.QTP可以通过操作录制生成自动化用例脚本.生成的脚本与Selenium.robotFramework类似 ...

  8. AI贪吃蛇前瞻——基于Dijkstra算法的最短路径问题

    在贪吃蛇流程结构优化之后,我又不满足于亲自操刀控制这条蠢蠢的蛇,干脆就让它升级成AI,我来看程序自己玩,哈哈. 一.Dijkstra算法原理 作为一种广为人知的单源最短路径算法,Dijkstra用于求 ...

  9. 网页特效:用CSS3制作3D图片立方体旋转特效

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. 制作3D图片立方体旋转特效

    <!DOCTYPE html><html><head><meta charset="utf-8" /><title>CS ...

随机推荐

  1. 硬核剖析Java锁底层AQS源码,深入理解底层架构设计

    我们常见的并发锁ReentrantLock.CountDownLatch.Semaphore.CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁. 上篇 ...

  2. 【网络】安装Nginx笔记

    目录 前言 安装前先更新下 安装依赖库 下载Nginx Nginx编译配置 编译&安装&验证nginx Nginx服务配置 配置SSL 参考 前言 up安装nginx主要是为了在服务器 ...

  3. 2022春每日一题:Day 8

    题目:[HNOI2003]激光炸弹 二维前缀和,扫大小为m*m的矩形,取最大即可. 代码: #include <cstdio> #include <cstdlib> #incl ...

  4. 读书笔记《A Philosophy of Software Design - John Ousterhout 软件设计哲学》

    软件设计哲学这本书很薄,值得一读.这本书将大家平时碰到的很多软件问题从更深刻的层面进行了抽象分析,同时又给出了具体的解决方案.可以说既有理论高度,又能贴近实践. 但针对软件问题,这本书并没有提出太多与 ...

  5. 【Spring系列】- Spring事务底层原理

    Spring事务底层原理 生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 目录 Sprin ...

  6. Redis系列11:内存淘汰策略

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...

  7. 关于Wegame页面空白的问题解决

    前言 前几天帮亲戚家装电脑系统,装好后发现 wegame 所有页面都不能正确加载(全部是空白页面),很神奇,在网上找了很多种解决办法都没有效果,后来不过细心的我发现360浏览器一直提示我证书不安全过期 ...

  8. java.util.Date和java.util.Calendar

    Date date = new Date();//分配初始化一个Date()对象 Calendar cal = Calendar.getInstance();//获取一个基于当前时间的日历 int d ...

  9. 使用python脚本传递参数:(三种方式可收藏)

    背景:使用python脚本传递参数在实际工作过程中还是比较常用,以下提供了好几种的实现方式: 一.使用sys.argv的数组传入说明:使用sys.argv必须按照先后的顺序传入对应的参数:sys.ar ...

  10. webflux延迟队列逻辑更改过程记录

    title : webflux延迟队列逻辑更改过程记录 author : simonLee date : 2022/11/22 10:26 目录 webflux延迟队列逻辑更改过程记录 一.问题背景 ...