Cg中的一个Bug

来源:互联网 发布:qq游戏宝宝淘宝网 编辑:程序博客网 时间:2024/03/29 16:02

Cg中有一个Bug,就是当你用运行库函数cgGLSetStateMatrixParameter来传送MODELVIEW矩阵时,所绘制的物体就会变大,而且会从原点发生位置偏移。我现在用的是Cg 1.4,这个Bug还存在。所以建议使用arbvp1 Profile,通过它的“glstate”结构来访问MODELVIEW矩阵(如glstate.matrix.mvp)。

在Cg程序中把position = mul( modelViewProj, v );改为position = mul( glstate.matrix.mvp, v );

只要与MODELVIEW矩阵有关的都要这样改,比如modelViewInv改为glstate.matrix.invtrans.modelview[0]。

下面是一些常用的glstate结构域:

glstate.matrix.modelview[n]: modelview matrix n

glstate.matrix.mvp:modelview-projection matrix

glstate.matrix.projection :projection matrix

glstate.matrix.texture[n] :texture matrix n

glstate.matrix.palette[n]:palette matrix n

glstate.matrix.program[n]:program matrix n

glstate.matrix.inverse.mvp:modelview-projection inverse matrix

这里只列举了一部分,详情请参阅《Cg User Manual》。

原创粉丝点击