Unity3D shader脚本
来源:互联网 发布:混凝土软件 编辑:程序博客网 时间:2024/04/18 03:17
转自:http://blog.csdn.net/const1115/article/details/7967154
Unity中的shader脚本,是用叫做shaderlab的脚本语言来写。这个unity中的shader不只是DX中HLSL写的顶点和像素shader,而应该说是对应着
DX中的Effect脚本,定义了一个完整渲染的状态。
一个文件,只能包含一个unity的shader
shader文件的内容:
简单的一个shader的内容框架大致如下:
shader "shader name"{properties{_Color("Diffuse Color", Color) = (1,.5,.5,1)_Texture("Main Texture", 2D) = ""{}}SubShader{Tags{"Queue"="Transparent"}pass{Tags{}Material{}} }Fallback ""}
框架看上去非常简洁,大致的功能也从字面意思上面就可以理解。
properties 中定义的变量,是可以暴露出来给编辑器编辑的,在unity编辑器中选中一个材质,材质中的shader里面定义在properties
中的变量就会出现该材质的属性面板中,可以手动设置对应的属性。其中,纹理属性后面,还有一些可选的属性可以设置,用于设置纹理的坐标,和其他一些属性。
当使用顶点shader的时候,该属性标记的纹理坐标无效。
一个SubShader相当于DX中的技术,一个shader中可以出现多个subshader。在引擎渲染物体的时候,会在shader中找到第一个可以匹配硬件的SubShader,用于渲染。
如果一个都没有找到,则用 Fallback 中的shader来渲染物体。
Tags 标记。SubShader 和 pass都有自己的标记。先来说说SubShader的Tags,这个Tags是用来告诉引擎该什么时候渲染该物体。一般在渲染引擎中,
渲染物体顺序为 背景物体->不透明物体->透明物体->UI。Unity给了几个保留的关键字,Background, Geometry, Transparent,Overly.也就对应着背景,不透明,透明,UI。
在内部,这几个关键字都对应着一个数值Background = 1000, Geometry = 2000, Transparent = 3000,Overly = 4000。所以,我们也可以把tag这样写:
Tags{"Queue"="Geometry + 1"}
这代表着该物体时在不透明物体渲染之后,透明物体渲染之前被渲染。
- Unity3D shader脚本
- Unity3D shader脚本
- Unity3D shader脚本
- Unity3d Shader
- unity3d shader
- Unity3D shader
- Unity3D Shader
- Unity3D -- Shader
- Unity3D: Shader
- Unity3D Shader
- Unity3D之Shader:Shader介绍
- Unity3d shader -- fixed function shader
- Unity3D中的shader基础知识
- Unity3D中Shader
- Shader in Unity3d
- Unity3D中的shader基础知识
- Unity3D中的shader进阶
- Unity3D--shader基础知识
- php开启错误信息提示
- Yii中CGridView使用心得
- 堆排序的简要概述
- Struts2的OGNL调用公共静态方法
- JS常用方法
- Unity3D shader脚本
- 感觉很不错的学习网站
- IIS7.5 aspx+asp
- ado.net学习笔记入门
- struts 2标签全套
- Creo二次开发--函数(2)--信息类函数
- Linux mmap调用使用经验
- 去掉 embedded LINUX 开机光标以及设置 启动LOGO
- 华为T8950d和小米手机1对比