Shader山下(七)立方体反射【前编】里介绍了如何使用Cubemap来模拟环境反射,本文就再介绍一下其他两个应用。
首先介绍立方体反射与法线贴图(Shader山下(四)法线贴图)的结合。
我们先按照前文的方法,制作一个Cubemap。
然后复制一个最简单的立方体反射shader:
Shader "Custom/Reflection/Normal" {
Properties {
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_MainTint ("Main Tint", Color) = (1,1,1,1)
_CubeMap ("CubeMap", CUBE) = "" {}
_ReflAmount ("Reflection Amount", Range(0.01, 1)) = 0.5
}
SubShader {
Tags { "RenderType"="Opaque"}
LOD 200
CGPROGRAM
#pragma surface surf Lambert
sampler2D _MainTex;
fixed4 _MainTint;
samplerCUBE _CubeMap;
fixed _ReflAmount;
struct Input {
float2 uv_MainTex;
float3 worldRefl;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D (_MainTex, IN.uv_Ma