Pregunta

necesito acceder al Variables de estado OpenGL (como las matrices MVP) en mi programa de sombreado Cg.Estoy pasando estos valores a mi programa de sombreado Cg manualmente usando llamadas como cgGLSetStateMatrixParameter() en mi código C/C++.¿Hay alguna forma más fácil de hacer esto?

¿Fue útil?

Solución

Si estás en alguna bastante reciente perfil cg (arbvp1 y posteriores), sus programas de sombreado Cg pueden acceder directamente al estado OpenGL (matrices MVP, material y configuración de luz).Esto hace que escribir esos programas sea menos doloroso.

Estas son algunas de las variables de estado a las que se puede acceder:

Matrices MVP de todo tipo:

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

Propiedades de la luz y del material:

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

Para obtener la lista completa de variables de estado, consulte la sección Acceso a OpenGL State, perfil del programa OpenGL ARB Vertex (arbvp1) en el Manual de usuario de CG.

Nota:

  • Todas las variables de estado de OpenGL son de uniforme escriba cuando se accede en Cg.
  • Para luz variables, las índice es obligatorio.(P.ej:1 en estado.luz[1].ambiente)
  • No es necesario habilitar la iluminación o las luces para utilizar los valores de luz correspondientes dentro de Cg.Pero deben configurarse usando glLuz() funciones.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top