[UnityShader]固定管线着色器基础
来源:互联网 发布:程序员新工作第一天 编辑:程序博客网 时间:2024/06/05 16:13
Pass { [Name and Tags] [RenderSetup][TextureSetup] }
基本通道命令包含一个可选的渲染设置命令的列表,和可选的被使用的纹理的列表。
关于渲染设置 (Render Setup )
通道设定显示硬件的各种状态,例如能打开alpha混合,能使用雾,等等。这些命令如下:
Material { Material Block }
定义一个使用顶点光照管线的材质,详情参考上次我们讲的Material
Lighting On | Off
开启或关闭顶点光照。开启灯光之后,顶点光照才会有作用
Cull Back | Front | Off
设置多边形剔除模式,详细内容后面的文章会讲解到。
ZTest (Less | Greater | LEqual | GEqual |Equal | NotEqual | Always)
设置深度测试模式,详细内容后面的文章会讲解到。
ZWrite On | Off
设置深度写模式,详细内容后面的文章会讲解到。
Fog { Fog Block }
设置雾参数,详细内容后面的文章会讲解到。
AlphaTest (Less | Greater | LEqual | GEqual| Equal | NotEqual | Always) CutoffValue
开启alpha测试
Blend SourceBlendMode |DestBlendMode
设置alpha混合模式
Color Color value
设置当顶点光照关闭时所使用的颜色
ColorMask RGB | A | 0 | any combination of R, G, B, A
设置颜色写遮罩。设置为0将关闭所有颜色通道的渲染
Offset OffsetFactor , OffsetUnits
设置深度偏移
SeparateSpecular On | Off
开启或关闭顶点光照相关的平行高光颜色。
ColorMaterial AmbientAndDiffuse | Emission
当计算顶点光照时使用每顶点的颜色
UsePass——包含已经写好的通道
UsePass 可以包含来自其他着色器的通道,来减少重复的代码。
例如,在许多像素光照着色器中,阴影色或顶点光照通道在在相应的顶点光照着色器中是相同的。UsePass命令只是包含了另一个着色器的给定通道。例如如下的命令可以使用内置的高光着色器中的名叫"Base"的通道:
UsePass "Specular/BASE"
而为了让UsePass能够认识到指定的是谁,必须给希望使用的通道命名,弄个身份证。通道中的Name命令就是这个功能:
Name "MyPassName"
GrabPass——捕获屏幕内容到纹理中
GrabPass 可以捕获物体所在位置的屏幕的内容并写入到一个纹理中,通常在靠后的通道中使用,这个纹理能被用于后续的通道中完成一些高级图像特效。
Shader "GrabPassInvert" { SubShader { //在所有不透明几何体之后绘制 Tags { "Queue" = "Transparent" } //捕获对象后的屏幕到_GrabTexture中 GrabPass { } //用前面捕获的纹理渲染对象,并反相它的颜色 Pass <span style="white-space:pre"></span>{ SetTexture [_GrabTexture] { combine one-texture } } } }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
纹理合并命令
- Previous 是上一次SetTexture的结果
- Primary 是来自光照计算的颜色或是当它绑定时的顶点颜色
- Texture是在SetTexture中被定义的纹理的颜色
- Constant是被ConstantColor定义的颜色
一些小技巧:
1.上述的公式都均能通过关键字 Double 或是 Quad 将最终颜色调高亮度2倍或4倍。
2.所有的src属性,除了差值参数都能被标记一个“-”负号来使最终颜色反相。
3.所有src属性能通过跟随 alpha 标签来表示只取用alpha通道。
颜色常量命令
ConstantColor color
定义在combine命令中能被使用的常量颜色
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- [UnityShader]固定管线着色器基础
- Shader(固定管线着色器)
- unityshader固定管线的一些概念理解
- unity 固定管线shader转换到顶点片段着色器
- Unity Shader-法线贴图(Normal)及其原理URL和固定管线着色器
- shader回顾02 --- 固定管线编程基础
- 可编程渲染管线与着色器语言
- OpenGL ES渲染管线与着色器
- 可编程渲染管线与着色器语言
- OpenGL ES渲染管线与着色器
- 可编程渲染管线与着色器语言
- 可编程渲染管线与着色器语言
- OpenGL ES渲染管线与着色器
- OpenGL ES渲染管线与着色器
- GPU渲染管线与可编程着色器
- 着色器:着色器语言&固定功能着色器
- UnityShader官方案例之表面着色器光照示例
- UnityShader官方案例之编写顶点和片段着色器
- Android之属性动画(一)
- 应用程序中内存分配概要
- 简洁的使用Linux yum功能
- < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />的用途说明
- JDBC- exercise-2 通过htttp 访问 数据库,返回一个JSON格式的相应信息
- [UnityShader]固定管线着色器基础
- MSDE使用说明文档
- 我的RFID整理地址(更新中)
- C++多态的实现
- MFC对话框自动调整(Automatic Dialog Resizing) -- 翻译 Dmitry Kochin
- 在HTML中增加meta name="viewport"控制页面不随着放大缩小变形的实现方式
- jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
- ThinkPad E431光驱改硬盘托架操作
- Vector