Doch das ganze sieht ziemlich komisch aus, denn
a) werden einzelne Flächen der selben Ebene nach hinten immer dunkel (also wenn ich eine fläche zB in 9 Faces aufteile wird jedes dieser Faces nach hinten dunkler, bis ein neues face anfängt, das dann wiederum dunkler wird - hoffe ihr wisst was ich meine^^)
b) bei Bewegung flackern (Also manchmal dunkel, manchmal hell) einige Faces (also je nach position)
Was könnte ich falsch mache / Was braucht ihr um mir zu helfen?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
a) Liegt daran, dass OpenGL nativ nur PerVertex-Lighting unterstützt. Das macht das ganze ein wenig unschön.
b) Fällt mir gerade nichts zu ein.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Doch, du könntest nen PerPixel-Shader bauen und denn verwenden.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Gibts sicherlich schon. Aber kommt drauf an, wofür du das verwenden willst, wäre das sicherlich überflüssig. Zumal du damit auch die Mindestanforderungen massiv erhöhst, indem du dann ShaderModel 2.0 oder sowas brauchst.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Bleibt also noch Teil B - Wenn ich nur Licht aktiviere, ohne den o.g. Code danach beim Rendern aufzurufen, dann sieht das ganze auch irgendwie nach Licht aus, nur eben nicht sehr schön, aber Flackern tut dann auch nichts?!
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Noch mal zu a: Werden die Flächen insgesammt dunkler oder werden die einzeln dunkler und die nachfolgenden fangen dann wieder heller an? Das Licht nimmt je nach Einstellung ab und dann werden die Flächen dunkler. Das sollte aber gleichmäßig sein. Je nach Auflösung der Objekte ist klar. Und ganz wichtig. Die normalen. Falls du dir unklar bist, dann poste mal bitte ein Bild davon, wie es aussieht. Das sagt mehr als jede Beschreibung.
b: Das Problem ist, dass die Spieleindustrie eigentlich seit Jahren nur noch auf Per Pixel Licht setzen. Und ich kann mir auch gut vorstellen, dass die Treiberherstellen da einfach schlampen, weil es denen nicht wichtig erscheint und per Vertexlicht einfach irgendwo veraltet ist (Stand ca. 1996). In dem glSlang2 Tutorial gibt es auch einen Abschnitt über Per Pixel Licht geht. Aber bitte tu dir selbst einen gefallen und kopiere es nicht einfach. Versuch es zu mindest zu verstehen. Selbst wenn du jetzt nicht alles verstehst.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
a: Also hatte ich das doch richtig interpretiert. Dann würde ich mal überprüfen wie deine Flächennormalen stehen. Das Licht richtet sich nicht danach wo sich die Fläche befindet sondern wie die normalen stehen. Wenn du bei einer gerade Fläche die normalen nach außen neigst, dann sieht es für das Licht wie eine gebogene Fläche aus. Wie bei einer Kugel. Wenn du solche Fläche nacheinander darstellst denkt das Licht es ist eine Buckelpiste. Überprüfe das mal bitte. Falls es das nicht ist muss ich so spontan passen.
b: Was ich damit meine. Das OpenGL Licht wird kommerziell eigentlich nicht mehr benutzt und da Zeit Geld ist kann ich mir vorstellen, dass die Kartenhersteller Zeit sparen. Und so etwas wie das klassische Licht dann einfach links liegen lassen. Selbst wenn Fehler enthalten sein sollten. Also Treiberproblem mag ich da ganz und gar nicht ausschließen.
Das erklärt allerdings nicht warum es flackert. Denn Flacker klingt da für mich wirklich etwas seltsam. Kann ich mir so auch gerade nicht erklären. Bin aber auch nicht der Held was Licht angeht. Du solltest aber evtl mal schauen ob die Normalen richtig sind und ob da nicht vielleicht per zufall 2 Mal das gleiche Objekt gezeichnet wird. Stichwort ZFighting
a) "Dann würde ich mal überprüfen wie deine Flächennormalen" Wie kann ich das denn - also bisher habe ich nur wie im Tut beschrieben das Licht aktiviert und rufe in den Renderdurchgängen
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Dein Code ist nur das initialisieren des Lichts. Und in dem Tutorial sehe ich das in dem Code so direkt nicht. Wenn du eine Fläche mit glBegin, glVertex, glEnd zeichnest, dann benötigt jeder Vertex auch eine Normale. Die musst du mit glNormal setzen. Damit weiß der Punkt in welche Richtung er zeigt. Und das Licht weiß wie es angebracht werden muss.
Mitglieder in diesem Forum: 0 Mitglieder und 8 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.