我正在将一些代码从 HSLSL 和 XNA 转换为 CG 和 OpenGL。
该代码用于渲染体积数据。但是体积数据也不是在每个维度上使用相同的距离进行采样的,例如 (0.9f, 1f, 1f)。因此需要应用比例因子。
在 XNA 和 HLSL 示例中,它们执行以下操作:
mul(input.Position * ScaleFactor, WorldViewProj);
WorldViewProj 被传递到着色器的位置。
在 OpenGL 中,我的印象是 glstate.matrix.mvp 是 ModelViewProjection,其中 ModelView 是 World * View。显然我错了,因为当我执行以下操作时,没有绘制任何内容。
output.Position = mul( input.Position * scale, glstate.matrix.mvp);
体积是在 glMatrixMode 设置为 GL_MODELVIEW 的情况下渲染的。我必须创建自己的矩阵吗?如果是这样,有什么好的教程吗?:D