ich hab schon hier im forum gesucht, aber nichts passendes zu meinem problem gefunden..
ich hab vor ein paar tagen angefangen mit licht zu arbeiten, hab auch schon einiges ausprobiert und verstehe das meiste.
sprich: das licht macht soweit das, was ich will^^
bis auf eins, und zwar leuchten meine lichtquellen (diffuses licht) durch alle wände etc durch. so kann ich z.b. eine lichtquelle in einem quader einschließen, und trotzdem wird alles außerhalb ohne veränderung beleuchtet.
was muss ich tun, damit genau das nicht passiert, damit mein licht nicht durch wände durchleuchtet?
Ich geb jetzt mal nen ganz unqualifizierten Kommentar ab, weil ich da gar nicht so die Ahnung hab, aber wenn mich nicht alles täuscht, dann gilt das OGLLight immer Global, d.h. alles wird beleuchtet. Willst du zb. einen Raum beläuchten, aber den nächsten nicht, dann evtl Lightmaps oder sowas
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das OpenGL-Licht kennt von haus aus keine Schatten. Die musst du selber implementieren. Dazu können dir Effektfreaks sicherlich mehr erzählen, aber für Anfänger ist das auf jeden Fall erstmal nichts.
Es gibt da einen Haufen an Techniken, von vorberechneten Lightmaps über Stencilschatten, die zur Laufzeit generiert werden, bis hin zu ebenfalls in der Laufzeit, jeden Frame oder so, erstellte Tiefenmaps.
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 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wie gesagt, es gibt keine Schatten.
Die Beleuchtung wird für jeden Vertex berechnet. In die Berechnung geht die Entfernung (wegen der Abschwächung = Attenuation), das Material der beleuchteten Fläche und die Lichtparameter ein. Ob da eine andere Fläche dazwischen liegt, ist daraus nicht ersichtlich.
Du kannst aber z.B. das Licht auf einzelne Bereiche beschränken. Dazu musst du nur das Licht wieder ausschalten (glDisable(GL_LIGHT0)), wenn du fertig bist mit den beleuchteten Flächen. Du kannst auch den Wirkungsbereich durch die Abschwächung (siehe glLight) begrenzen. Aber Schatten sind etwas aufwändiger.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.