Question

Est-ce que quelqu'un sait comment je peux obtenir l'effet suivant dans OpenGL:

  • Modifier la luminosité de la scène rendue
  • Ou implémenter un paramètre Gamma dans OpenGL

J'ai essayé de changer le paramètre ambiant de la lumière et le type de lumière (directionnel et omnidirectionnel), mais le résultat n'était pas uniforme. TIA.

Merci pour votre aide, quelques informations supplémentaires:   * Je ne peux utiliser aucune API Windows spécifique.   * Le paramètre gamma ne doit pas affecter la totalité de la fenêtre car je dois avoir un gamma différent pour différentes vues.

Était-ce utile?

La solution

Sous win32, vous pouvez utiliser SetDeviceGammaRamp pour régler la luminosité / gamma globale. Toutefois, cela affecte l'ensemble de l'affichage. Ce n'est donc pas une bonne idée si votre application n'est pas en plein écran.

L’alternative portable consiste à dessiner la scène entière plus brillante ou plus sombre (ce qui est fastidieux), ou à insérer un quadrilatère alpha-mélangé plein écran sur la scène entière pour l’éclaircir ou l’obscurcir à votre guise. Aucune de ces approches ne peut affecter la courbe gamma, seule la luminosité globale; pour ajuster le gamma, vous devez capturer toute la scène dans une texture, puis la restituer à l’écran via un pixel shader exécutant chaque texel dans une fonction gamma.

Bien, après avoir lu la question mise à jour, vous avez besoin d’un quad avec assemblage mis en place pour assombrir ou éclaircir tout ce qui se trouve en dessous. P. ex.

if( brightness > 1 )
{
    glBlendFunc( GL_DEST_COLOR, GL_ONE );
    glColor3f( brightness-1, brightness-1, brightness-1 );
}
else
{
    glBlendFunc( GL_ZERO, GL_SRC_COLOR );
    glColor3f( brightness, brightness, brightness );
}
glEnable( GL_BLEND );

draw_quad();

Autres conseils

http://www.gamedev.net/community/forums /topic.asp?topic_id=435400 pourrait être une réponse à votre question, sinon vous pourriez probablement implémenter une correction gamma en tant que pixel shader

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top