OPENGL Linienbeleuchtung.
-
Hallo Opengl Cracks
ich habe mal eine grundlegende Frage zur Beleuchtung von Linien.
Habe einen Zylinder aus Linien gezeichnet und mit einer einzelnen Lichtquelle
beleuchtet. Wenn der Zylinder rotiert ( um Y Achse ) so ändert sich die
Helligkeit der Linien???Haben die eine Vorder und Rückseite, oder was passiert da
Gruss Peter
-
dagute schrieb:
Haben die eine Vorder und Rückseite, oder was passiert da
Naja, sie haben wohl Normalvektoren!?
-
Lichttyp? Wenn er nicht
GL_AMBIENT
ist dann ist es doch ganz verständlich, dass eine Linie, die näher beim Licht ist, heller ist.EDIT: Nutzt du die FF?
-
EOutOfResources schrieb:
Lichttyp? Wenn er nicht
GL_AMBIENT
ist dann ist es doch ganz verständlich, dass eine Linie, die näher beim Licht ist, heller ist.EDIT: Nutzt du die FF?
Hallo
ich benutze eine geringen Anteil ambient Licht und einen Strahler der rechts oben über der Szene hängt - ungerichtet.
Der Effekt ist so: Der Zylinder dreht sich langsam und dabei dabei dimmt das Licht einmal pro umdrehung von ganz hell auf ca. 30%. Aber es betrifft immer ALLE Linien
sowohl die vorne wie die hinten??
Wenn ich die Lichtquelle abschalte, ist der Effekt verschwunden.
Das heisst für mich, die Lichtintensität hängt irgendwie mit dem Rotationswinkel zusammen. Aber wie - ich würd's so gern verstehen????Gruss Peter
-
dagute schrieb:
ich benutze eine geringen Anteil ambient Licht und einen Strahler der rechts oben über der Szene hängt - ungerichtet.
Du meinst ein Punktlicht!?
dagute schrieb:
Der Effekt ist so: Der Zylinder dreht sich langsam und dabei dabei dimmt das Licht einmal pro umdrehung von ganz hell auf ca. 30%. Aber es betrifft immer ALLE Linien sowohl die vorne wie die hinten?? Wenn ich die Lichtquelle abschalte, ist der Effekt verschwunden. Das heisst für mich, die Lichtintensität hängt irgendwie mit dem Rotationswinkel zusammen. Aber wie - ich würd's so gern verstehen????
Haben deine Vertices denn nun Normalen oder nicht!? Haben alle die selbe Normale!?
-
Hallo
ja ein Punktlicht.
nein meine Vertexe haben keine Normalen - ich dachte die braucht man nur für Flächen - ist ja nur ein Punkt und ich kann die Normalen dann ja hinzeigen lassen wo ich will - sehe da keinen Sinn drin??Gruss Peter
-
dagute schrieb:
Vertexe
Singular: Vertex
Plural: Vertices
-
EOutOfResources schrieb:
dagute schrieb:
Vertexe
Singular: Vertex
Plural: VerticesHi
du hast sicher recht, aber das hilft mit nicht weiterGruss Peter
-
dagute schrieb:
nein meine Vertexe haben keine Normalen [...]
Ohne Normalen keine Beleuchtung. Wenn du keine Normalen definierst ist klar dass die Beleuchtung irgendwas tut. Wenn du keine Beleuchtung willst schalt sie ab.
dagute schrieb:
[...] ist ja nur ein Punkt und ich kann die Normalen dann ja hinzeigen lassen wo ich will - sehe da keinen Sinn drin??
Die Beleuchtung wird für jeden Vertex berechnet und dann über was auch immer für eine Art von Primitive du mit diesen Vertices zeichnest interpoliert. Ob das jetzt Dreiecke, Punkte oder Linien sind macht da keinen Unterschied. Ein Vertex repräsentiert im Sinne der Beleuchtung einen Punkt einer Oberfläche und um die Beleuchtung die dieser Punkt erfährt berechnen zu können muss OpenGL wissen in welche Richtung die Oberfläche an dieser Stelle schaut, also die Flächennormale in diesem Punkt kennen. Ergo:
dot schrieb:
Ohne Normalen keine Beleuchtung.
-
Hallo dot
danke das macht Sinn, also erzeuge ich Normalen durch die Mittelachse des
Zylinders...Gruss Peter