OpenGL Light
-
Hallo,
ich rendere eine Scene und repositioniere je nach Camera (matrix)
das Licht in der Scene entsprechend neu.Seit eh' her habe ich dabei das Problem, das das Licht immer in
Blickrichtung die Scene erhellt, ähnlich einer Lampe auf dem Kopf.Hier ein Beispiel mit zwei verschiedenen Blikwinkeln auf die Scene:
http://kahnsoft.cwsurf.de/Image1.jpg
http://kahnsoft.cwsurf.de/Image2.jpg
Man sieht, desto steiler der Blickwinkel desto heller wird die ganze
Scene in dieser Richtung.//Spread Factors glLightf(GL_LIGHT0+m_lnum, GL_CONSTANT_ATTENUATION ,0); glLightf(GL_LIGHT0+m_lnum, GL_LINEAR_ATTENUATION,m_hotspot); glLightf(GL_LIGHT0+m_lnum, GL_QUADRATIC_ATTENUATION ,1); //Öffnungswinkel Lower for more focus //m_hotspot m_falloff glLightf(GL_LIGHT0+m_lnum, GL_SPOT_CUTOFF,m_hotspot); //Ausbreitungsintensität 0-128 glLighti(GL_LIGHT0+m_lnum, GL_SPOT_EXPONENT,1); glLightfv(GL_LIGHT0+m_lnum, GL_POSITION,m_LightPos); glLightfv(GL_LIGHT0+m_lnum, GL_SPOT_DIRECTION,m_LightDir);
Der Scene entsprechend ist das ein SpotLight, dies wird so parameteriesiert
das es wie eine Tischlampe von oben nach unten auf die scene scheint/scheinen sollte.Ist das Problem das, daß ich das Licht mit der CameraMatrix projektioniere anstatt es mit der Modelmatrix zu versuchen ?
Danke für Hinweise
gruß
Karsten