2009-07-28 11 views
0

Ich habe eine Spotlight-Quelle in OpenGL, die auf eine texturierte Kugel zeigt.OpenGL Spotlight durchscheint von der Rückseite

Ich rotiere die Lichtquelle mit der Kugel, so dass, wenn ich die Kugel auf die 'nicht-Licht' Seite drehen, sollte diese Seite dunkel sein.

Der ungerade Teil ist, scheint der Scheinwerfer durch meine Sphäre zu glänzen (es ist eine solide, keine Lücken zwischen den Dreiecken. Das Licht scheint ‚undichte‘ auf die andere Seite zu sein.

Irgendwelche Gedanken darüber, warum dies geschieht

Screenshots:

Front view, low light to emphasize the problem

Back view, notice the round area that is 'shining through'

+0

Können Sie einen Screenshot hochladen? –

+0

Können Sie den Quellcode veröffentlichen? – Victor

Antwort

1

Es ist wirklich schwer zu sagen von den Bildern, aber:

Überprüfen Sie, ob GL_LIGHT_MODEL_TWO_SIDE eingestellt ist (zweiseitige Beleuchtung), aber noch wichtiger, werfen Sie einen Blick auf die Normalen der Kugel, die Sie rendern.

Edit: Auch - ändern Sie die Hintergrundfarbe etwas heller. Oh und stellen Sie sicher, dass Sie nicht mit aktiviertem Alpha Blending rendern (vielleicht ist es ein Polygon-Sortierungsproblem).

1

OK, ich bin ein Nob - ich habe meine Normalen angegeben, aber nicht glEnableClientState (GL_NORMAL_ARRAY) aufrufen. Daher standen alle Normalen in einer Richtung (ich denke, das ist die Standardeinstellung, nein?)

Wie auch immer - eine Lektion gelernt - immer wieder über die Grundlagen.

Verwandte Themen