Unity ShaderGraph教程——进阶shader

1.水面(一)

公式:场景深度 节点深度 --- 屏幕空间位置的W向量 = 半透明物体与不透明物体的相交边缘

原理:场景深度 节点深度包含透明像素,屏幕空间w向量不包含透明像素。

注意:需要在UniversalRP-xxxQuality inspector面板将Depth texture选项打开,才能读取深度值。

(1)片元着色器部分:

(2)顶点着色器部分

效果:

2.水面(二)

实现效果:水面光滑程度、水下物体以及阴影扭曲效果

(1)光滑程度

简单的通过一个float参数控制光滑程度

(2)扭曲效果

将屏幕上颜色和水面颜色混合,使场景中已经被渲染的不透明物体屏幕坐标产生一定的扭曲,跟当前颜色合成后模拟折射效果。

注意:需要用到scence color节点需要在UniversalRP-xxxQuality inspector面板将不透明texture的对勾打开

scence color和原基础颜色lerp,混合后已经具有透明度数值,所以原透明度不需要再单独输出。

相关推荐
不伤欣10 小时前
游戏设计模式 - 子类沙箱
游戏·unity·设计模式
Magnum Lehar12 小时前
vulkan游戏引擎test文件memory实现
游戏引擎
Magnum Lehar12 小时前
vulkan游戏引擎test_manager实现
java·算法·游戏引擎
快乐觉主吖16 小时前
Unity的日志管理类
android·unity·游戏引擎
WarPigs1 天前
Unity性能优化笔记
笔记·unity·游戏引擎
T.D.C1 天前
【业务框架】3C-相机-Cinemachine
unity
一线灵2 天前
跨平台游戏引擎 Axmol-2.6.1 发布
游戏引擎
Clank的游戏栈2 天前
Unity基于GraphView的可视化关卡编辑器开发指南
unity·编辑器·游戏引擎
海尔辛2 天前
Unity UI 性能优化--Sprite 篇
ui·unity·性能优化
三巧2 天前
Godot 敌人生成半径和围墙不匹配,导致敌人错误的生成在围墙外的解决代码
游戏引擎·godot