我正在开发一个新创作作品并想与大家分享结果。我的个人爱好是90年代后期游戏的低画素/噪點效果(声波之界/静静之夜风格),但我希望在HDRP中进行创作,借助物理渲染光照和厚大气效果。

把PS1风格在HDRP中呈现出来,没有打破现代光照管道,是一个很大的挑战,但我成功地解决了几个主要问题:

  1. 没有损害阴影的顶点打捞:标准PS1着色器通常会损害HDRP的阴影图(导致巨大的拉长阴影文本效果)并与骨骼网渲染器冲突。我在Shader图编辑器中编写了一个自定义HLSL函数,计算顶点的波动(保持骨骼动画有效)。关键的技巧是添加一个#if定义(SHADERPASS) && (SHADERPASS == SHADERPASS_SHADOWS)检查, 以在阴影通道中禁用波动并添加一个_time.y偏移,使几何体在静止摄像机的情况下也会微妙地“沸腾”。

  2. 自定义体积粒子雾:我不依赖Heavy URP资源,而是使用HDRP的Shader编辑器自行制作体积粒子雾。由于旧版的Deep Fade节点无法与HDRP的当前接口相兼容,我使用场景深度差异节点(设置为Eye空间)与淡化距离进行了重建。这样做可以使2D雾体准确地融入地面和建筑,并在完全接收HDRP体积光照(风灯和月亮)的同时避免各个部分的硬端点。

  3. 灯光与大气:场景由一个非常暗冷的方向光源(月亮)和一个温暖的点光源(风灯)同时照亮,方向光的亮度约为600Lux,以保持多重阴影,同时在风灯上使用了一个衰减器以避免雾体过度膨胀。用于实现干扰粒子效果的自定义通道。