FLSL2.0学习笔记(一)

来源:互联网 发布:cache数据库 东华 编辑:程序博客网 时间:2024/05/18 01:15

最近在学习Flare3D 2.5的FLSL2.0着色语言,把其记录下来,方便以后查看。

一、什么是FLSL?
       FLSL 是一种高级的shader 语言,专供Flare3D使用。和GLSL,HLSL以及PiexlBender 3D有些相似之处,FLSL可以让你同时执行片元和顶点的操作,简化开发过程。
       FLSL2.0中有两种FLSL对象:FLSLMaterial和FLSLFilter。FLSLMaterial是一个完整的shader,可以在你的Flare3D程序中直接编译和执行。FLSLFilter只是整个shader的一个部分,它可以像其他Filter一样能够结合其他Filter来创建一些复杂的效果。
二、FLSL2.0的结构
       一个最简单的FLSL2.0文件如:

use namespace flare.transforms;technique main() {output vertex = transform();output fragment = float4(1);}

       我们做的第一件事就是告诉编译器我们要使用的namespace(命名空间)。这个命名空间包括基本数据类型和一些函数库。你也能添加自己的命名空间和自定义函数。  

       第二排是必须的,technique 不能改变,函数名main 可以任意取,可以带小括号也可以不带小括号。函数里有一个顶点着色器的输出和一个片元着色器的输出。其中transform() 就的flare.transforms这个命名空间里定义的函数。着色语言是以矢量和矩阵为基础,所以有很多矢量表示法,如:片元着色器的输出是float4(1.0) ,表示由4个为1.0 的浮点数组成的矢量。从颜色的体系来理解这4个矢量分别表示颜色的红色、绿色、蓝色和透明度,float4(1.0) = float4(1.0,1.0,1.0,1.0) 结果就是不透明的白色。  

0 0