Shader学习之Cg语言五(Cg函数与标准函数库)
来源:互联网 发布:百事通酒店软件 编辑:程序博客网 时间:2024/05/22 05:30
Cg函数
函数部分只做两点说明:
1、数组形参:当数组作为函数形参的时候如果要传入形参数组长度时,一定要保证调用该函数时实参数组长度和形参数组长度一致,如果没有保持一致,编译时会出现提示信息:error C1102: incompatible type for parameter...。
float myFunc( float vals[3]) { float sum = 0.0; for(int i = 0; i< vals.length; i++) { sum += vals[i]; } return sum; }void main(...) { float a[2] = {0.0, 1.0}; float b[3] = {0.0, 1.0, 2.0}; myFunc(a); //错误调用,会导致编译错误 myFunc(b); //正确调用}
故数组作为形参时最好不要传入长度。
2、入口函数:由于着色程序分为顶点程序和片段程序,两者对应的图形流水线上的不同阶段,所以这两个程序都各有一个入口函数。我们通过程序的输入输出语义绑定来区分入口程序是对应顶点程序还是片段程序。
Cg标准函数库
1、数学函数
如果x值大于b,返回b;
否则,返回x。cos(x)返回弧度x的余弦值。返回值范围为
L表示入射光向量;
H表示半角向量;
m表示高光系数。
函数计算环境光、散射光、镜面光的贡献,返回的4元向量。
X位表示环境光的贡献,总是1.0;
Y位代表散射光的贡献,如果
Z位代表镜面光的贡献,如果
W位始终位1.0log(x)计算
如果M是一个AxB矩阵,M的转置是一个BxA矩阵,它的第一列是M的第一行,第二列是M的第二行,第三列是M的第三行,等等
2、几何函数
函数 功能描述
只对三元向量有效
关于几何函数需要注意以下两点:
- 着色程序中的向量最好进行归一化之后再使用,否则会出现难以预料的 错误;
- reflect 函数和 refract 函数都存在以“入射光方向向量”作为输入参数, 注意这两个函数中使用的入射光方向向量,是从外指向几何顶点的;平时我 们在着色程序中都是将入射光方向向量作为从顶点出发的。
3、纹理映射函数
函数 功能描述
s:一元、二元、三元纹理坐标
z:使用深度比较的值
q:一个透视值(其实就是透视投影后得到的齐次坐标的最后一位),这个值被用来除以纹理坐标(s),得到新的纹理坐标(已归一化)然后用于纹理查询
4、偏导函数
函数 功能描述
函数 ddx和ddy用于求取相邻像素间 属性的差值;
函数 ddx和ddy的输入参数通常是纹理坐标;
函数 ddx和ddy返回相邻像素键的属性差值;
函数 功能描述
阅读全文
0 0
- Shader学习之Cg语言五(Cg函数与标准函数库)
- Cg(C for Graphic)语言标准函数库之数学函数与几何函数!
- Shader学习之Cg语言一(Cg语言概述)
- Shader学习之Cg语言二(Cg数据类型)
- Unity Shader--- CG 标准函数库
- Shader学习之Cg语言三(Cg表达式与控制语句)
- Cg(C for Graphic)语言标准函数库之纹理映射函数,偏导函数,与调试函数
- 学习Unity Shader使用CG 标准函数
- Cg(C for Graphic)标准函数库之数学函数与几何函数
- 【引用】 Cg(C for Graphic)标准函数库之数学函数与几何函数
- Cg(C for Graphic)标准函数库之数学函数与几何函数
- Cg(C for Graphic)标准函数库之数学函数与几何函数
- Unity Shader 学习笔记 (三) CG 标准函数库
- unityShader之CG标准函数库
- Unity Shader 基础4--- CG 标准函数库
- Unity Shader 基础4--- CG 标准函数库
- Shader学习基础之三(CG语言基础)
- 【引用】 Cg标准函数库之纹理映射函数,偏导函数,与调试函数
- 欢迎使用CSDN-markdown编辑器
- 计算机网络部分面试题
- jQuery特殊符号分割字符串
- 敏捷过程与极限编程(XP)
- Python和Pygame游戏开发指南(1)MOMERY PUZZLE
- Shader学习之Cg语言五(Cg函数与标准函数库)
- HTML5
- HDU
- UITableview 优化
- Java 面试常见问题
- service层深入理解
- jQuery对的表单数据序列化和校验
- 神经网络中的优化算法
- QtCharts动态的显示折线图