您的位置:首页 > 编程语言

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 基本结构

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//独立的镜面高光

}
}

}


如图所示





后面会持续更新,如有错误请帮忙指正,谢谢大家。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: