Apple Hello 字体动效 AppleHello 最近看到了苹果的经典的Hello打字动画,总结一下实现的思路。 大致搜了一下,有很多版本。基本都是以连体字母,一笔画的效果。 比如 但每个版本都会有一些差异,比如渐变、轮廓、阴影等。 比如这个apple version pro的版本 可以看到有光照、阴影、AO等效果。 实现目标 梳理下要实现的目标: 字体是连体的,随时间变化,逐渐显示出来。 依 2025-05-26
颜色空间相关 颜色空间相关 一直以来对颜色空间的理解都不够深入,今天稍微整理了一下。 主要针对Unity中的Gamma和Linear两种颜色空间进行分析。 首先是为什么会有Gamma这个东西。 早期的显示器(CRT)是基于电子束扫描的,亮度的变化也是非线性的,即输入两倍的电压,并不能得到两倍的亮度,而是大概输入电压的2.2次方。 这导致了显示的亮度偏暗。 因此在输出到显示器之前,先对颜色进行Gamm 2025-05-23
快速傅里叶变换水面 前言 好久好久之前就想啃一下FFT水面。这次下定心,硬啃公式推导一遍。 主要还是参考别人的文章,但把其中省略的推导过程全部手敲一遍。 主要目的就只是为了给自己记录一遍,大篇的定义就省略了。 傅里叶变换 这里水面的波形解释为时域空域更好理解。 频域F(ω) 时域f(x) 由时域f(x)得到频域F(ω),称为傅里叶变换 由频域F(ω)得到时域f(x),称为傅里叶逆变换 三种基底形式 2025-05-08
风格化草地树木的实现 概述 很早就想尝试风格化渲染,正好看到了一个使用Blender的教程,顺便就试了一下,移植到Unity上。 草地 先看草地,概括原版教程 Blender 首先创建单株草Mesh, 利用Blender中的几何节点,在平面上随机分布草Mesh 预生成不同层级的颜色贴图,用于在平面上赋予草颜色 利用同一张贴图,当作高度图,生成法线,同样按照世界坐标UV来采样,给每个草Mesh都加上法 2025-05-06
MR环境下在URP中实现HDR Bloom 概述 在MR环境下,HDR Bloom是一个很重要的效果,很多美术效果尤其是光效都需要HDR Bloom来提升画面的质感。 但是在URP中,启用HDR默认是用的B10G11R11_UFloatPack32的格式,这个格式会牺牲透明通道,导致MR失效。 所以翻看Pico或者Meta的文档,他们都不允许开启HDR。 然后是Bloom。URP的bloom是按照RGBM编码在rgba四个通道中 2025-03-18
基于TMP与VEG的实时文字粒子消融效果 概述 产品现有一需求,要运行时更改文字且添加消融与粒子消散。 虽然不算很复杂,还是记录一下。 想了下从TMP文字的SDF图来着手应该是比较不错的方案。 TMP消融Shader 这里先看下TMP的原始shader,就是采样SDF图,再根据是否要轮廓、阴影等效果加上对应的代码。 那就很简单了,采样个噪声图,根据时间clip一下,再取个宽度,step后给个颜色就完事了。 这就简单贴一下 2025-03-18
Shader中深度相关坐标的转换 简要记录一下shader中几种Depth的定义与转换规则,同时再记录下容易混淆的裁切空间,NDC,屏幕空间。 视角空间 那就一个一个看,先看UNITY_MATRIX_V,从世界坐标到视角坐标。 这个矩阵和之前类似,视角坐标系是右手,所以Z轴要翻转(UNITY_MATRIX_V这个矩阵就已经包含翻转了)。也就是Z轴朝向屏幕外。 这里的posVS.z 表示的是物体距离摄像机在摄像机forwa 2023-08-14
GTAO 既然HBAO实现了,那就再进一步,看看GTAO到底有多GT。 主要参考了原始论文与作者发布的PPT,以及Github上一开源的GameTechDev/XeGTAO,外加HDRP自带的GTAO的实现。 先大致翻译一下原始论文吧 摘要 环境光遮蔽是游戏和其他实时应用中用来近似全局光照效果的一种普遍方法。然而,对于任意场景的环境光遮蔽积分并不存在解析解,使用一般的数值积分算法太慢,因此实际中 2023-08-09
HBAO 今天来玩玩HBAO,目前URP仅有SSAO,HDRP则用的是GTAO。先在URP实现个HBAO,如果还有余力的话就再实现GTAO吧。 原理啥的就不详细写了,各种文章一大堆,就先简单说个大概。 HBAO in URP SSAO 先看URP自带的SSAO,别看Shader里定义了一堆pass,除了第一个SSAO_Occlusion,其他全是各种模糊。 详细看看第一个pass 大 2023-08-07
常见模糊后处理 模糊 最近做的很多效果最终都需要模糊,如镜面反射要模糊模拟粗糙度反射,体积光要降采样然后模糊来降低性能消耗同时柔化效果 更不要说UI上需要模糊背景,透明物体要毛玻璃等等效果,还是很有必要好好整理一下相关的方案同时打包成库方便以后调用。 2023-08-04