Shaders: ShaderLab & Fixed Function shaders

SubShader{ 
Tags{"Queue"="Transparent"} //渲染完不透明物体,再渲染当前物体

GrabPass{} //将当前屏幕抓取到_GrabTexture纹理变量中.之后的pass可以使用这张纹理.

Pass{ 
Name "passName" //给pass起名 
Material{ 
//[]取值符号 
Diffuse[_diffuseColor] //反射光,颜色 
Ambient[_ambient] //环境光,颜色 
Specular[_specularColor] //高光颜色 
Shininess[_shininess] //高光强度 
Emission[_emissionColor] //自发光,颜色, 
}

ColorMaterial AmbientAndDiffuse | Emission //使用顶点颜色,计算顶点光照. 
SeparateSpecular On //高光放到pass的最后 
ColorMask RGB //开启rgb通道.注意:值rgba的任意组合,值为0时,关闭所有通道, 
Cull off //剔除规则,back,front,off 
AlphaTest Greater[_Cutoff] //透明测试,greater,GEqual,Less,Lequal,Equal,NotEqual,Always,Never. 
Lighting On //光线 on,off 
SetTexture[_MainTex]{ 
Combine primary * texture double,primary * texture 
/**组合rgb和a. 
rgb部分                 , a部分 
primary:顶点颜色, 
texture:当前纹理颜色, 
previous:上一次当前位置的颜色, 
constant: 使用constantColor[_color]赋值后的颜色值. 
double : 表示2倍,quad : 4倍. 
*/ 

ZWrite off //不写入深度值 
Offset -1,-1 //指定深度缓冲的偏移.只能是 常量 
ZTest Less //深度测试. 
Color(1,1,1,1) //顶点光线关闭后,使用此颜色值 
Blend SrcAlpha OneMinusSrcAlpha //alpha混合 
/** 
Blend off 关闭. 
语法:Blend srcFactor dstFactor 
One: 全部值 
zero: 
srcColor: 当前颜色 
srcAlpha: 
dstColor: 帧缓冲(目标)源颜色 
dstAlpha: 
OneMinusSrcColor:1 - srcColor 
OneMinusSrcAlpha:1 - srcAlpha 
OneMinusDstColor:1 - dstColor 
OneMinusDstAlpha:1 - dstAlpha 
**/ 
Fog{ 
mode exp 
color[_DiffuseColor] 
Density 1 
}

BindChannels{ //发送的顶点数据与gpu 寄存器绑定. 
Bind "Vertex" vertex 
/** 
Bind "source" target 
source: 
vertex,normal,tangent,texcoord,texcoord1,color 
target: 
vertex,normal,tangent,texcoord0,texcoord1,texcoord,color. 
*/ 

Tags{ //控制渲染引擎执行顺序. 
"LightMode" = "always" 


}

时间: 2024-10-12 16:19:25

Shaders: ShaderLab & Fixed Function shaders的相关文章

UnityShader之固定管线Fixed Function Shader【Shader资料3】

Fixed function shader简介:  属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况.使用的是ShaderLab语言,语法与微软的FX files 或者NVIDIA的 CgFX类似. 1.使用固定管线来显示单一的颜色 Shader "Custom/1_1color" { // 属性 Properties { //定义一个颜色 _Color ("Main Color", Color) = (1,0.5,0.5,1) }

Unity3D教程宝典之Shader篇:第二讲Fixed Function Shader

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 Fixed function shader简介:  属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况.使用的是ShaderLab语言,语法与微软的FX files 或者NVIDIA的 CgFX类似. 例一:显示单一颜色下面我们来看第一个例子,显示单一颜色,注释写得挺详细了,照着格式写即可. //根Shader Shader "Custom/1_1color" { // 属性 Propertie

(转)unityshaderLab中fixed function常用指令

ShaderLab中常用的fixedFunction. SubShader{ Tags{"Queue"="Transparent"} //渲染完不透明物体,再渲染当前物体 GrabPass{} //将当前屏幕抓取到_GrabTexture纹理变量中.之后的pass可以使用这张纹理. Pass{ Name "passName" //给pass起名 Material{ //[]取值符号 Diffuse[_diffuseColor] //反射光,颜色 

Unity3D用户手册

Welcome to Unity. 欢迎使用Unity. Unity is made to empower users to create the best interactive entertainment or multimedia experience that they can. This manual is designed to help you learn how to use Unity, from basic to advanced techniques. It can be

Shader编程学习笔记(四)——Unity Shader的组织形式(ShaderLab)

Unity Shader的组织形式 Unity Shader的形态 Unity官方手册上讲Unity Shader有三种不同的编写方案,这三种编写方案分别是surface shaders.vertex and fragment shaders和fixed function shaders. 从前面几篇笔记中可以了解到,可编程图形管线中能够编写shader的主要是两个部分:vertex shader和fragment shader,但Unity还有surface shaders和fixed fun

[原]Unity3D深入浅出 - Shader基础开发

概述 简单来讲,shader是为渲染管线中的特定处理截断提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,开发者可使用Shader对渲染过程加以控制,拥有更大的创作控件,因此Shader的出现可以看作是实时渲染技术的一次革命. 在现代主流3D引擎中,Shader已经无处不在,例如镜头景深,动态模糊,卡通渲染,以及各种特殊材质效果和光照效果等等. Unity中所有的渲染都需要通过Shader来完成,开发者可以自己编写Shader,也可以使用Unity提供的内建Shader来完成各种画面

Unity3D中的Shader

简单的说,Shader是为渲染管线中的特定处理阶段提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,从而可以对渲染过程加以控制. 1. Unity提供了很多内建的Shader,这些可以从官网下载,打开looking for older version的链接就能看到Build-in shaders.选择合适的Shader很重要,以下是开销从低到高的排序: (1)Unlit:仅使用纹理颜色,不受光照影响 (2)VertexLit:顶点光照 (3)Diffuse:漫反射 (4)Specul

Unity常见面试题大全

1.       [C#语言基础]请简述拆箱和装箱. 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程. 1.在堆中开辟内存空间. 2.将值类型的数据复制到堆中. 3.返回堆中新分配对象的地址. 拆箱操作: object类型显示转换为值类型或从接口类型到实现该接口值类型的过程. 1.判断给定类型是否是装箱时的类型. 2.返回已装箱实例中属于原值类型字段的地址. 2.        [.NET(C#)] attribute,property,markup,ta

Unity5内部渲染的优化3:移除固定功能

译自aras的博客,总共3篇文章,讲述unity5优化自己渲染器的过程 吸取大神调试与优化经验,了解unity5内部渲染器的优化方法 第一篇:Unity5内部渲染的优化1:介绍 第二篇:Unity5内部渲染的优化2:清理 上篇文章写了关于清理和优化.从那时起,我已经转变到做一些unity5.1的工作了,移除了固定功能着色器Fixed Function Shaders和一些别的事. 固定功能是什么 以前,GPU还没有"可编程着色器programmable shaders":通过启用和禁用