<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kuangben2000的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kuangben2000</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kuangben2000]]></copyright><item><title><![CDATA[（个人学习用）球谐光照、PRT、LPV、VXGI]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145702870</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145702870</guid><author>kuangben2000</author><pubDate>Tue, 18 Feb 2025 12:35:25 +0800</pubDate><description><![CDATA[球谐函数是系列定义在球面上的二维函数（一个定义在球面上的函数可以看作是从球面上的点到某个数集的映射）。图的最左边标明了球谐函数的阶数，第 l 阶球谐对应有 2l+1 个基函数，前 n 阶一共有 n2 个基函数，而图的最下边 m 则对应了球谐函数的序号，第 l 阶对应的序号范围为 [−l,l]]]></description><category></category></item><item><title><![CDATA[资源管理：重塑 UE 的包拆分方案]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145387975</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145387975</guid><author>kuangben2000</author><pubDate>Tue, 28 Jan 2025 16:56:34 +0800</pubDate><description><![CDATA[基于 HotChunker 的包管理方案，是一种强大和精确地包管理机制。能够在精确拆分资源的同时，保证配置的灵活性，并且支持强大的 Commandlet 能力。能够方便地非侵入式扩展流程和进行资源审计。而且，该方案是非侵入式集成，无需对默认的打包过程做任何处理也不需要修改引擎，整个实现都是插件化的，只要启用插件后拉起 UE 默认的打包就会自动执行。]]></description><category></category></item><item><title><![CDATA[mmap 随笔]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145310548</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145310548</guid><author>kuangben2000</author><pubDate>Wed, 22 Jan 2025 20:45:55 +0800</pubDate><description><![CDATA[mmap 会同时映射到相同物理内存，如果相同物理内存内容发生变化，内容会同时写入文件，并且其他进程映射的被些的文件映射内容，也是会发生改变的，因为映射到相同一段物理内存。]]></description><category></category></item><item><title><![CDATA[mmap：其他进程对先前以只读方式映射的文件进行写入的影响]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145310538</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145310538</guid><author>kuangben2000</author><pubDate>Wed, 22 Jan 2025 20:45:01 +0800</pubDate><description><![CDATA[如果我在进程A中关闭底层文件描述符，并且另一个进程稍后对该文件进行写入（不使用mmap，只是在shell中使用>将stdout重定向到文件），那么进程A的mmap内存是否会受到影响？如果我在进程A中关闭底层文件描述符，关闭文件描述符不会改变任何东西。所以听起来 mmap 不是读取（并在内存中保存）一个文件的当前状态的正确工具，当该文件可能在内存被进程完全读取之前被其他进程修改时，这个进程创建了映射。]]></description><category></category></item><item><title><![CDATA[GAMES202 高质量实时渲染笔记03 环境光照与预计算 -环境光与split sum]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145235143</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145235143</guid><author>kuangben2000</author><pubDate>Sun, 19 Jan 2025 00:07:55 +0800</pubDate><description><![CDATA[如果使用外接立方体包住记录环境光的单位球面，你会发现，如果我们从球心发射一道光线，这道光线会分别与球面和立方体表面有一个唯一的交点，也就是说，球面上的点和立方体表面的点有一个一一对应的映射关系。一般来说，会选择不同尺寸的滤波核，对环境光贴图进行不同层次的滤波，当使用时，可以根据BRDF的lobe的实际大小在对应层次的滤波结果上查询（如果lobe的大小没有对应层次的预滤波结果，可以在两层之间进行三线性插值，参考MIPMAP的做法）。因为采样的结果就是平均之后的结果，所以上图左右两部分是近似相等的，即。]]></description><category></category></item><item><title><![CDATA[GAMES202 高质量实时渲染笔记Lecture08：Real-Time Global Illumination (In Screen space)]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145234031</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145234031</guid><author>kuangben2000</author><pubDate>Sat, 18 Jan 2025 22:31:22 +0800</pubDate><description><![CDATA[https://zhuanlan.zhihu.com/p/381782999本文是闫令琪教授所教授的Games-202:Real-Time High Quality Rendrting学习笔记的第八讲 Real-Time Global Illumination (In 3D)，本人属于新手上路暂无驾照，有错误欢迎各位大佬指正.本节课内容:LPV:在3D空间中去传播光线,从而利用它做出间接光照从而实现GI.LPV历史:最早是在Cry Engine 3中被引入的,其初衷是用来做Crysis系列(孤岛危机).如果]]></description><category></category></item><item><title><![CDATA[延迟和预测回滚（GAS）]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145181491</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145181491</guid><author>kuangben2000</author><pubDate>Thu, 16 Jan 2025 13:39:21 +0800</pubDate><description><![CDATA[在网络游戏开发中，无法避免的问题就是网络延迟，而为了降低网络延迟带来的感受，常使用一种通用方案就是预测回滚，这篇文章主要记录虚幻引擎中GAS框架是如何实现能力（GA）的预测回滚GAS预测的实现正在尝试解决的问题"我可以这样做吗"，那些能够预测"回滚"如何回滚预测失败时已经产生的表现"重做"如何避免重做带来的负面表现，例如我们在客户端做了预测但是这个操作也从服务器上复制下来了"完整性"如何确保我们真正预测了所有情形"依赖"如何管理依赖性预测和预测时间链。]]></description><category></category></item><item><title><![CDATA[虚幻插件GAS分析02-1 技能的网络同步之预测与结束]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145181406</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145181406</guid><author>kuangben2000</author><pubDate>Thu, 16 Jan 2025 13:34:43 +0800</pubDate><description><![CDATA[代码中常出现Predict字样的东西，带这个字样基本会跟预测有关。GAS中的技能激活预测(仅Client可以先激活技能，同时请求Server激活技能Server会判断一下激活技能合不合理，如果合理，Server也激活，否则Server就不激活Server会把判断结果回复给ClientClient根据Server的判断结果处理，如果不合理，就结束技能。]]></description><category></category></item><item><title><![CDATA[UE4的GAS探究三：弱网延迟与预测Prediction]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145180898</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145180898</guid><author>kuangben2000</author><pubDate>Thu, 16 Jan 2025 13:05:14 +0800</pubDate><description><![CDATA[GAS内置了预测系统，预测功能可以有效融合UE的基本架构，比如序列化，反射，网络RPC，属性复制，ACTOR与网络结构融合等，本身简化并解脱了用户对于if (权威服务器) Do X；else Do预测版X；烦锁的代码编写需求，这一流程基本完全隐藏化透明化了，对于高质量，低延迟，快响应要求的游戏有着巨大的优势。技能预测触发事件预测GamepalyEffect预测，（不是全部），当然也就是里面真正效果，比如属性修改预测，GamepalyTag预测，Gameplay Cue行动画蒙太奇。]]></description><category></category></item><item><title><![CDATA[聊聊UI分辨率分离与线性空间下的GammaUI]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/145148693</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/145148693</guid><author>kuangben2000</author><pubDate>Tue, 14 Jan 2025 22:06:26 +0800</pubDate><description><![CDATA[这个基本就是工程问题, 处理完善管线中相关的逻辑代码就好.其二,]]></description><category></category></item><item><title><![CDATA[浅谈UGUI的渲染机制]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/144633868</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/144633868</guid><author>kuangben2000</author><pubDate>Sat, 21 Dec 2024 17:38:33 +0800</pubDate><description><![CDATA[从上面的步骤可知，因为sprite的顶点数据更复杂，在第一步和第二步的效率会比image低，image会有更多的fragment shader的计算因为是针对每个像素的计算，sprite会裁剪掉透明的部分，从而减少了大量的片段着色器运算，并降低了overdraw，sprite会有更多的vertex shader的计算。我们说的渲染层级高，意思就是会盖在物体上面，也是最后一个被渲染的那个。Sprite会根据显示内容，裁剪掉元素中的大部分透明区域，最终生成的几何体可能会有比较复杂的顶点结构。]]></description><category></category></item><item><title><![CDATA[【Unreal从0到1】【第二章：引擎渲染管线分析】2.3，移动端渲染管线特性分析]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143928068</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143928068</guid><author>kuangben2000</author><pubDate>Wed, 20 Nov 2024 23:24:19 +0800</pubDate><description><![CDATA[要实现暗部没那么死黑，整体亮度控制在一个比较亮的范围内，间接光反弹肯定要很好，间接光亮了，还要考虑AO能不能把漏光的地方压下去，烘焙的AO压肯定比较暴力（容易出现亮部调整起来没那么明显，AO很微弱，但是暗部调整起来又幅度比较大）就很难均衡亮部与暗部的层次，就又回到了是否使用SSAO的问题上。首先是一堆宏，可以对比下不同版本间功能支持的异同，不过对比了也没用，看样子Epic从4.24，25开始才认真对待起移动端的开发，不信可以去看4.23及以前的版本，PC端各种牛逼特性层出不穷，移动端要啥没啥。]]></description><category></category></item><item><title><![CDATA[【UE】UE中的Shadow技术]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143680323</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143680323</guid><author>kuangben2000</author><pubDate>Mon, 11 Nov 2024 13:03:09 +0800</pubDate><description><![CDATA[bDrawingStaticMeshes分支，因此导致了两者的结果不一致，而之所以会存在这种区别，是因为两者的PrimitiveSceneInfo->StaticMeshes数据不同，NestedCube具有这个数据，而角色这个数据是空的，这个数据对应的是StaticMesh的数据，角色添加的是SkeletalMesh，因此这里是空的，那么StaticMesh就不能打开Self Mesh了吗？另外，由于阴影的计算会考虑遮蔽程度，因此可以十分容易的得到较好的软影效果，右下角的图可以很好的说明这个问题。]]></description><category></category></item><item><title><![CDATA[URP源码阅读笔记：DepthOnlyPass]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143679453</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143679453</guid><author>kuangben2000</author><pubDate>Mon, 11 Nov 2024 12:37:46 +0800</pubDate><description><![CDATA[ForwardRenderer.Setup方法中，当requiresDepthPrepass变量为true的时候，才会将m_DepthPrepass填入m_ActivePassQueue中。当然，这里只是测试，正常项目中不要修改_CameraDepthTexture名字。shader的功能非常简单，就是采样深度贴图，然后把它的值当成color输出。越靠近摄像机的位置depth越小，颜色越黑，越远的地方，深度值越大，颜色越白。写一个最简单的shader采样_CameraDepthTexture。]]></description><category></category></item><item><title><![CDATA[【游戏开发面经汇总】- 图形学基础篇]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143658282</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143658282</guid><author>kuangben2000</author><pubDate>Sun, 10 Nov 2024 11:41:51 +0800</pubDate><description><![CDATA[图形学知识，对于图形开发、游戏引擎开发和技术美术岗位几乎是必考的知识点，对于客户端开发岗位来说，也是经常考察的进阶知识。不可否认，图形学的确是一个具有一定门槛、难度较高的领域，很多时候，我们面试的评价，往往也是是通过图形学的掌握程度来划分的。因此，掌握图形学基础知识，无论对于游戏开发的哪个岗位都是具有重要意义的。]]></description><category></category></item><item><title><![CDATA[微表面BRDF总结]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143653139</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143653139</guid><author>kuangben2000</author><pubDate>Sat, 09 Nov 2024 23:32:56 +0800</pubDate><description><![CDATA[Mintbeer神秘链接 Mintbeer.top​关注他3 人赞同了该文章​目录收起介绍符号单位表一、微表面理论基础3.Masking Function的约束条件二、Microfacet-Based BRDFs1.可见法线的分布2.BRDF的构建3.BRDF with Specular microfacets的构建4.BRDF with diffuse microfacets的构建三、常用的基于物理的Masking函数四、拉伸不变形1. 遮挡概率的拉伸不变型。]]></description><category></category></item><item><title><![CDATA[UE5渲染管线--Lights通道与光照渲染]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143652816</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143652816</guid><author>kuangben2000</author><pubDate>Sat, 09 Nov 2024 23:00:09 +0800</pubDate><description><![CDATA[UE5渲染管线--Lights通道与光照渲染26 人赞同了该文章前言：本篇是继之后，渲染管线系列之Lights通道篇。]]></description><category></category></item><item><title><![CDATA[多光源渲染方案 - Light Culling & Light Volume]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143534148</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143534148</guid><author>kuangben2000</author><pubDate>Tue, 05 Nov 2024 23:21:15 +0800</pubDate><description><![CDATA[1.多光源渲染方案 - Light Culling & Light Volume2023-02-21收起目录。]]></description><category></category></item><item><title><![CDATA[剖析虚幻渲染体系（17）- 实时光线追踪（03）]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143464583</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143464583</guid><author>kuangben2000</author><pubDate>Sun, 03 Nov 2024 13:42:21 +0800</pubDate><description><![CDATA[/ 根据不同类型的光源判断是否可以开启光追阴影。以上可知，屏幕空间降噪（SSD）过程非常复杂，涉及诸多Pass：压缩元数据、注入、重建、预卷积、拒绝预卷积、时间累积、历史卷积、空间累积等。此外，UE硬件光追的反射、AO、半透明等特性也杂糅在Lumen当中，形成了相辅相成、耦合性较高且极其复杂的渲染体系，从而呈现出精彩纷呈的电影级别的实时渲染画质。本篇主要阐述了UE的硬件光线追踪的渲染流程和主要算法，使得读者对此模块有着大致的理解，至于更多技术细节和原理，需要读者自己去研读UE源码发掘。]]></description><category></category></item><item><title><![CDATA[剖析虚幻渲染体系（04）- 延迟渲染管线（1/3）]]></title><link>https://blog.youkuaiyun.com/kuangben2000/article/details/143464557</link><guid>https://blog.youkuaiyun.com/kuangben2000/article/details/143464557</guid><author>kuangben2000</author><pubDate>Sun, 03 Nov 2024 13:40:45 +0800</pubDate><description><![CDATA[的提出是为了解决传统延迟渲染在屏幕空间的光照计算阶段的高消耗问题，在生成GBuffer时，额外生成ddx和ddy，再利用Compute Shader对某个大小的分块找到变化不明显的区域，使用低频着色（几个像素共用一次计算，跟可变速率着色相似），从而提升着色效率，降低消耗。但是，也存在一些缺点，如需多一个通道来绘制几何信息，需要多渲染纹理（MRT）的支持，更多的CPU和GPU显存占用，更高的带宽要求，有限的材质呈现类型，难以使用MSAA等硬件抗锯齿，存在画面较糊的情况等等。2.4 将光源赋给Tile。]]></description><category></category></item></channel></rss>