恶毒的狗

Bad Fat Dog

关于URP的HDR格式

一个Bug 昨天发现一个神奇的bug,Scene视图和Game视图下,体积光的强度居然有很大差异,如下图: 并且这个bug只在我勾选了 HDR 后才会出现。 仔细检查后发现,URP 管线下勾选 HDR 后,Scene相机 和 Game相机 的 ColorBuffer格式 居然是不同的,具体差别如下: Scene Camera: ARGBHalf Game Ca...

华为手机关于LOAD_TEXTURE2D的Bug

一个华为手机专属Bug 今天又发现了一个 华为手机 专属bug,如下图: 原本 LUX 表现正常的水在我的 华为 Meta 30 上表现呈 条带状。 从表现上看跟 深度计算 相关,定位了一下原因,发现问题代码如下: 1 2 3 4 5 #if defined(SHADER_API_GLES) float refractedSceneDepth = SAMPLE_DEPTH...

关于RenderFeature重复计算的一个Bug

径向模糊的掉帧问题 渲染迁移到 URP 的工作基本差不多了,不过昨天跑包的时候遇到一个问题,在播放 径向模糊 效果的时候,帧率 下降得很厉害,并且UI也跟着场景一起模糊了,如下图: 这个问题在原先的 标准管线 下并不存在。 原因 简单检查了一下原因,发现 CameraStack 上的所有相机都执行了径向模糊这个 RenderFeature,包括 UI相机,我们 CameraSta...

关于自定义shader的自发光烘培

一个bug 最近正在做交接工作,被问到了一个问题,如下图: 左边这个球用的是Unity内置的Standard shader,开启了红色的自发光。可以看到,烘培后,自发光照亮了地面。 右边这个球用的是我们自定义的shader,在 Meta Pass 我们同样设置了 Emission,并且为了调试,我们把 Albedo 设置成了纯黑色,并且简化了自发光的计算,但是烘培的结果,自发光...

关于Mali GPU的浮点数异常

一个华为手机上的Bug 今天查一个 辉光抖动 的问题:我们一个PBR的摩托车,在开辉光后高光处闪烁的厉害,并且这个闪烁只出现在华为手机上(Mali GPU)。 用RenderDoc分析了一下,闪烁处的高光值已经逆天了,如下图: 由上图可见,红框标记的颜色值达到了 65504,由于我们开启了 FP16 HDR,这里的 65504 刚好是 FP16 能表示的最大值。 0 1...

关于反射探头的实时反射

用反射探头实现镜面反射 之前看到过一个日本人写的文章,关于如何使用Unity的反射探头来实现地板的镜面反射效果。 文章地址:http://nn-hokuson.hatenablog.com/entry/2016/10/17/202135。 核心代码很短,主要是根据下图所示实时更新反射探头的位置: 先贴一下位置计算的代码: 1 2 3 4 5 6 7 8 9 10 11 12 1...

TOD的云层渲染和Flare遮挡

关于TOD 前项目在模仿塞尔达的昼夜变换效果时用过 Time Of Day 这个Unity插件。 本文记录一下 TOD 的云层渲染方式,以及如何让 TOD 的云层遮挡太阳光的 Flare。 TOD渲染顺序 以上图的白天为例,TOD的主要渲染顺序如下: 绘制太阳 (Background+30) 绘制大气层 (Background+50) 绘制云层 (Geometry...

用ShaderGraph实现卡通的沙滩泡沫效果

一个卡通的水 本文用 ShaderGraph 来模仿一下 The Illustrated Nature 插件中水的 泡沫效果,原效果如下: 下图是我用 ShaderGraph 模拟的效果: 代码我丢在了github上,地址:https://github.com/fatdogsp/URP-Simple-Water。 泡沫的实现细节 The Illustrated Nature...

固定角色的间接光照

一个美术需求 今天美术大哥要我把角色的间接光照固定,不受场景影响,即把下图的 环境光 和 环境反射 从 Lighting Settings 面板搬到 角色材质球 上: 这种环境光的反差,也是突出角色的方法之一。 固定环境光 美术的要求是,无论场景如何布置,程序只认下图这个预设的环境光: 这里的做法很简单,打开美术预烘培好的场景,用 FrameDebugger 截取 球谐光照...

用Shader Graph的Flipbook节点实现水花效果

一个有趣的教程 昨天看了一个老外的视频教程:Rain Drop Ripples,教程用 Shader Graph 实现了游戏中常见的下雨天地面的水花效果。 视频中水花动画的实现和我们游戏的实现方式有所不同,他通过 Shader Graph 的 Flipbook 节点实现了水花的 序列图 动画: 上图中的 Flipbook 节点对应的代码如下: 1 2 3 4 5 6 7 8 9 ...