像素着色器效果全解析
1. 自定义着色器基础
1.1 常用函数介绍
在编写自定义像素着色器时,会用到一些常用的函数,如下所示:
-sin:正弦函数
-cos:余弦函数
-atan2:反正切函数
-lerp:线性插值
-min:取最小值
-max:取最大值
-tex2D:纹理采样函数
-degrees:弧度转角度
-radians:角度转弧度
1.2 灰度着色器实现
1.2.1 效果原理
灰度效果的核心是将红、绿、蓝三个颜色分量求平均值,并将它们的值都设置为这个平均值,而透明度(alpha 值)保持不变。
1.2.2 HLSL 代码实现
sampler2D implicitInput : register(s0); float4 MainPS(float2 uv : TEXCOORD) : COLOR { float4 src = tex2D(implicitInput, uv); float4 dst; float average = (src.r + src.g + src.b)/3; dst.rgb =