Origin
zhuanlan.zhihu.com
Tags
UE4
技术详解
流程规范
插件工具
渲染
性能优化
项目
收藏夹
创建时间
收藏类型
Cubox 深度链接
更新时间
原链接
描述
发布于 2020.8.24编辑于 2020.11.18编辑于 2021.9.15(知乎新增文章目录功能重新排版),更新了部分毛发布料模拟、资源管理、Maya 脚本等文章。编辑于 2021.9.23,新增 GPU、USD、光照、渲染相关文章和回答。编辑于 2021.10.9,新增部分网上查找不到的牛人博客技术文章。编辑于 2021.10.27,新增灯光、贴图、模型、AO、AA 等相关资料。编辑于 2022.2.23,新增 Houdini、PDG、Noise 相关学习资料。编辑于 2023.1.2,一年没更新了,把这一年看过学过的一些文章也整理一下。(以前整理的内容及写的某些东西还略显稚气,有些干脆直接删掉了,框架现在看还是太凌乱了,所以打散将重点内容的顺序重新排一下)编辑于 2023.1.15,更新些最近了解学习的优秀地形篇章。
不断更新未学过或未深入了解过的他人优秀资源教程,
站在巨人的肩膀上头发才能飘得更快,秃得更早~ 因为风大啊,高处不胜寒,连根拔起,不仅有发根,还有命根啊,哈哈,毕竟开发游戏太耗人了,离入坟的时间不远了,而且穷的连棺材都不能够预定个好点的,想指望被棺材板封杀都不行,直接丢火坑里烧了算了。
呀,上面整完了才发现原来看过一篇。
另外:游戏最重要的就是跨学科学习,遍历相关学科后再按照喜好特长深入研究,以将多个学科融汇贯通。
用艺术开拓技术,用技术完美艺术。 可不学它就是无术啊。吾生也有涯,而知也无涯,但怕什么真理无穷,进一寸有一寸的欢喜。
收藏夹容易吃灰,光点赞查找缓慢,浏览器书签又太乱,还是文章上下整齐罗列最喜欢,便捷访问最自然。我不会记录得很全,我只会记录我感兴趣的。
大家也可以写文章建立自己的资源库啊,把自己感兴趣想要学习的相关教程整理出来,这样自己容易访问,还能够帮到别人呢。(建一个专门游戏开发的网站多好啊,获取转载许可后爬取各位大佬的回答文章或者是迁移账户内容,输入关键词,就能找到所有国内相关游戏开发的技术文章或视频,B 站的,CSDN 的,知乎的等等,不用费劲儿得来回找)
另外:本篇大多内容是文章格式。我特别厌恶录制教学视频的人 不做任何提前准备,没有一个清晰的提纲,上来就胡讲乱讲,废话连篇,讲到哪是哪的人,我认为这对学生或同行是一种极其不负责任的行为,浪费别人的时间跟生命(市面上大多是这样的)要是我,我恨不得直接拳头伸进电脑屏幕里面锤那人一顿。具体看这里:【告知】看教程应该尽量看文档 / 文章。
【导图】:
可以根据导图用 Ctrl+F 输入关键字快捷定位,如 " 一、”,“二、” 等等。
一、动画
【1.1】:人物动画
【1.1.1】:ALS StateMachine 状态机 整合动作
是啊,再复杂一点就不行了,每两个动作之间就要添加切换条件太麻烦了,不过还是要都了解一下,电动汽车当然好,但是油车还要了解学习。(类似传统二进制计算机和量子计算机的区别,量子可能性不只二进制的两种)
【1.1.2】:Motion Matching
可以这样简单理解,跟搜索引擎一样输入指令(方向、旋转、位移、加速度、高度等)搜索动作数据库,通过深度学习神经网络梯度下降取出最符合要求的动作。
【1.1.3】:动作捕捉
【1.1.4】:绑定蒙皮
【1.2】:镜头动画
二、数学
受戴老师启发,数学决定了最终效果的上限。知道和会用是两码事儿。不过 UE 中常用的也就是高中学的向量和三角函数,比如计算两物体距离啊,材质遮罩抖动计算啊。一些高端逼真的效果就涉及到太多数学知识了。如海洋流体模拟,头发飘柔,眼球反射,绳子软体模拟等等。
【2.1】:视频图文
- 马同学高等数学 (通俗易懂讲高数)
- 图形计算的数学原理(图形学中的数学应用)
【2.2】:3Blue1Brown 视频
像数学这种高度抽象的东西还是要通过比喻形象的方式理解,所以 3Blue1Brown 的视频必看无疑。
【必修】:
【选修】:
【证明】:
【可交互有趣数学网站】:
- …………
三、引擎编程 / 效率技巧
C 草(C 草草是 C#、C 草才是 C 艹 or C++)
【3.1】:纯 C++
【回答】:
【文章】:
【硬件】:
【自定义】:
【实战】:边做边学(左边文档 | 右边实战环境(在线实验楼 linux 环境))
强烈推荐:python、web、C++、vim、数据算法啥的应有尽有,而且文档教程没有半点废话,可视频可文章多种方式学习,还有类似 MG 风格的卡通图片真的特别好看。还有类似 github 的贡献 UI,这里是学习课程 UI,能很直观地看到自己的学习记录。
【3.2】:UE4 C++ 基础
【官方】:
【社区】:
【书籍】:
【视频】:
- 梁迪_梁迪腾讯课堂官网 (迪迪老师 教你 C 草实战)
- 技术宅阿棍儿(大标题直击要领,很棒)
【3.3】:UE4 C++ 进阶
【1. 知识点】
【2. 高手】怀疑人生系列
【3. 大佬博客文章】
100 多篇引擎 C++ 相关文章,可谓是已经把引擎玩转于指掌了。
【4. 插件编写】
【5. 网络开发】
【6.Lua】
【3.4】:虚幻工作原理 (整理得还不是很全,望谅解~)
【引擎工作机制】UOBJECT
- Reflection——反射
- GC——垃圾回收
- Serialization——序列化
- MetaData——元数据(用于存储键值对)
【01】Reflection——反射(百度百科)
百度百科:反射是一种计算机处理方式。有程序可以访问、检测和修改它本身状态或行为的这种能力。能提供封装程序集、类型的对象。(程序集包含模块,而模块包含类型,类型又包含成员。)优点:1. 反射提高了程序的灵活性和扩展性。2. 降低耦合性,提高自适应能力3. 它允许程序创建和控制任何类的对象,无需提前硬编码目标类。—————————————————————————————- C++ 本身并不支持反射。虚幻在 C++ 上搭建了自己的一套反射机制。虚幻使用反射可以实现序列化 Serialization、Editor 中的细节面板、GC 垃圾回收、网络复制、蓝图 / C++ 通信和相互调用等功能。
【反射原理】:
- 南京周润发:UE4 反射机制 (通俗易懂,C++ 本身并不支持反射)
- FlyingTree:UE4 中的反射之一:编译阶段 (常说的反射到底是个啥?GENERATED_BODY)
【反射实战】:
【02】GC(GarbageCollection)——垃圾回收(百度百科)
知乎: 当一个电脑上的动态内存不再需要时,就应该予以释放,以让出内存,这种内存资源管理,称为垃圾回收(garbage collection),简称 GC。百度百科:GC(Garbage Collection):JAVA/.NET 中的垃圾回收器。Java 是由 C++ 发展来的。它摈弃了 C++ 中一些繁琐容易出错的东西。其中有一条就是这个 GC。而 C#又借鉴了 JAVA。 在老式的 C/C++ 程序中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源,好重新利用这段空间。在 C/C++ 中,释放无用变量内存空间的事情需要由程序员自己来处理。就是说当程序员认为变量没用了,就手动地释放其占用的内存。但是这样显然非常繁琐,如果有所遗漏,就可能造成资源浪费甚至内存泄露。当软件系统比较复杂,变量多的时候程序员往往就忘记释放内存或者在不该释放的时候释放内存了。有了 GC,程序员就不需要再手动的去控制内存的释放。当 Java 虚拟机(VM)或. NETCLR 发觉内存资源紧张的时候,就会自动地去清理无用对象(没有被引用到的对象)所占用的内存空间 —————————————————————————————— UE 中的 Object 对象的回收不需要我们手动去 delete,而是经过垃圾回收流程来销毁不再被引用的对象。即自动清理无用对象所占用的内存空间。
【03】Serialization 序列化 /SaveGame 系统(百度百科)
简单来说就是 Ctrl+S 跐溜一下文件资源就会变成 .uasset 资源。序列化(Serialization)就是将对象的状态信息转化为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,就可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
【04】Config——配置
【3.5】:Source Control 资产管理
【3.6】:USD 资产统一文件格式
- 虚幻官方文档——UE4 中的通用场景描述
- Pixel 官方文档——Introduction to USD
- USD 简介——钟凌霄:Pixar USD 介绍
- Omniverse 简介——NVIDIA 英伟达中国:NVIDIA Omniverse:新型创作方式
- USD 历史简介——VR 陀螺:英伟达 + 元宇宙 = Omniverse,数亿美金花的值吗?
- UE4 USD 实操——UE4 USD Importer 插件使用细则
- Maya USD——Eric Zhang:Maya2022 力推的 USD 是什么鬼
- Omniverse 落地项目——Nvidia Omniverse 可以干哪些有趣的事情?
【3.7】:UE4 小技巧
四、Houdini 程序化 / UE 地形环境
【4.1】:基础
挑简单的精要的辅助学习,抓本质握核心勤操练。
- 更多 Houdini 基础文章收集:演奇:【Houdini】学习
【4.2】:技术解说(大开放世界篇)
- Kerry:《幽灵行动 · 荒野》程序化技术介绍(地图、房屋、桥梁) (创造要基于现实!仔细观察现实!)
【4.3】:河流植被
【4.4】:建模
- 程序猿玩 Houdini (有趣的特效效果,多米诺、分形等)
- AnLe 的 Houdini 学习笔记 (楼房、岛屿、城市道路、湖边小屋等)
【4.5】:地形
- 键盘侠 · 伍德:基于 DF(Distance Field) 的网格体材质混合(处理树木或石头跟地面的柔和度,Dither Temporal AA 节点进行 Pixel Depth Offset 也可以)
- WM 和 Gaea
【4.6】:路网
【4.7】:插件
- fullike:山寨 Houdini:基于 UE4 蓝图的程序化建模插件已上架虚幻商城 (大佬已经在 UE 中实现了程序化建模,有 demo 供体验,超级赞 )
【4.8】:噪声贴图
- 风石:Worley Noise 的 Shader 生成 (Worley 基于 Voronoi 泰森多边形,wor 将控制点放在均匀方格内,vor 任意随机,非常通俗易懂)
- Y.One:WebGL 进阶——走进图形噪声 (Perlin Noise 等)
- Grfxlf:关于噪声…(UE 材质制作噪声贴图,Perlin、Simplex、Worley )
【4.9】:地理艺术知识
- 全历史 (全世界)APP(无聊的时候,大家都刷什么 app 消遣呢?)
五、场景制作
PBR(Physically Based Rendering)——基于物理的渲染NPR(None Photorealistic Rendering)——不基于物理(或非真实感 )渲染,也叫做风格化渲染 Stylistic Rendering。与 PBR 相对。卡通渲染、水墨、油画、素描等都属于 NPR。卡通渲染 Toon Rendering 重在描边和内部颜色,可参考逍遥剑客大佬 Babel 系列
【5.1】:经验总结
【5.2】:NPR 风格化
【5.3】:大世界
- Landmss(可用样条线制作地形)
- World Partition
【5.4】:小场景
【5.5】:植物百科
- 形色 APP
六、数字人类
【6.1】:皮肤
【6.2】:眼球
【6.3】:毛发
【6.4】:布料
影视专用,制作布料解算、毛发解算动画。
【6.5】:高清扫描建模
【6.6】:Maya 脚本开发
角色、毛发等插件自定义,提升工作效率。
七、材质 / 特效
【7.1】:材质
- NPR
- Shadertoy
【7.2】:特效
看月神直播的时候,会用到 Substance Designer 来做特效需要用到的贴图,火冰雾水等等。 我把 Substance 相关大佬的文章单独抽离出来在下面的文章当中。
【1. 经验总结】:
- UE4 Niagara 教程 (Silver Bullet)
- UE4 特效学习笔记 (AKA 冲鸣)
【2. 炫酷】:
- dex:UE4 也能玩音乐可视化 (妥妥的大佬)
- silver bullet:UE4 niagara 教程 – 网格破碎 (大佬特别友好)
【3. 模拟生活】:
- 草地沙漠——
- 雨天(雨滴、水花、闪电)——
- 雪——
- 水体——
- 爆炸火焰——
- 破碎——
- 云层——
- — 实战 ——-
- Grfxlf:Ray Marching 101 (UE4 HLSL)
- MetaBall
- 易水:5,Raymarching in UE4(气泡材质) (UE4 Metaball)
- Volumetric Cloud
- 自定义图片模型云(体积贴图)
- 2D 文字高光效果
- 体积云用到的 Noise 贴图
- 云雾
- — 原理 ——
- 体积雾——
- 距离场 DOF——
- 物理——
八、光照 / 贴图
【8.1】:光照
- – 大家 –
- –Helo–
- – 日天 –
- 工具
- 讲解
【8.2】:贴图
- Color 颜色
- Color Space 颜色空间
- 日天:Artist’s PBR Guide / 淘宝美工的 PBR 白皮书 4——Linear 与 Gamma (效果不对,就是 Gamma 的问题,用 Buffer->Roughness 进行对比,用 PS 直方图进行调试)
- Texture
- Virtual Texture 虚拟纹理
- Render Target 渲染目标
- Flow Map 流动贴图
- Cube Map 立方体贴图
九、渲染 / 图形学
【9.1】:UE 渲染
- 向阳大佬——
【9.2】:图形学相关概念
【学习】:
- GPU——
- 光线追踪——光线追踪把一个场景的渲染任务拆分成了从摄像机出发的若干条光线对场景的影响。
- PBR——
- NPR——
- Raymarching 光线步进——
- SDF 距离场——
- 球谐光照——
- 渲染 (渲染器)——
- 为什么 Unreal 4 引擎能轻易实时渲染出 vray 要花半天才能渲染出的场景? (光线追踪无偏全局光照算法)
- 相关三维其他——
【9.3】:图形学零碎知识
【1.AA Anti-Aliasing 抗锯齿相关】:
【2.AO Ambient Occlusion 环境光遮蔽相关】:
【9.4】:图形学编程实战
【1. 专栏】:
- 猫游记 (专栏文章,从零开始写一个渲染器,三角形绘制、摄像机、剔除、光照等等)
- 从入门到现在 (专栏文章,从零开始用 C++ 实现光线追踪、光栅化等)
- 不知道先生的渲染之旅(专栏文章,C++ 写渲染器)
- 程序媛转 TA 系列 (专栏文章,主要是从零开始用 Direct X 11/12 绘制图形)
- OpenGL 学习笔记 (专栏文章,主要是 Open GL 相关)
- 实时渲染学习笔记 (TC130)
【2. 文章】:
- 光影帽子:【译】拆解 D3D12 和 Vulkan 中的 Barrier(1) (顺着找,还有 23456)
- MaxwellGeng:基于 DirectX 12 的直接实时光照方案 (麦老湿啊,还有很多~)
十、UI
【10.1】:实现
- [中文直播] 第 21 期 | UE4 数据驱动开发 | Epic 大钊 (数据驱动,实现 UI 信息动态变化)
- 童年的琴:第 6 期 UE4 动态读写 DataTable 数据表 (Json 网页和客户端交互会用到)
【10.2】:软件
用 Slate 制作独立的一款软件。
【10.3】:插件
- 嵌入网页 UI——EricSong:UE4 WebUI 插件
【10.4】:原理
- 虚幻 4 渲染编程(UI 篇)【第一卷:Slate 框架综述】 (UE4 的编辑器界面是如何做出来的)
【10.5】:效果
【10.6】:设计
- 怎样提高审美能力? (杂志、网页、报刊设计等跟游戏 UI 设计紧密联系,相互借鉴)
十一、音乐设计
学习制作游戏场景配乐 / 自己制作演唱游戏主题曲(哈哈,好远)
词、曲、编、录、混、母。 作词、作曲、编曲、录音、混音、母带处理。
要成要败自己的因素都是 100%,怪不得别人。就跟一个人做独立游戏一样。你不可能说这个游戏销量不好是你其他同事的各种问题吧(模型不好看、广告没打好、画面不流畅….)。当然跟别人合作也得建立在自己有一定实力的基础上才能谈合作的,要不然谁搭理你啊。
【11.1】音频技术
【相关问答知识】:
【11.2】声乐组器
- 古琴
- 王叔叔与阮姑姑 (那段空城计真喜欢)
- 古琴诊所 (长安十二时辰 唐代装束奏乐 别有一番风味)
- 二胡
- 琵琶
- 音若子兮 (犹抱琵琶半遮面,太美了)
- 杨雨萌琵琶 (琵琶演奏加州旅馆,颇有西域驿站的意像)
- 方锦龙(大师啊)
- 古筝
- 唢呐
- 笛子
- 箫
- 笙
- 埙 (同 熏 xun 音)
- 三弦
- 编钟
- 大鼓
- 快板
- 铜锣拨镲
- 葫芦丝
- …….
- 混音扒带
【11.3】推荐声乐 APP
- GarageBand 库乐队——随时随地创作音乐
- Notetech 音壳——学习乐理基础知识(视频很通俗易懂),还有视唱练耳等。
- SimplyPiano——学习弹奏键盘,一些基础的乐理知识 (通关完 Simply Piano 全部课程是什么感觉?通关完又可以达到什么演奏水平?)
- Musescore——五线谱打谱
- Midiculous——电脑 MIDI 直连显示按键及音符 (音准自己怎么练?)
放张嵩哥镇馆!
十二、商业项目
【12.1】汽车可视化
【视频】:
【文章】:
【12.2】数字孪生
【1. 资料】:
- [中文直播] 第 23 期 | 如何通过 UE4 打造一个真实完整的地球 | 51WORLD 吴亚光 (数字孪生地球,在虚幻中做一个一比一的上海,51World 官网)
【2. 模型重建】:
- 图新云 GIS 账号:国产免费高配版 “谷歌地球”,地形分析用这款软件秒杀谷歌地球 (历史朝代地图、省图、道路图、气象图、各家的卫星地图。还能画三维山体等高线、测距离等等。)
- 高德开放平台 | 高德地图 API (个性化地图 / 三维模型参考)
- 兰图绘——方便地图标注(点、线、面等)
【无人机建模】:
- 飞哥:用无人机做炫酷的 3D 模型,4 分钟快速上手! (实现过程)
【12.3】MR 虚拟制片
- 真人角色 + 虚拟场景(官方摩托车视频)
- 真人角色 + 虚拟角色 + 真实场景(类似 AR 了,根 AE 制作特效一样)
自强不息,无限进步!日拱一卒,功不唐捐!
下次更新不知道是什么时候了~ > 本文由简悦 SimpRead 转码