- 博客(41)
- 收藏
- 关注
原创 GAMES104:17 游戏引擎的玩法系统:高级AI-学习笔记
优点:HTN 和 BT 非常相似,但是是BT的高阶版本,但HTN更加灵活、符合人的直觉、也更易于设计师进行掌握;可以带着目的预测,任务计划也更长程缺点:由于用户行为不可预测,因此task很容易失败或满足不了precondition;并且world state与任务effect影响对设计师是挑战(比如忘记设置某个条件;或者如果 task 链路过长但是环境变化很快,那么 AI 的行为就会变化很快,看上去振动一样)
2024-10-22 16:38:34 1706
原创 GAMES104:16 游戏引擎的玩法系统:基础AI-学习笔记
再找到每个区域距离边缘最远的中心点,用洪水算法向外扩散,直到覆盖所有区域,在通过进一步处理(比如连通区域变为凸多边形之类,比较复杂),这就是我们的生成的Mesh了。原理是通过计算一个代价函数:f = g(从原点已经走过的路程的代价,一般累计路程距离) + h(到终点还有多远的代价,一般用欧拉距离或x+y),来逐步寻找最优下一步的路径(按照网格或mesh的划分),原理有些类似梯度下降。用的最普遍,是一种启发式算法,通过有选择的节点搜索找到最短路径,因此更快,常用于游戏或机器人导航。
2024-10-09 18:31:55 1082
原创 GAMES104:15 游戏引擎的玩法系统基础-学习笔记
Event Type + Event Argument(配置)将新事件新编译成的C++代码当成 DLL,加入到系统中(UE)上层采用 C# 语言,方便动态挂接和扩展用脚本语言。
2024-09-19 17:27:42 1433
原创 GAMES104:14 引擎工具链高级概念与应用-学习笔记
但是在增加逻辑后,接口、工具都需要有相应的更新,工作量是非常大的,那就需要用到反射Reflection(高级语言基本都支持,如java和c#)。「反射允许程序在运行时检查、修改和操作其自身的结构和行为」即引擎实现功能后,通过反射告诉工具有哪些开放类和接口可以访问,这时在蓝图中创建对象时,其接口参数全部可以展现。游戏做的越来越像电影,Storytelling就变得很重要,下图的时间线在ue里叫Sequencer,相当于电影导演的统筹安排,游戏中一些过场动画就是这样做的。这个过程中涉及到很多工具的实现。
2024-09-11 18:55:56 674
原创 GAMES104:13 引擎工具链基础-学习笔记
我们需要找到这些工具通用的部分,因为任何复杂的结构都可以由简单的building blocks构成,我们需要一个标准的语言去描述它们:Schema。工具链是衔接不同岗位、软件之间的桥梁,比如美术与技术,策划与美术,美术软件与引擎本身等,有Animation、UI、Mesh、Shader、Logical 、Level Editor等等。在游戏中,很多东西会重复出现,为了节省内存,我们需要资产引用:只存储引用,通过引用实例化(Instance)重复对象(Prefab),这是资产系统和工具链最核心的底层逻辑。
2024-09-11 17:20:44 838
原创 GAMES104:12 游戏引擎中的粒子和声效系统-学习笔记
如果粒子在下一帧就死了,那就把其序号移入Dead List,活的保留,这样就得到了下一帧需要渲染的粒子列表(这种操作本来在gpu中的batcher中不容易实现,但computeshader使原子级操作变得可实现)。三维空间中有很多声源,受位置、距离等因素影响,在游戏制作时需要一个“Listenner”来模拟收音,有位置速度(需要模拟多普勒效应,尤其是有飞机的游戏)朝向的维度,如果是第三人称游戏,一般在人物和相机中间。目前做的比较好的事UE的Niagara粒子系统,有一百多万行代码。
2024-09-05 15:26:52 1154
原创 GAMES104:10+11游戏引擎中物理系统的基础理论算法和高级应用-学习笔记
因此两个凸包是否有交叠(碰撞)的问题就转换为了计算其闵可夫斯基差是否包含原点,那怎么计算呢,见下边GJK算法?
2024-09-01 23:02:46 1133
原创 GAMES104:08游戏引擎的动画技术基础-学习笔记
人类祖先就喜欢通过画画试图把动态的人物画下来,近代发现了视觉残留(1/24秒),奠定了动画视觉实现的基础早期尝试:跑马灯、定格动画、早期动画电影(一帧一帧画的)等未来方向:实时渲染动画、电影(Zafari)
2024-08-16 18:57:09 1262
原创 GAMES104:07游戏中渲染管线、后处理和其他的一切-学习笔记
老师课前寄语:帮助大家建立主流方法概念和知识体系,公式看不懂也没关系,重要的是思想,以便于未来举一反三。(比如老师上学时读论文,可能一天只能读一个算法都读不懂,但如果有人能提前指出这篇论文的核心点是123的话,读论文就能效率很多,本门课程就起到一个知识总结的作用)
2024-08-16 15:05:54 1117
原创 GAMES104:06游戏中地形大气和云的渲染1-学习笔记
先来一张课程开始的美图——Mother Nature;环境包含了天空云系统、植被、地形(Terrain)
2024-07-31 17:44:41 1037
原创 GAMES104:04游戏引擎中的渲染系统1:游戏渲染基础-学习笔记
游戏引擎的设计与硬件架构密不可分,要做好一个图形程序,就得了解显卡架构游戏引擎的一个核心问题是Mesh、Materials等数据之间的关系,submesh就是一个很好的解决方法大师:do nothing—用Culling算法使得引擎绘制尽可能少的东西,CPU、GPU做的事越少越好GPU代替CPU计算–GPU Driven。
2024-07-02 18:32:32 1242
原创 GAMES104:03如何构建游戏世界-学习笔记
以上物体统称为游戏对象(Game Object,GO)一个游戏物体的行为可以分为属性(Property)和行为(Behaviour),比如他的外形(Shape)、位置(Position)、(Capacity of Battery)就是属性,而移动(Move)、巡逻(Scout)就是行为。通过对象的派生和继承可以更方便的制作对象。但是很多时候游戏逻辑非常复杂,于是现代引擎就引进了**组件(Component)**的形式来定义和设计对象(类似于游戏内自定义的思路)。比如定义一个组件的Base基类,再由此派生出各
2024-06-11 16:16:31 867
原创 GAMES104:02引擎架构分层-学习笔记
用户层工具层(Tool Layer):编辑器、工具界面功能层(Function Layer):渲染Rendering、动画Animation、物理Physics、相机Camera和实现游戏性的脚本Script、状态机FSM、AI等功能模块资源层(Resource Layer):各类图片、动画、音频资源加载核心层(Core Layer):核心功能如内存管理、容器分配、数据计算、多线程处理等平台层(Platform Layer):对接不同游戏平台、主机和硬件。
2024-06-04 15:21:18 761
原创 【图形基础】unity compute shader
不过随着非图形计算的需求增大,出现了GPGPU(General Purpose GPU,GPU通用计算)业务场景,图形硬件开始引入一种统一的计算单元来处理vertex和pixel,不需要经过图形流水线而是直接用gpu并行计算。早期的gpu计算中,顶点着色和片元着色完全独立,顶点着色器不能读取纹理,开发者需要按照算力分配vs和fs的复杂度来保证效率,并且图形还需要经过一系列图形管线处理。在unity的中右键-Create-Shader-Compute Shader创建,后缀为 .compute。
2024-03-12 17:31:47 1002 2
原创 unity MonoBehaviour 生命周期+编辑器UnityEditor学习
它源自基类MonoBehaviour,以确保此脚本将在游戏循环中运行,并具有对某些事件作出反应的附加功能。通过AddItem()添加列表元素。"Tools/菜单选项"
2023-06-06 16:23:08 2242
原创 games202:六,实时光线追踪RTRT:Temporal Filtering、联合双边滤波、Outlier Removal、SVGF、RAE
老师更喜欢思考理论算法,而不是工程实现----放弃思考等于自杀;但实现不重要吗?NO!非常重要(相信我们大多数人受自身硬软件限制都更适合做应用,而不是科研)SDF贴纹理透明物体和order-independent transparency粒子渲染后处理生成和应用随机数、蓝噪声(blue noise)Foveated rendering比如VR中人眼看的地方投入更多算力ReSTIR,Neural Radiance Caching等先进技术。
2023-03-29 15:29:12 952
原创 MacOS unity Package Manager文字显示错误,变成方块的解决办法
先打开Project Settings-Player设置页,再按照下图把红色框取消勾选,蓝色框里加上opengl这项。应用,重启工程,好了,md。狗unity搞这么个bug查了老半天,解决如下。
2023-03-17 19:26:39 1013
原创 games202:五,基于物理的材质:Microfacet、Kulla-Conty估计、LTC、NPR
今天讲我们熟悉的PBR啦,PBR实际包含材质、光照、相机(透镜成像)、光线传播等等,一般说起来就是指材质。
2023-03-14 15:17:47 732 3
原创 PBR中BRDF常用的各类法线分布函数、几何函数总结(unity)
Dph1πα2n⋅h2α2−2Dphπα21n⋅hα22−2at和ab分别是沿切线(tangent)方向t和副法线(binormal)方向b的粗糙度,如果at=ab,则回到了各向同性。「注意网上shader一般会将切线方向t写作X,副法线(binormal)b方向写作Y」「完全copy毛老师」Blinn-Phong不一定比GGX更省性能GGX计算可以用half带图float,但half计算存在两个问题一是1−No。
2023-02-27 16:59:28 1004 1
原创 games202:四,实时全局光照Real-Time Global Illumination:RSM、LPV、VXGI、SSAO、HBAO、SSDO、SSR
求p点切线T求 t(θ)的sin随机一个方向沿着该方向以一定间隔进行采样得到若干S(间隔可以加个随机offset以避免最后ao为带状)求每个S的sin,找出最大的求出ao重复3-6步骤(一般四个方向),求平均ao质量接近离线渲染,且由于计算周围近物的反射贡献可以从像素颜色提取,而不是ssao那样假设为定值,因此ssdo可以有更多颜色表现。从view视角判断可见性不准确,并且没有考虑远处间接光照的贡献(理论上应该和ssao结合使用才对)。
2022-12-30 11:42:29 878
原创 unityURP管线学习+后处理
ForwardRenderer继承于ScriptableRenderer,它维护了一个ScriptableRenderPass的列表,在每帧前王列表里新增pass,然后执行pass渲染画面,每帧结束再清空列表。ScriptableRenderer里的核心函数Setup和Execute每帧都会执行,其中Setup会把要执行的pass加入列表,Execute将列表里的pass按渲染顺序分类提取并执行。也就是说可以自己随意设定上述谁先谁后的渲染流程,以满足定制化需求。主要是将需要的pass加入渲染队列中。
2022-10-27 11:34:51 4801
原创 games202:三,实时环境光照IBL、PRT、SH
两种方法都是通过用SH描述的预计算,将着色过程转化为两个向量的点乘,性能提升NN倍。对于可见性计算方式,可以从着色点向四周发射采样光线,并且是预计算(假设景物场景)。不仅可以计算带阴影的环境光照,还可以在多次bounce的间接光场景下做预计算在天空、日出等场景下也可以用预计算参与部分计算,UE4在skylight上的实现原理参考Disney原则的PBR在UE4中的应用这篇文章闫老师认为prt在目前光追普及的情况下甚至会有更多表现空间,这两年会发展。...
2022-07-29 14:03:51 1510
原创 Unity的gamma矫正、颜色空间及其转换的问题
升级urp后发现光照效果与原来不一样了,查询资料才发现这里有个坑!故记录一下。简单说下原理:unity提供了两种颜色空间,Gamma Space和Linear Spaceunity在内置管线中默认是Gamma Space,这是因为线性空间需要支持OpenGL ES 3.0,而部分手机和苹果机不支持;但在URP管线中默认是Linear Space(坑!)。UE4默认是线性空间,2017以后maya默认线性空间,贴图软件比如sp,sd都是线性空间。内置管线默认是Gamma Space,在gamma0.45空间上
2022-07-06 14:10:42 4624
原创 unity URP实现PBR shader
unity URP实现PBR shader一,整体结构二,PBR部分之前到处找资料参考,复制粘贴了一个文章unity渲染管线及升级URP出来,实际操作的时候却发现作用较小。今天重新写一个URP实现PBR的文章,就基于前边写的基于物理渲染-unity实现PBR shader + 多光源 + 半透明物体和阴影的基础补充吧。一,整体结构第一行的shader命名和Properties部分不用变。Tag处增加"RenderPipeline"=“UniversalPipeline”,表示这个是urp的s
2022-05-31 17:10:14 5424
原创 unity渲染管线及升级URP
unity渲染管线及升级URP一,unity渲染管线简介二,通用渲染管线URP三,shader升级URP1,Builtin RP和URP中内置Shader 的对应2,总体结构3,include4,光照模式LightMode5,变体Variants6,预定义宏辅助宏阴影贴图纹理采样器声明光照、雾7,辅助函数变换函数通用辅助函数向前渲染函数屏幕空间顶点光照深度其他7,内置变量8,后处理参考资料一,unity渲染管线简介Unity引擎的渲染管线主要分为"渲染核心库"与"渲染策略"两个部分, “渲染核心库”是U
2022-05-16 17:21:16 15629
原创 基于物理渲染-unity实现PBR shader + 多光源 + 半透明物体和阴影
基于物理渲染-unity实现PBR shader + 多光源 + 半透明物体和阴影一,PBR光照1.1直接光照1.1.1直接光照漫反射1.1.2直接光照镜面反射1.2间接光照1.2.1间接光照漫反射1.2.2间接光照镜面反射二,多光源处理+阴影三,半透明物体3.1 裁剪半透明3.2 混合半透明3.2.1 关闭深度写入的方法3.2.2 开启深度写入的方法四,半透明物体阴影4.1 半透明物体产生半透明阴影4.2 半透明物体接收阴影参考资料一,PBR光照pbr贴图知识里学习了次世代的两种流程,金属度粗糙度流
2022-05-09 14:20:06 2379
原创 games202:二,实时阴影Shadow Mapping、软阴影PCF、PCSS、VSSM、MSM、SDF + 作业1
games202:实时阴影Real-Time Shadows一,Shadow MappingShadow Mapping的问题自遮挡自遮挡解决办法锯齿化走样二,Shadow Mapping Math三,软阴影3.1 PCF(Percentage Closer Filtering)3.2 PCSS(Percentage closer soft shadows)四,VSSM(Variance Soft Shadow Mapping)4.1 加速PCSS-step34.1.1 SAT-Summed Area Ta
2022-03-16 14:02:00 1397 1
原创 games202:一,导论----课程内容和不涉及的内容(mark)+ 作业0问题
game202:一,导论----课程内容及不涉及内容一,课程主要内容和几个模块The Real-Time High-Quality Rendering Class课程4大模块课程主要涉及内容课程不涉及内容(要另外学的内容)Tips一,课程主要内容和几个模块The Real-Time High-Quality Rendering ClassReal-Time----实时渲染:30 fps,vr等特殊场景:90 fps,interactive rendering(交互绘制):肉眼能看到在刷新High-
2022-01-19 18:43:17 2967
原创 games101:作业7+Microfacet微平面理论+cook-torranceBRDF方程计算+作业7拓展
game101:作业7+微平面理论+作业7拓展一,作业71.1 代码部分1.2 加入多线程二,Microfacet微平面理论2.1 BRDF==Material2.2 Lambertian漫反射部分2.3 cook-torrance镜面反射部分2.3.1 菲涅尔方程(Fresnel Rquation)2.3.2 几何函数(Geometry Function)2.3.3 法线分布函数(Normal Distribution Function)三,作业7拓展题参考资料一,作业71.1 代码部分作业
2022-01-14 09:58:38 1052
原创 games101:八,辐射度量学+BRDF和渲染方程概念导论+蒙特卡罗积分法、路径追踪法
game101:八,辐射度量学+BRDF和渲染方程一,辐射度量学1.1 辐射能量(Radiant energy)与辐射通量(Radiant flux/power)1.2 辐射强度(Radiant intensity)1.3 辐射照度(Radiant irradiance)1.4 辐射亮度(Radiant radiance)二,双向反射分布函数BRDF(Bidirectional Reflectance Distribution Function)和渲染方程2.1 BRDF2.2 渲染方程一,辐射度量学在
2022-01-04 16:54:36 1343
原创 games101:七,加速光线追踪(AABB、BVH、SAH)+ 作业6
game101:七,加速光线追踪(AABB、BVH、SAH)+ 作业6一,轴对齐包围盒(Axis-Aligned Bounding Box)-AABB二,Bounding Volume Hierarchy-BVH三,Surface Area Heuristic-SAH作业6在光线追踪中,我们不仅要计算多次反射折射,还要计算每个光线的每个接触点与模型的每个三角形是否相交和相交点,计算量巨大,因此学习本节“加速光线追踪”算法来加速这个过程。一,轴对齐包围盒(Axis-Aligned Bounding Box
2021-12-31 13:49:58 1654
原创 games101:四,着色频率、纹理贴图(放大插值、缩小mipmap)+ 作业3
game101:四,着色频率、纹理贴图(放大插值、缩小mipmap)一,着色频率1,Flat Shading----逐三角形2,Gouraud Shading----逐顶点3,Phong Shading----逐像素3.1重心坐标3.2透视矫正插值(Perspective-Correct Interpolation)3.3模型变换中的法线向量二,纹理贴图1,小纹理放大----双线性插值2,大纹理缩小----mipmapmipmap----快速的、近似的、方形的范围查询三线性插值ripmap----各向异性
2021-12-22 15:53:54 1071
原创 games101:二,视图变换(projection、 view、 model)+ 作业1
game101:二,视图变换(projection、 view、 model、camera)视图变换(Viewing Transformation)模型变换(modeling tranformation)视口变换(viewport transformation)投影变换(projection tranformation)正交投影变换(Orthographic Projection Transformation)透视投影变换(Perspective Projection Transformation)作业1
2021-12-17 14:58:07 697
原创 xcode无限闪退,报错ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources…………
问题描述:xcode无限闪退,报错ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources………… 解决方案:1,先删除项目文件下的 xcuserdata:.xcodeproj右键显示包内容->.xcworkspace右键显示包内容->xcuserdata2,删除DerivedData:/Users/yuxue/Library/Developer/Xcode/DerivedData...
2020-12-30 10:07:51 1206
原创 Xcode12-代码变白联想功能失效解决方案
Xcode12-代码变白联想功能失效解决方案File->Project Settings->building system->Legecy building system完成后重启xcode
2020-12-03 11:12:06 683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人