Registriert: Mo Dez 30, 2002 15:48 Beiträge: 40 Wohnort: My OwnUniverse
Hi, ich wurstel mich gerade durch die OpenGL Tutorials durch. Momentan bin ich beim Kapitel Licht. Da steht folgendes drin:
Zitat:
OpenGl kennt einen sog. Attenuation Factor:
Attenuation Factor = 1 / (kc + kl*d + kq*d*d) d = Entfernung zwischen dem berechneten Vertex und der Lichtquelle kc = GL_CONSTANT_ATTENUATION kl = GL_LINEAR_ATTENUATION kq = GL_QUADRATIC_ATTENUATION
Dieser Faktor bei der Lichtberechnung einfach mit den Lichtstärken multipliziert, so dass das Licht schwächer wird. Übergeben werden die Werte wieder mittels glLightx:
Aber jetzt weiß ich immernoch nicht, was Constant, Linear und Quadratic Attenuation ist.
_________________ Well a man's got to do what a man must do
But I'll never give my soul to you
No fallen angel's prophecy
Will ever take hold of the man you see.
CONSTANT_ATTENUATION ist der Wert, um den das Licht konstant abgeschwächt wird(siehe in die Formel: Kein Faktor d dahiter(Entfernung) GL_LINEAR_ATTENUATION wird einfach mit der Entfernung d multipliziert(siehe Formel). GL_QUADRATIC_ATTENUATION wird mit der Entfernung Quadriert(siehe Formel).
Mit Unterschiedlicher Entfernung geben diese 3 Typen entsprechend einen etwas anderen Lichteffekt ab.
Zitat:
Aber jetzt weiß ich immernoch nicht, was Constant, Linear und Quadratic Attenuation ist.
Attenuation = Lichtschwächung. Die Drei Faktoren werden mit der Formel zusammengerechnet(1 / (kc + kl*d + kq*d*d)), und dann mit den eigentlich berechneten Lichtstärken multipliziert, so dass die Lichtstärke mit zunehmender Entfernung abnimmt.
Registriert: Mo Dez 30, 2002 15:48 Beiträge: 40 Wohnort: My OwnUniverse
Toll und was heißt das jetzt genau? Kann ich nicht einfach nur einen Wert für eine konstante Lichtschwächung nehmen? Weil ehrlich gesagt, weiß ich immernoch nix mit den ganzen Werten anzufangen. Sorry, aber ich raff dat net.
_________________ Well a man's got to do what a man must do
But I'll never give my soul to you
No fallen angel's prophecy
Will ever take hold of the man you see.
müssen tust du da erstmal gar nichts einsetzen(siehe die sources zum tut). es langt die standardwerte so zu belassen, wie sie sind, nur wenn du einen von der entfernung abhängigen abschwächungsfaktor haben willst, sind diese Variablen ganz hilfreich. Wie man es sonnst noch erklären kann.... hmmm - SoS ne Idee?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Huffmann hat geschrieben:
Toll und was heißt das jetzt genau? Kann ich nicht einfach nur einen Wert für eine konstante Lichtschwächung nehmen? Weil ehrlich gesagt, weiß ich immernoch nix mit den ganzen Werten anzufangen. Sorry, aber ich raff dat net.
Hm?!? DelphiC hat doch zu allen Werten ne Erklärung gegeben, un da fiel auch die Konstante GL_CONSTANT_ATTENUATION die genau das macht, nämlich das Licht konstant abzuschwächen.
Dann lässt du die anderen anderen Werte (GL_LINEAR_ATTENUATION und GL_QUADRATIC_ATTENUATION) unangetastet, da diese standardmäßig auf 0 sind, und schon hast du eine konstante Lichabschwächung. Dann wird aus der Formel
Ansonsten versteh ich dein Problem nicht, und rate dir mal (auch wenn in DelphiCs Tut alles nötige drin) steht mal das Beleuchtungskapitel aus dem Redbook.
Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.