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: Vertices

    Hi
    du hast sicher recht, aber das hilft mit nicht weiter 🙂

    Gruss 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


Anmelden zum Antworten