HLSL中的函数
来源:互联网 发布:eduline源码 编辑:程序博客网 时间:2024/05/20 20:17
函数的作用是为了降低程序的复杂度。HLSL的函数与C函数类似:他们都有定义与函数体,而且他们都可以有返回值与声明列表。与C函数一样,HLSL通过参数列表与返回值类型进行匹配。
与C函数不同的是,HLSL入口函数使用语义来将函数声明绑定到SHADER的输入输出上。这使得把缓冲区数据绑定到SHADER上变的容易。
函数包含一个声明与一个函数体,声明必须在函数体前。
下面分析一下这个函数:
float4 Light(float3 LightDir : TEXCOORD1,
uniform float4 LightColor,
float2 texcrd : TEXCOORD0,
uniform sampler samp) : COLOR
{
float3 Normal = tex2D(samp,texcrd);
return dot((Normal*2 - 1), LightDir)*LightColor;
}
这个函数返回一个最终颜色,这是一个由纹理采样结果和灯光颜色组成的函数。这个函数有四个输入,两个是有语义的,LightDir有TEXCOORD1语义,而texcrd有TEXCOORD0语义。语义意味着这些变量保存的数据来自顶点缓冲区。尽管LightDir有着TEXCOORD1语义,这个参数可能并不是一个纹理坐标。TEXCOORDn语义类型经常用来为你提供一种传递需要顶点保存但顶点没有预先定义的参数的方法。
另外两个输入,LightColor和samp带uniform关键字。Uniform常量是不会在渲染时被改变的。这些参数通常来自SHADER的全局变量。
参数可以带in,out或inout关键字,且只能用值传递的方法,但是如果使用inout关键字,在函数输入时它就是原数据的拷贝,并在返回又重新拷贝回原数据中,相当于一个引用传递。
- HLSL中的函数
- HLSL中的内置函数
- HLSL函数
- HLSL固有函数 【Intrinsic Functions (DirectX HLSL)】
- HLSL固有函数 【Intrinsic Functions (DirectX HLSL)】
- HLSL固有函数 [Intrinsic Functions (DirectX HLSL)]
- HLSL固有函数 【Intrinsic Functions (DirectX HLSL)】
- HLSL固有函数 【Intrinsic Functions (DirectX HLSL)】
- HLSL固有函数 【Intrinsic Functions (DirectX HLSL)】
- HLSL Intrinsic Functions(HLSL内置函数)
- HLSL 函数 备用
- (转)hlsl函数
- HLSL内置函数一览
- HLSL固有函数
- HLSL固有函数
- HLSL内置函数一览
- HLSL内置函数
- HLSL的内置函数
- MyEclipse 配置TOMCAT(装载)
- 获取加载进ID3DXMESH后的.x文件的信息
- AND的优先顺序高于OR的优先顺序
- 使用XML管理模版資源
- Larbin 搜索引擎源码赏析——(五)为二次开发用户提供的进一步处理网页的接口函数
- HLSL中的函数
- References_2009_04_01
- 轻量级服务器选择
- aix关于ftp的问题
- typedef_Names
- MyEclipse快捷键与插件大全
- C语言宏的使用
- 我是一个硬盘(内存、CPU、主板)全集!【转载】
- VC++6 中常见错误