はじめに
http://www.shaderslab.com/demo-07---rim-effect.html
この記事では上記のサイト様が公開されている
リムエフェクトシェーダを導入する方法を紹介していきます
使用例
使い方
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Shader "Custom/Rim effect" { | |
Properties { | |
_MainTex ("Base (RGB)", 2D) = "white" {} | |
_RimValue ("Rim value", Range(0, 1)) = 0.5 | |
} | |
SubShader { | |
Tags { "RenderType"="Transparent" "Queue"="Transparent" } | |
CGPROGRAM | |
#pragma surface surf Lambert alpha | |
sampler2D _MainTex; | |
fixed _RimValue; | |
struct Input { | |
float2 uv_MainTex; | |
float3 viewDir; | |
float3 worldNormal; | |
}; | |
void surf (Input IN, inout SurfaceOutput o) { | |
half4 c = tex2D (_MainTex, IN.uv_MainTex); | |
o.Albedo = c.rgb; | |
float3 normal = normalize(IN.worldNormal); | |
float3 dir = normalize(IN.viewDir); | |
float val = 1 - (abs(dot(dir, normal))); | |
float rim = val * val * _RimValue; | |
o.Alpha = c.a * rim; | |
} | |
ENDCG | |
} | |
FallBack "Diffuse" | |
} |
上記のシェーダファイルを Unity プロジェクトに追加します
リムエフェクトを使用したいオブジェクトのマテリアルの Shader を
「Custom/Rim effect」に変更します
マテリアルのパラメータを自由に変更します
これで、シェーダを使用できます