原神中用于解决面部阴影问题的方法是SDF技术,简单来说就是用一系列通过一系列面部阴影在各中光照方向下的阈值图,也就是从几个特定光照方向照射到面部时所产生的阴影效果 使用某种算法把这一系列贴图连续化,生成一张混合的卡通光照图,便可以使用这张图制作较为连续的卡通面部阴影。在特殊的光照方向照射时会得到上面几张阈值图的阴影效果 生成方法可使用
对了,我们张SDF贴图存储的是光源在xz平面运动(绕y轴旋转)时在角色面部留下的阴影数据,也就是说我们计算时应该忽略光线向量在y轴的分量(光线的高度角对阴影无影响) 还有一点,相信你也看出来了,这张阈值图代表的是阴影在灯光从正前方移动到左后方的变化,所以说当光线在角色右方时,我们需要180度镜像反转该图 如何...
SDF贴图的原理,是将角色面部视为一个整体,同时设置值V,当该像素R值(也有可能是G值B值或者Alpha值,这取决于SDF贴图哪个通道存储了阴影信息)小于V值,,该像素为暗面 简单的来说,就是通过V值和SDF贴图实时生成蒙版,来控制角色阴影 X值该如何计算? 其实公式很简单:V值 =(角色头部欧拉角的Z值 - 阳光欧拉角的Z值...
【教程】使用csp等高线填充工具制作三渲二面部阴影贴图 1.0万 3 01:08 App 【渲染】脸部阴影不好看?如何排除自阴影 7182 0 00:27 App 【卡通渲染】逆天角度SDF阴影修正 ▶ 兼容背光+大仰角 1.4万 1 02:04 App NPR+PBR三渲二卡通渲染演示 17.2万 249 01:29:25 App 【Unity/虚幻5/Blender】3种引擎 崩...
首先,通过对比使用和不使用SDF图的面部阴影效果,可以看出显著的差别。通过光照和角色方向的夹角计算阴影值,构建世界空间中的向量进行处理。在计算过程中,遇到的问题是当光照角度超过90度时,阴影效果不理想。解决方法是使用SDF图的镜像版本,根据光照方向的正负来采样不同的阴影。代码中,通过if-else语句...
首先我们需要距离场阴影贴图 面部ILM图(应该不叫ILM) 将透明通道分离出来后能分离出面部的距离场阴影 这种图的绘制方式可以参考: 我们把这种图扔到PS,调整预制我们就可以很明显看见这个贴图的作用 使用这张图,我们在虚幻引擎里调整色阶就可以用SDF驱动面部阴影了 ...
面部阴影SDF贴图 用法很简单,用一个阈值去和这个贴图的值比较,大于这个贴图就输出1,小于这个贴图就输出0。 第一步当然是先采样下这个脸部阴影贴图 float ver_Faceshadow = tex2D(_Faceshadow,i.uv); 既然是阴影,那么肯定是用光照和角色方向的夹角去计算这个值,对于计算面部阴影,y轴的值是不需要的,我们只需要...
当然,目前市面上更主流的解决方案是直接通过一张SDF贴图硬控阴影 SDF贴图 如何获取这张图呢 方案一:通过软件在游戏内抓包 方案二:如何快速生成混合卡通光照图 - 知乎 张图存储的,是角色面部的阴影信息 我们可以在photoshop中观察 那么我们该如何判断一个像素位于亮面还是暗面呢?
面部阴影SDF贴图 用法很简单,用一个阈值去和这个贴图的值比较,大于这个贴图就输出1,小于这个贴图就输出0。 第一步当然是先采样下这个脸部阴影贴图 float ver_Faceshadow = tex2D(_Faceshadow,i.uv); 既然是阴影,那么肯定是用光照和角色方向的夹角去计算这个值,对于计算面部阴影,y轴的值是不需要的,我们只需要...
面部阴影在卡通渲染中也很重要,如果使用常规的渲染方法,很丑 卡通渲染中一般使用SDF贴图的方式,实现这样的效果: 贴图分析 FaceMap贴图的a通道就是一张SDF图,这张图的灰度值表示的是不会进入阴影的光线与脸正前方最大角度,上面的红线就类似于几条等高线,当夹角超过阈值的时候,这些等高线内的像素会同时进入阴影,就实...