OpenGL中运用CG时的矩阵转换问题

gths123 2008-07-11 01:08:44
我写了一个小程序练习,功能很简单,只是用CG把所有的顶点都变成绿色,程序是这么写的:

void display()
{
float WorldViewMatrix[16];
float ProjectionMatrix[16];
...
///////////////////////////////
//// the code to set the camera
///////////////////////////////

glMatrixMode(GL_MODELVIEW);
glGetFloatv(GL_MODELVIEW_MATRIX,WorldViewMatrix);

glMatrixMode(GL_PROJECTION);
glGetFloatv(GL_PROJECTION_MATRIX,ProjectionMatrix);

cgSetMatrixParameterfr(cgp_WorldViewMatrix,WorldViewMatrix);
cgSetMatrixParameterfr(cgp_ProjectionMatrix,ProjectionMatrix);

cgUpdateProgramParameters(m_CGProgram);
...
}

CG 程序如下:
struct vOutPut{
float4 position : POSITION;
float4 color : COLOR;
};
vOutPut C2E1v_green(float3 position : POSITION ,const uniform float4x4 WorldView,const uniform float4x4 Projection)
{
vOutPut OUT;
OUT.position = mul(WorldView, float4(position.xyz, 1.0));
OUT.position = mul(Projection,OUT.position);
float dis = length(OUT.position);
OUT.color = float4(0.0,1.0,0.0,1.0);
return OUT;
}

但是渲染后的场景跟原来不用CG渲染的结果是不一样的,是不是矩阵有问题?
用glGetFloatv()函数获得的modelViewMatrix 和 projectionMatrix相乘得到的矩阵是worldViewProjection Matrix吗?
...全文
63 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkstorm2111203 2008-07-12
  • 打赏
  • 举报
回复
这里不是cg论坛,建议搂住到别处寻找答案
gths123 2008-07-11
  • 打赏
  • 举报
回复
解决了
cgGLSetStateMatrixParameter(modelViewProMatrix, CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY);
唉,对API不熟啊!

581

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧