在opengl里如何给cg程序设置参数

注:f表示float,d 表示double ,c表示按列序,r表示按行序
1,给uniform类型的标量和向量设置参数使用cgGLSetParameter函数
相应的读到该参数的函数是cgGLGetParameterf/d
2,cgGLSetMatrixParameterfr/fc/dr/dc可以给任意矩阵设置参数,相应读取函数为
cgGLGetMatrixParameterfr/fc/dr/dc
3,cgGLSetParameterArray函数设置uniform类型标量向量所构造的数组值,读到函数为cgGLGetParameterArray
4,cgGLSetMatrixParameterArray函数设置uniform类型矩阵参数的数组的值,读取函数cgGLGetMatrixParameterArray
5,设置varying类型参数:
首先传一个指针给包含有每个顶点值的数组cgGLSetParameterPointer():
然后在使用该参数的做画图操作时调用void cgGLEnableClientState(CGparameter parameter);相应的禁用函数void cgGLDisableClientState(CGparameter parameter);
另外对于vertex 的varying值还可用cgGLSetParameter设置参数,但不能cgGLGetParameter来获取varying 类型参数
6,设置sampler 参数
首先:用cgGLSetTextureParameter指定一个纹理的名字给sampler参数
其次:在画图调用时,可以让cg自己管理纹理参数,用
void cgGLSetManageTextureParameters(CGcontext context, CGbool enable);
或者用void cgGLEnableTextureParameter(CGparameter parameter)自己管理
如果要检索函数对像可以用
GLuint cgGLGetTextureParameter(CGparameter parameter);
GLenum cgGLGetTextureEnum(CGparameter parameter)可以检索一个纹理参数上
的纹理单元个数

posted on 2007-01-22 17:00  cloudseawang  阅读(1191)  评论(0编辑  收藏  举报

导航