Shader编程笔记(一)<新手入门> 固定管线Shader
2016-02-25 13:46
525 查看
初识 固定管线Shader
介绍
Fixed Function Shader也就是固定管线Shader,SurShader可以多个共存,来匹配不同的显卡,当全部都无法匹配时,使用FallBack。
固定管线Shader 主要涉及到以下5个部分:
1.Properties 属性
2.Material 材质
3.Lighting 灯光
4.Settexture 设置纹理
在完成渲染设定后,你能指定一定数量的纹理和当使用 SetTexture 命令时所采用的混合模式:
语法结构: SetTexture texture property { [Combine options] }
5.Pass 渲染管线
Pass通道块控制被渲染的对象的几何体
语法:Pass { [Name and Tags] [RenderSetup] [TextureSetup] }
基本通道命令包含一个可选的渲染设置命令的列表,和可选的被使用的纹理的列表。
Name and tags 名称和标签
一个通道能定义它的Name 和任意数量的Tags (用于向渲染引擎传递通道的意图的名称/值的字符串)。
Render Setup 渲染设置
通道设定显示硬件的各种状态,例如能打开alpha混合,能使用雾,等等。
详细用法看代码部分。
1. Shaderlab 基本结构
代码部分
如图所示
后面会持续更新,如有错误请帮忙指正,谢谢大家。
介绍
Fixed Function Shader也就是固定管线Shader,SurShader可以多个共存,来匹配不同的显卡,当全部都无法匹配时,使用FallBack。
固定管线Shader 主要涉及到以下5个部分:
1.Properties 属性
2.Material 材质
3.Lighting 灯光
4.Settexture 设置纹理
在完成渲染设定后,你能指定一定数量的纹理和当使用 SetTexture 命令时所采用的混合模式:
语法结构: SetTexture texture property { [Combine options] }
5.Pass 渲染管线
Pass通道块控制被渲染的对象的几何体
语法:Pass { [Name and Tags] [RenderSetup] [TextureSetup] }
基本通道命令包含一个可选的渲染设置命令的列表,和可选的被使用的纹理的列表。
Name and tags 名称和标签
一个通道能定义它的Name 和任意数量的Tags (用于向渲染引擎传递通道的意图的名称/值的字符串)。
Render Setup 渲染设置
通道设定显示硬件的各种状态,例如能打开alpha混合,能使用雾,等等。
详细用法看代码部分。
1. Shaderlab 基本结构
Shader"name"{ [Properties] SurShader [FallBack] }
代码部分
Shader"name"{ Properties{ _Color("Main Color",color)=(1,1,1,1) //"Main Color"是unity面板中显示的颜色 _Ambient("Ambient",color)=(0.3,0.3,0.3,0.3) _Specular("Specular",color)=(1,1,1,1) _Shininess("Shininess",range(0,8))=4//参数float,也可以是range 表示范围 _Emession("Emession",color)=(1,1,1,1) } SurShader{ pass{ // color(1,1,1,1)//使用小括号,表示固定值,在Inspector面板中不可见 // color[_Color] //使用中括号,表示参数值,可在Inspector面板随时更改 Material{ diffuse[_Color]//漫反射,表示默认漫反射的颜色 ambient[_Ambient]//环境光 specular[_Specular]//镜面高光 shininess[_Shininess]//表示高光反射的强度与区域 emission[_Emission]//自放光 } lighting on //打开光照 on表示打开 separatespecular on//独立的镜面高光 } } }
如图所示
后面会持续更新,如有错误请帮忙指正,谢谢大家。
相关文章推荐
- Eclipse错误:Problems opening an editor Reason: [Project Name] does not exist解决办法
- java,异常处理,throwable和try...catch[zz]
- 内部类相关知识-java基础
- Java基础:Day12笔记内容 (Eclipse)
- Java基础06 组合
- 基于Spring+Mybatis的多数据源动态切换
- java内存管理
- ecilipse Javadoc文档注释
- View RDD contents in Python Spark
- JavaSE基础
- eclipse提示An SWT error has occurred 怎么处理?
- python 列表转为字典的两个小方法
- Java 泛型整理
- Spring 消息JMS(Java Message Service)
- LaTeX 嵌入MATLAB 绘图的字体
- 模型评价和优化 Real-World Machine Learning: Model Evaluation and Optimization
- Java 集合体系之 ArrayList 源码分析
- Spring:ContextLoaderListener作用
- 一张图读懂Java多线程
- github简要使用