您的位置:首页 > 运维架构

使用纹理制作特效 - Photoshop色阶效果

2017-11-29 11:46 423 查看
Shader "PhotoshopLevels"
{
Properties
{
_MainTex("MainTex", 2D) = "" {}

_InBlack("InBlack", Range(0, 255)) = 0
_InGamma("InGamma", Range(0, 255)) = 1.61
_InWhite("InWhite", Range(0, 255)) = 255
_OutBalck("OutBlack", Range(0, 255)) = 0
_OutWhite("OutWhite", Range(0, 255)) = 255
}

SubShader
{
Tags
{
"RenderType" = "Opaque"
}

LOD 200

CGPROGRAM

#pragma surface surf Lambert

sampler2D _MainTex;

float _InBlack;
float _InGamma;
float _InWhite;
float _OutBlack;
float _OutWhite;

float outRPixel;

struct Input
{
float2 uv_MainTex;
};

void surf(Input IN, inout SurfaceOutput o)
{
float4 c = tex2D(_MainTex, IN.uv_MainTex);

outRPixel = c.r * 255.0;

outRPixel = max(0, outRPixel - _InBlack);

outRPixel = saturate(pow(outRPixel / (_InWhite - _InBlack), _InGamma));

outRPixel = (outRPixel * (_OutWhite - _OutBlack) + _OutBlack) / 255.0;

c.r = outRPixel;

o.Albedo = c.rgb;
o.Alpha = c.a;
}

ENDCG
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: