码迷,mamicode.com
首页 > 其他好文 > 详细

cg中的关键字、语义词、函数库

时间:2015-04-04 10:26:57      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

一、cg的关键字与语义字

关键字:

asm*              explicit           pixelfragment*       template

asm_fragment      extern             pixelshader*         texture*

auto              FALSE              private              texture1D

bool              fixed              protected            texture2D

break             float*             public               texture3D

case              for                register             textureCUBE

catch             friend             reinterpret_cast     textureRECT

char              get                return               this

class             goto               row_major            throw

column_major      half               sampler              TRUE

compile           if                 sampler_state        try

const             in                 sampler1D            typedef

const_cast        inline             sampler2D            typeid

continue          inout              sampler3D            typename

decl*             int                samplerCUBE          uniform

default           interface          shared               union

delete            long               short                unsigned

discard           matrix*            signed               using

do                mutable            sizeof               vector*

double            namespace          static               vertexfragment*

dword*            new                static_cast          vertexshader*

dynamic_cast      operator           string*              virtual

else              out                struct               void

emit              packed             switch               volatile

enum              pass*        technique*           while
以下关键字可以被用作标志符(建议不要这样做):
half2x3     float4


说明:

1、标有星号的话是不区分大小写的。

2、任何以两个的下划线作为前缀(例如,__ newType)的标识符被保留。

3、版权归 NVIDIA公司:http://http.developer.nvidia.com/CgTutorial/cg_tutorial_appendix_d.html

 

二、语义词

 

三、cg的函数库

————————————————————————————————————————————————————————————

函数              功能说明

————————————————————————————————————————————————————————————

abs(x)             返回输入参数x的绝对值

————————————————————————————————————————————————————————————

acos(x)            数学中常用到的反余弦arccos(x),值域为[-1, 1],即参数x取值为[-1, 1],得到的角度在[0, PI]区间

————————————————————————————————————————————————————————————

asin(x)            反正弦,值域为[-1, 1],即参数x取值为[-1, 1],得到的角度在[-PI/2 , PI/2]区间

————————————————————————————————————————————————————————————

atan(x)            反正切,值域为无穷,即参数x取值不限,得到的角度在[-PI/2, PI/2]区间

————————————————————————————————————————————————————————————

atan2(y, x)          y/x的反正切,这里atan(x) = atan2(y, float(x))

————————————————————————————————————————————————————————————

sin(x)             返回角度x的正弦值,得到值的范围是[-1, 1]

————————————————————————————————————————————————————————————

cos(x)            返回角度x的余弦值,得到值的范围是[-1, 1]

————————————————————————————————————————————————————————————

sinh(x)            x的双曲正弦值

————————————————————————————————————————————————————————————

cosh(x)            x的双曲余弦值

————————————————————————————————————————————————————————————

all(x)              &&运算,输入的参数只要有一个为0,则函数返回false,全为1时才返回true

————————————————————————————————————————————————————————————

any(x)               ||运算,输入的参数只要有一个为1,则函数返回true,全为0时才返回false

————————————————————————————————————————————————————————————

ceil(x)            输入的参数向上取整,如 ceil(float(1,1))返回2, ceil(float(1.9))返回2

————————————————————————————————————————————————————————————

floor(x)           输入的参数向下取整

————————————————————————————————————————————————————————————

clamp(x, a, b)        如果x 值小于a,则返回a;如果x 值大于b,返回b;否则,返回x (即x在[a, b],越那边的界就取哪边的值,不越界就返回x)

————————————————————————————————————————————————————————————

saturate(x)            如果x 小于0,返回0;如果x 大于1,返回1;否则,返回x(即x在[0, 1],越那边的界就取哪边的值,不越界就返回x)

————————————————————————————————————————————————————————————

sign(x)             如果x 大于0,返回1;如果x 小于0,返回01;否则返回0

————————————————————————————————————————————————————————————

cross(a, b)          参数a,b必须是三元向量,函数为去计算两个三元向量的叉积

————————————————————————————————————————————————————————————

degrees(x)          输入弧度值,函数返回角度值

————————————————————————————————————————————————————————————

radians(x)          输入角度值,函数返回弧度值

————————————————————————————————————————————————————————————

determinant(x)        计算x矩阵的行列式因子

————————————————————————————————————————————————————————————

dot(a, b)           计算a和b的点积, a和b可以是标量,也可以是矢量

————————————————————————————————————————————————————————————

exp(x)              计算e的x次方值

————————————————————————————————————————————————————————————

exp2(x)           计算2的x次方值

————————————————————————————————————————————————————————————

fmod(x, y)           返回x/y的余数,y不为0

————————————————————————————————————————————————————————————

frac(x)           返回一个标量的小数部分

 ————————————————————————————————————————————————————————————

frexp(x, out y)       将x分解成尾数和指数表示,x = m * exp2(y),返回m,指数存到y中;如果x为0,则尾数和指数都返回0

————————————————————————————————————————————————————————————

isfinite(x)          判断标量或者向量中的每个数据是否是有限数,如果是返回true;否则(无限数或非数)返回false;

————————————————————————————————————————————————————————————

isinf(x)           判断标量或者向量中的每个数据是否是无限,如果是返回true;否则返回false;

————————————————————————————————————————————————————————————

isnan(x)              判断标量或者向量中的每个数据是否是非数,如果是返回true;否则返回false;

————————————————————————————————————————————————————————————

ldexp(x, n)         返回 x * exp2(n) 的值

————————————————————————————————————————————————————————————

lerp(a, b, f)        计算(1− f )∗ a + b∗ f 或者a + f ∗(b − a)的值。即在下限a 和上限b 之间进行插值,f 表示权值。注意,如果a 和b 是向量,则权值f                                         必须是标量或者等长的向量。

————————————————————————————————————————————————————————————

lit(NdotL, NdotH, m)          N 表示法向量;L 表示入射光向量;H 表示半角向量;m 表示高光系数。函数计算环境光、散射光、镜面光的贡献,返回的4 元向量:

                                      X 位表示环境光的贡献,总是1.0;
                                      Y位代表散射光的贡献,如果N • L < 0,则为0;否则为N • L
                                     Z位代表镜面光的贡献,如果 N • L < 0或者N • H < 0,则位0;否则为(N • H)m;
                                     W 位始终位1.0

————————————————————————————————————————————————————————————

log(x)           计算 ln(x) 的值,x必须大于0

————————————————————————————————————————————————————————————

log2(x)          计算 log2(x) 的值,x 必须大于0

————————————————————————————————————————————————————————————

log10(x)           计算 log10(x) 的值,x 必须大于0

————————————————————————————————————————————————————————————

max(a, b)        比较两个标量或等长向量元素,返回最大值

————————————————————————————————————————————————————————————

min(a,b)         比较两个标量或等长向量元素,返回最小值

————————————————————————————————————————————————————————————

mul(M, N)        计算两个矩阵相乘,如果M 为AxB 阶矩阵,N 为BxC 阶矩阵,则返回AxC 阶矩阵。

              下面两个函数为其重载函数

————————————————————————————————————————————————————————————

mul(M, v)           计算矩阵和向量相乘

————————————————————————————————————————————————————————————

mul(v, M)          计算向量和矩阵相乘

————————————————————————————————————————————————————————————

noise(x)                      噪声函数,返回值始终在0,1 之间;对于同样的输入,始终返回相同的值(也就是说,并不是真正意义上的随机噪声)

————————————————————————————————————————————————————————————

pow(x, y)         计算 x的y次方

————————————————————————————————————————————————————————————

round(x)        四舍五入

————————————————————————————————————————————————————————————

rsqrt(x)          x的反二次方根,x大于0

————————————————————————————————————————————————————————————

sincos(float x, out s, out c)     该函数是同时计算x 的sin 值和cos 值,其中s=sin(x),c=cos(x)。该函数用于“同时需要计算sin 值和cos 值的情况”

————————————————————————————————————————————————————————————

smoothstep(min, max, x)       值x 位于min、max 区间中。如果x=min,返回0;如果x=max,返回1;如果x 在两者之间

                按照该公式返回数据:技术分享

————————————————————————————————————————————————————————————

step(a, x)        如果x<a,返回0;否则,返回1

————————————————————————————————————————————————————————————

sqrt(x)            求x 的平方根, x大于0

————————————————————————————————————————————————————————————

tan(x)          计算正切值

————————————————————————————————————————————————————————————

tanh(x)          计算双曲正切值

————————————————————————————————————————————————————————————

transpose(M)       M为矩阵,计算其转置矩阵

————————————————————————————————————————————————————————————

 

cg中的关键字、语义词、函数库

标签:

原文地址:http://www.cnblogs.com/skylinee/p/4391571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!