代码之家  ›  专栏  ›  技术社区  ›  Ashwin Nanjappa

在Cg中访问OpenGL状态变量

  •  3
  • Ashwin Nanjappa  · 技术社区  · 16 年前

    我需要访问 OpenGL状态变量 cgGLSetStateMatrixParameter() 在我的C/C++代码中。有没有更简单的方法?

    1 回复  |  直到 11 年前
        1
  •  4
  •   Ashwin Nanjappa    16 年前

    如果你在最近的 重心剖面 arbvp1 事实上,Cg着色器程序可以直接访问OpenGL状态(MVP矩阵、材质和灯光设置)。这使得编写这些程序不那么痛苦。

    以下是一些可以访问的状态变量:

    state.matrix.mvp
    state.matrix.inverse.mvp
    state.matrix.modelview
    state.matrix.inverse.modelview
    state.matrix.modelview.invtrans
    state.matrix.projection
    state.matrix.inverse.projection
    

    灯光和材质属性:

    state.material.ambient
    state.material.diffuse
    state.material.specular
    state.light[0].ambient
    

    有关状态变量的完整列表,请参阅一节 访问OpenGL状态、OpenGL ARB顶点程序配置文件(arbvp1) Cg Users Manual .

    • 所有OpenGL状态变量都是 制服 在Cg中访问时键入。
    • 对于 变量 指数 state.light[1]。环境光 )