unitystandardshader源码

更新时间:2023-07-07 06:04:19 阅读: 评论:0

unitystandardshader源码
Shader "Standard"
{
//------------------------------------【属性值】------------------------------------
Properties
{
//主颜⾊
_Color("Color", Color) = (1,1,1,1)
//主纹理
_MainTex("Albedo", 2D) = "white" {}
//Alpha剔除值
_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
//平滑、光泽度
_Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
//⾦属性
[Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
//⾦属光泽纹理图
_MetallicGlossMap("Metallic", 2D) = "white" {}
//凹凸的尺度
_BumpScale("Scale", Float) = 1.0
//法线贴图
_BumpMap("Normal Map", 2D) = "bump" {}
什么人不能吃阿胶
/
/⾼度缩放尺度
_Parallax ("Height Scale", Range (0.005, 0.08)) = 0.02
//⾼度纹理图
_ParallaxMap ("Height Map", 2D) = "black" {}
//遮挡强度
_OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
//遮挡纹理图
_OcclusionMap("Occlusion", 2D) = "white" {}
//⾃发光颜⾊
_EmissionColor("Color", Color) = (0,0,0)
//⾃发光纹理图
_EmissionMap("Emission", 2D) = "white" {}
//细节掩膜图
_DetailMask("Detail Mask", 2D) = "white" {}
//细节纹理图
_DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
//细节法线贴图尺度
_DetailNormalMapScale("Scale", Float) = 1.0
//细节法线贴图
_DetailNormalMap("Normal Map", 2D) = "bump" {}
//⼆级纹理的UV设置
[Enum(UV0,0,UV1,1)] _UVSec ("UV Set for condary textures", Float) = 0
/
/混合状态的定义
[HideInInspector] _Mode ("__mode", Float) = 0.0
[HideInInspector] _SrcBlend ("__src", Float) = 1.0
[HideInInspector] _DstBlend ("__dst", Float) = 0.0
[HideInInspector] _ZWrite ("__zw", Float) = 1.0
}
//===========开始CG着⾊器语⾔编写模块===========
//===========开始CG着⾊器语⾔编写模块===========
CGINCLUDE
//BRDF相关的⼀个宏
金线莲的食用方法
#define UNITY_SETUP_BRDF_INPUT MetallicSetup
/
/===========结束CG着⾊器语⾔编写模块===========
ENDCG
//------------------------------------【⼦着⾊器1】------------------------------------
// 此⼦着⾊器⽤于Shader Model 3.0
//----------------------------------------------------------------------------------------
李维福SubShader
{
//渲染类型设置:不透明
Tags { "RenderType"="Opaque""PerformanceChecks"="Fal" }
//细节层次设为:300
LOD 300
/
/--------------------------------通道1-------------------------------
// 正向基础渲染通道(Ba forward pass)
// 处理⽅向光,⾃发光,光照贴图等 ...
Pass
{
//设置通道名称
Name "FORWARD"
//于通道标签中设置光照模型为ForwardBa,正向渲染基础通道
Tags { "LightMode" = "ForwardBa" }
//混合操作:源混合乘以⽬标混合
Blend [_SrcBlend] [_DstBlend]
/
/ 根据_ZWrite参数,设置深度写⼊模式开关与否
ZWrite [_ZWrite]
//===========开启CG着⾊器语⾔编写模块===========
CGPROGRAM牛肉的英语
//着⾊器编译⽬标:Model 3.0
#pragma target 3.0
//编译指令:不使⽤GLES渲染器编译
#pragma exclude_renderers gles
// ---------编译指令:着⾊器编译多样化--------
#pragma shader_feature _NORMALMAP
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature _EMISSION
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature ___ _DETAIL_MULX2
#pragma shader_feature _PARALLAXMAP
//--------着⾊器编译多样化快捷指令------------
//编译指令:编译正向渲染基础通道(⽤于正向渲染中,应⽤环境光照、主⽅向光照和顶点/球⾯调和光照)所需的所有变体。
//这些变体⽤于处理不同的光照贴图类型、主要⽅向光源的阴影选项的开关与否
#pragma multi_compile_fwdba
//编译指令:编译⼏个不同变种来处理不同类型的雾效(关闭/线性/指数/⼆阶指数/)
#pragma multi_compile_fog
//编译指令:告知编译器顶点和⽚段着⾊函数的名称
#pragma vertex vertForwardBa
#pragma fragment fragForwardBa居家办公
//包含辅助CG头⽂件
#include "inc"
//===========结束CG着⾊器语⾔编写模块===========
ENDCG
}
//--------------------------------通道2-------------------------------
// 正向附加渲染通道(Additive forward pass)
// 以每个光照⼀个通道的⽅式应⽤附加的逐像素光照
Pass
{
//设置通道名称
Name "FORWARD_DELTA"
//于通道标签中设置光照模型为ForwardAdd,正向渲染附加通道
Tags { "LightMode" = "ForwardAdd" }
//混合操作:源混合乘以1
Blend [_SrcBlend] One
//附加通道中的雾效应该为⿊⾊
Fog { Color (0,0,0,0) }
//关闭深度写⼊模式
ZWrite Off
/
/设置深度测试模式:⼩于等于
让我们结婚吧ZTest LEqual
//===========开启CG着⾊器语⾔编写模块===========
CGPROGRAM
//着⾊器编译⽬标:Model 3.0
#pragma target 3.0
//编译指令:不使⽤GLES渲染器编译
#pragma exclude_renderers gles
// ---------编译指令:着⾊器编译多样化--------
#pragma shader_feature _NORMALMAP
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature ___ _DETAIL_MULX2
#pragma shader_feature _PARALLAXMAP
//--------使⽤Unity内置的着⾊器编译多样化快捷指令------------
//编译指令:编译正向渲染基础通道所需的所有变体,但同时为上述通道的处理赋予了光照实时阴影的能⼒。
#pragma multi_compile_fwdadd_fullshadows
//编译指令:编译⼏个不同变种来处理不同类型的雾效(关闭/线性/指数/⼆阶指数/)
#pragma multi_compile_fog
//编译指令:告知编译器顶点和⽚段着⾊函数的名称
#pragma vertex vertForwardAdd
#pragma fragment fragForwardAdd
//包含辅助CG头⽂件
#include "inc"
//===========结束CG着⾊器语⾔编写模块===========
ENDCG
}
// --------------------------------通道3-------------------------------
//  阴影渲染通道(Shadow Caster pass)
//  将将物体的深度渲染到阴影贴图或深度纹理中
Pass
{
//设置通道名称
Name "ShadowCaster"
//于通道标签中设置光照模型为ShadowCaster。
//此光照模型代表着将物体的深度渲染到阴影贴图或深度纹理。
Tags { "LightMode" = "ShadowCaster" }
//开启深⼊写⼊模式
ZWrite On
//设置深度测试模式:⼩于等于
ZTest LEqual
//===========开启CG着⾊器语⾔编写模块===========
CGPROGRAM
//着⾊器编译⽬标:Model 3.0
#pragma target 3.0
//编译指令:不使⽤GLES渲染器编译
#pragma exclude_renderers gles
// ---------编译指令:着⾊器编译多样化--------
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
//--------着⾊器编译多样化快捷指令------------
//进⾏阴影投射相关的多着⾊器变体的编译
#pragma multi_compile_shadowcaster
//编译指令:告知编译器顶点和⽚段着⾊函数的名称
#pragma vertex vertShadowCaster
#pragma fragment fragShadowCaster
/
/包含辅助CG头⽂件
#include "inc"
//===========结束CG着⾊器语⾔编写模块===========
ENDCG
}
// --------------------------------通道4-------------------------------
//  延迟渲染通道(Deferred Render Pass)
Pass
{
//设置通道名称
Name "DEFERRED"
/
/于通道标签中设置光照模型为Deferred,延迟渲染通道
Tags { "LightMode" = "Deferred" }
CGPROGRAM
#pragma target 3.0
// TEMPORARY: GLES2.0 temporarily disabled to prevent errors spam on devices without textureCubeLodEXT #pragma exclude_renderers nomrt gles
//---------编译指令:着⾊器编译多样化(shader_feature)--------
#pragma shader_feature _NORMALMAP
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature _EMISSION
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature ___ _DETAIL_MULX2
#pragma shader_feature _PARALLAXMAP
//---------编译指令:着⾊器编译多样化(multi_compile)--------
#pragma multi_compile ___ UNITY_HDR_ON
#pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON
#pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE
#pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON
//编译指令:告知编译器顶点和⽚段着⾊函数的名称
#pragma vertex vertDeferred
#pragma fragment fragDeferred
//包含辅助CG头⽂件
#include "inc"
常规化
//===========结束CG着⾊器语⾔编写模块===========
ENDCG
}
// --------------------------------通道5-------------------------------
//元通道(Meta Pass)
//为全局光照(GI),光照贴图等技术提取相关参数,如(emission, albedo等参数值)
//此通道并不在常规的渲染过程中使⽤
Pass
{
//设置通道名称
Name "META"
/
/于通道标签中设置光照模型为Meta
//(截⽌2015年10⽉22⽇,Unity 5.2.1的官⽅⽂档中并没有收录此光照模型,应该是Unity官⽅的疏漏)            Tags { "LightMode"="Meta" }
//关闭剔除操作
Cull Off
//===========开启CG着⾊器语⾔编写模块===========
CGPROGRAM
//编译指令:告知编译器顶点和⽚段着⾊函数的名称
#pragma vertex vert_meta
#pragma fragment frag_meta
//---------编译指令:着⾊器编译多样化--------
#pragma shader_feature _EMISSION
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature ___ _DETAIL_MULX2
//包含辅助CG头⽂件
#include "inc"
//===========结束CG着⾊器语⾔编写模块===========
ENDCG
}
}
//------------------------------------【⼦着⾊器2】-----------------------------------
// 此⼦着⾊器⽤于Shader Model 2.0
//----------------------------------------------------------------------------------------
SubShader
{
//渲染类型设置:不透明
Tags { "RenderType"="Opaque""PerformanceChecks"="Fal" }
//细节层次设为:150
LOD 150
//--------------------------------通道1-------------------------------
// 正向基础渲染通道(Ba forward pass)
// 处理⽅向光,⾃发光,光照贴图等 ...
Pass
{
/
药学概论论文/设置通道名称
Name "FORWARD"
//于通道标签中设置光照模型为ForwardBa,正向渲染基础通道
Tags { "LightMode" = "ForwardBa" }

本文发布于:2023-07-07 06:04:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1071261.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:通道   光照   设置
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图