Fixed function Shader
简介 固定管线渲染,就是默认的渲染效果的shader unity官方表示有很好的兼容性
固定渲染以后应用应该很少,本章节简单了解下大概流程 一些不懂的地方可以后面再解决
properties 参数值 显示在材质球面板上方便 修改参数
material 材质自处理阶段,设置光源(这个阶段不是很清晰)
settexture 材质赋予贴图阶段
Shader "ff1_2"
{
Properties
{
//属性名称{显示在面板上的名称 可以中文,类型}=默认值
_Color("Main Color 原始颜色",color) = (1,1,1,1)//原始颜色
_Anbient("Aebient 全局光颜色",color) = (0.3,0.3,0.3,0.3)//全局光颜色
_Speculer("Speculer 高光颜色",color) = (1,1,1,1)//高光颜色
_Shiniess("Shiniess 一个浮点型取值范围 用于高光",range(0,8)) = 4//一个浮点型取值范围
_Emission("Emission 自发光颜色",color) = (1,1,1,1)//自发光颜色
_Constant("ConstantColor",color) = (1,1,1,0.3)
_MainTex("MainTex 第一张贴图",2d) = ""{}
_MainTex_2("MainTex_2 第二种贴图",2d) = ""{}
}
SubShader
{
Tags{"Queue"="Transparent"}//渲染队列
Pass
{
Blend SrcAlpha OneMinusSrcAlpha
// color(1,0,0,1)//"()"固定值
// color[_Color]//"[]"参数值
material
{
diffuse[_Color]//着色
ambient[_Anbient]//环境光
specular[_Speculer]//高光
shininess[_Shiniess]//高光取值范围
emission[_Emission]//自发光
}
lighting on//光照打开
separatespecular on//高光反射打开
settexture[_MainTex] //设置材质贴图
{
//渲染贴图*上面设置的原始颜色信息*两倍
combine texture*primary double//quad
}
settexture[_MainTex_2] //设置材质贴图
{
constantColor[_Constant]
//渲染贴图*previous 是前面渲染所有颜色信息*两倍
combine texture*previous double , texture*constant//quad
}
}
}
}
需要搞清楚的知识点
1.Blending
官方链接https://docs.unity3d.com/Manual/SL-Blend.html 需要阅读全文
https://blog.csdn.net/treepulse/article/details/53505098 翻译文档
这是透明渲染的一个混合模式
2.Tags { "Queue" = "Transparent" }渲染队列
shader是按渲染队列在进行渲染顺序的,
值越大就会渲染到最前面 遮挡住小的
https://docs.unity3d.com/Manual/SL-SubShaderTags.html 官方说明
这个固定管线渲染会经常让我的显卡崩溃不知道为什么
最后 有一期学习的前端开发的可以入群 大家一起学习 339033019