一个在Unity URP中实现的真实感玻璃瓶材质,结合折射、反射、表面细节和半透明阴影效果。
模型处理
- 在Blender中处理玻璃瓶模型,将内壁与外壁分离,便于更好地控制材质属性并解决透明度排序问题。
Shader Graph
- 厚度与折射:基于法线与视角方向计算厚度,模拟玻璃边缘的自然暗化效果;使用屏幕空间采样偏移实现折射,并通过alpha调整增强光线折弯的真实感。
-
反射与高光:利用Unity自带的Lit Shader,启用“Preserve Specular Lighting”选项。
-
表面细节:使用粗糙度贴图模拟指纹和污迹等细微表面纹理;添加法线贴图,刻画玻璃表面微小划痕,提升材质真实感。
HLSL Shader
- 半透明阴影:自定义阴影投射行为,使用抖动(Dither)方法生成半透明阴影;将alpha裁剪与阴影投射结合,创建真实的光影过渡效果。
渲染顺序
- 按以下顺序解决透明度排序问题:内壁2998,液体2999,外壁3000
后处理
- 调整HDR天空盒以改善光照与反射的整体效果。添加了后期处理效果来校正 HDR 天空盒的过度曝光,并应用泛光效果来增强玻璃表面反射光泽。