Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 21:50

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Was haben alle gegen das Licht?!
BeitragVerfasst: Do Jun 03, 2004 20:21 
Offline
DGL Member

Registriert: Sa Mär 20, 2004 22:48
Beiträge: 104
Ich habe jetzt schon in mehreren Posts gelesen, dass die Commu sich einig ist, dass das OGL-Licht absolut nichts taugt, und man Lightmaps bevorzugen soll. Da ich jetzt endlich mit der Berechnung von Normalen auch Licht anwenden kann, frage ich mich eigentlich warum: Man setzt ein Licht an eine bestimmte Position, man kann für jedes Material seine Eigenschaften setzen...was will man eigentlich mehr? Habe ich da vielleicht etwas übersehen, einen Nachteil? Was soll am OGL-Standard-Licht so mies sein?!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 20:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Die OpenGL-Standardbeleuchtung beleuchtet nur auf Vertex-Basis und ist daher ein alter Hut. Wenn man eine richtig schöne Beleuchtung will, dann muss die Per-Pixel sein. Das geht dann nur über Lightmaps (Statisch und eher per-Texel als per-Pixel) oder über Shader.

Der Unterschied lässt sich sehr leicht an einem einzelnen Quad darstellen. Nutze da mal das OpenGL-Licht für ein Spotlight und du wirst ganz schnell sehen warum Per-Vertex-Beleuchtung nix tolles ist.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 20:38 
Offline
DGL Member

Registriert: Do Mai 13, 2004 16:36
Beiträge: 116
Wohnort: Deutsch-Wagram (Österreich)
Und Schatten gibt's auch keine (mit PPL auch nicht). Die kann man aber einrichten...

_________________
Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 20:55 
Offline
DGL Member

Registriert: Sa Mär 20, 2004 22:48
Beiträge: 104
THX schonmal für die Antworten, dachte, das Licht wäre unschlagbar, aber wenn es nichtmal einen Schatten wirft...
da wäre aber noch eine Frage: Hat jemand schonmal versucht, das Licht irgendwie so umzuproggen, dass es dynamisch wird?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 20:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie umproggen? An der OpenGL-Beleuchtung kannst du selbst nicht ändern, aber die ist doch vollkommen dynamisch. Oder was meinst du? Wenn du das PPL über Shader machst, dann wird das auch dynamisch, aber Lightmaps kann man nur bedingt dynamisch machen (über Tricks), denn permanent neue Lightmaps zu berechnen geht nicht.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:01 
Offline
DGL Member

Registriert: Sa Mär 20, 2004 22:48
Beiträge: 104
ich meine das Standard-Licht. Also das, um was sich der ganze Post anfangs gedreht hat, das ganz normale Licht von Tut "Es werde Licht".


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Das OpenGL-Licht ist doch dynamisch :roll:

P.S. : Unter dynamisch versteht man etwas das in jedem Frame neu berechnet wird.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:03 
Offline
DGL Member

Registriert: Sa Mär 20, 2004 22:48
Beiträge: 104
nein, ich meine z.B. eine baumelnde Lampe an der Decke, die das Licht hinundherschwingt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Dann meinst du kein Licht, sondern einen Projektor. Das hat mit Beleuchtung nix zu tun (ausser bei nem Raytracer) und wird in Polygonwelten normalerweise über eine auf die Geometrie projezierte, voberechnete, Schattenwurfstextur der Lampe gemacht. Oder meinst du nur sowas wie ne normale Glühbürne? Das würde man dann doch über Shader oder 3D-Texturen machen und dann wärs PPL das dynamisch ist.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:10 
Offline
DGL Member

Registriert: Sa Mär 20, 2004 22:48
Beiträge: 104
...ist mir alles zu kompliziert, ich wollte nur wissen, ob das ganz normale OGL-Licht, welches mit Normalen berechnet wird, sich auch bewegen kann, was weiss ich, in Richtung der Z-Achse. Über Shader will ich ungern gehen, weil das zu hoch ist ^^

...von Raytracing kann ich da nur träumen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:14 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Also ich muss jetzt doch mal das OpenGL Licht verteidigen :wink: . Es ist schnell eingerichtet, funktional, hat ein brauchbares Materialmodell (mit zweiseitigen Oberflächen), läuft überall - und auf den meisten Grafikkarten ist es auch schön hardwarebeschleunigt (entweder durch T&L, auf ganz neuen Karten dürften zumindest entsprechende Shader ziemlich optimiert sein).
Wer Per Pixel Beleuchtung möchte, kommt natürlich um ein eigenes Lichtmodell nicht herum, OpenGL Licht deswegen aber gleich zum alten Eisen legen, würde ich nicht.

Wie bereits gepostet, ist OpenGL Licht voll dynamisch - d.h. sobald die Lichtposition geändert wird, passt sich die Szene beim nächsten Zeichnen sofort an, ohne dass irgendwelche weiteren Berechnungen notwendig sind.
Dass keine Schatten möglich sind, stimmt auch nicht wirklich - mit Stencil Buffer ist dies kein Problem, wie folgendes Demo zeigt - wenn du nur Schatten auf eine Ebene werfen möchtest, wirds sogar wirklich leicht :wink: :

Bild
http://members.chello.at/martinscad/stencil_shadow.zip

Hier noch ein Demo mit Source:
http://www.basegraph.com/bg/demos/GLTest.zip

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:26 
Offline
DGL Member

Registriert: Sa Mär 20, 2004 22:48
Beiträge: 104
aber das normale OGL-Licht selbst wirft keinen Schatten, sondern da brauche ich das den Stencil-Buffer für. Aber wie stelle ich es an, dass das Licht dynamisch wird? im Tutorial Das Wesen von Hell und Dunkel werden Lichtposition/Ambient-Wert usw. ja als Konstanten festgelegt. Wie kann ich jetzt ein Licht machen, dass sich entlang der Z-Achse bewegt? (Kleiner Codefetzen wäre sehr hilfreich)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 03, 2004 21:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Dann übergib anstatt der Konstante doch einfach ein Array mit 4 Single-Werten die deine Lichtposition darstellen. Das hat aber doch nix mit der Dynamik des Lichtes zu tun, sondern ist Programmiergrundlage.

Also das sieht dann so aus :
Code:
  1. var
  2.  LightPos : array[0..3] of Single;
  3. ...
  4. LightPos[0] :=
  5. ...
  6. glLightfv(GL_LIGHT_X, GL_POSITION, @LightPos[0]);
  7.  

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 13:00 
Offline
DGL Member

Registriert: Sa Mär 20, 2004 22:48
Beiträge: 104
...klar, hätte ich eigentlich drauf kommen müssen...ich war irgendwie zu fixiert auf die Aussage, dass das OGL-Licht immer statisch ist, sich also nicht bewegt, und da hab' ich mir Gedanken darüber gemacht, wie man es irgendwie mit einem Trick lösen hätte können, dass man aber einfach aus einer Konstanten eine Variable macht, darauf bin ich net gekommen, lol

danke an SOS und Mars, die mir in diesem Post alle Fragen bezügl. des Lichts beantwortet haben!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 13:59 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Einen Nachteil hat das OGL-Licht noch: Wenn Du z.B. einen Gang mit ca. 10-15 Fackeln hast, dann kannst Du nicht einfach für jede Fackel ein OGL-Licht nehmen, da das OGL-Licht begrenzt ist (IMHO auf 8). Dann musst du Lightmaps berechnen (und das von jeder Fackel aus) um eine einigermasen realistische Beleuchtung zu bekommen. Oder eben, wie SOS erwähnte, Shader verwenden.

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]