//10.1.5,菲尼尔反射
Shader "Unlit/Chapter10-Fresnel"
{
Properties
{
//物体颜色
_Color("Color Tint",Color) = (1,1,1,1)
//菲尼尔反射强度
_FresnelScale("Fresnel Scale",Range(0,1))=0.5
//模拟反射的环境映射纹理
_Cubemap("Reflection Cubemap",Cube) = "_Skybox"{}
}
SubShader
{
//渲染类型=不透明 队列=几何
Tags{ "RenderType" = "Opaque" "Queue" = "Geometry" }
Pass
{
//光照模式=向前渲染
Tags{ "LightMode" = "ForwardBase" }
CGPROGRAM
//定义顶点片元
#pragma vertex vert
#pragma fragment frag
//确保光照衰减等光照变量可以被正确赋值
#pragma multi_compile_fwdbase
//包含引用的内置文件
#include "UnityCG.cginc"
#include "Lighting.cginc"
#include "AutoLight.cginc"
//声明属性变量
fixed4 _Color;
fixed4 _ReflectColor;
float _FresnelScale;
//cube 属性用 samplerCUBE 来声明
samplerCUBE _Cubemap;
//定义输入结构体
struct a2v
{
float4 vertex : POSITION;
float3 normal:NORMAL;
};
/
菲尼尔反射 【Unity Shader 入门精要10.1.5】
最新推荐文章于 2024-06-20 11:08:49 发布
本文介绍了在实时渲染中如何利用菲尼尔反射(Fresnel reflection)进行视角控制,通过Schlick和Empirical菲尼尔近似式调整反射强度。讲解了菲尼尔反射在模拟物体边界光强变化的应用,并展示了在Unity Shader中混合漫反射和反射的技巧,以创建边缘光效果。
摘要由CSDN通过智能技术生成