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

Aktuelle Zeit: Di Jul 15, 2025 15:17

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Dyn.Beleuchtung meines BSP
BeitragVerfasst: Fr Okt 17, 2003 16:57 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
Ich überlege gerade wie ich am schönsten meinen BSP beleuchten soll, ich bin dabei auf einige Lösungen gestoßen, die mir bisher am meisten zusagt ist die, die pvs in 2 passes zu rendern:

1) die beleuchtungs-texture auf die geometry rendern
2) die texture addieren(blenden)

Was denkt ihr darüber? Resultiert das in zu großer Fillrate(bei mehreren Lichtern)?
Gibt es noch andere so einfahe (bessere) Methoden? Was würdet ihr machen?

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 19:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wenn du deinen BSP-Baum dynamsich über sowas wie eine 3D-Textur beleuchten willst (also keine Lightmaps in Frage kommen),dann wirst du kaum um zwei geblendete Passes rumkommen.Einzige Alternative wäre dynamisches Lightmapping in einem Fragmentprogramm.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 21:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
Hmmm also Fragment-Progs kommen garnicht in Frage! Das kann meine GraKa net;)...
Also geht es tatsächlich net anders,ja?!...Hmmm was haltet ihr denn davon die Beleuchtung über ein VertexProg zu machen?Geht das überhaupt so gut wie mit den 3D-Texturen, denn die faken ja sozusagen PerPixelLighting vor, was natürlich besser aussieht als nur VertexLighting...

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 21:38 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
was hast du denn gegen Lightmapping??


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 21:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
Lightmapping ist mir zu undynamisch, für mich bedeutet Lightmapping immer:
1)bsp laden
2)lightmaps berechnen
3)nichts mehr ändern, nur noch rendern...

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 21:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Fiji-Fighter hat geschrieben:
was hast du denn gegen Lightmapping??

Lightmapping ist für dynamische Beleuchtung leider ungeeignet,da man schlecht die Lightmaps Frame für Frame aktualisieren und nach OpenGL hochladen kann.

Extrawurst hat geschrieben:
Also geht es tatsächlich net anders,ja?!...Hmmm was haltet ihr denn davon die Beleuchtung über ein VertexProg zu machen?Geht das überhaupt so gut wie mit den 3D-Texturen, denn die faken ja sozusagen PerPixelLighting vor, was natürlich besser aussieht als nur VertexLighting...

Wie die Bezeichnung Vertex-Programm vermuten lässt,geschen Berechnungen dort nur per-Vertex,weshalb dadurch auch nur Vertex Lighting realisierbar ist.Allerdings gibts noch andere Möglichkeiten für PerPixel-Lighting wie z.B. die Nutzung von Cubemaps und Registercombiners (allerdings dann halt herstellerabhängig).Dann kann man das auch ohne Fragmentprogramme realisieren.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 21:51 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
hmmm Cubemaps...habt ihr dazu vielleicht n tutorial oder so?
Naja also werde mir Cubemapping mal ansehen,
aber SOS, was hälst du denn vom Nutzen der 3D-Textures um dieses PerPixelLighting zu faken? Ich habe das ja noch net reinprogrammiert und habe deshalb keine Vorstellung wieviele Möglichkeiten ich damit habe, wieviele Lichter,Polys möglich sind, ob dann das pvs noch reicht usw....

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 22:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Extrawurst hat geschrieben:
hmmm Cubemaps...habt ihr dazu vielleicht n tutorial oder so?
Naja also werde mir Cubemapping mal ansehen,

Nein,denn Beleuchtung über Cubemaps (natürlich geht das nicht nur über Cubemaps) ist ein sehr komplexes Thema.Ich selbst habe Cubemaps bisher nur genutzt um Spiegelungen und Bumpmapping (Normalisierungscubemap) zu realisieren.Da sollte Lars evtl. mehr zu wissen (wie man an seiner Engine sehen kann).

Extrawurst hat geschrieben:
aber SOS, was hälst du denn vom Nutzen der 3D-Textures um dieses PerPixelLighting zu faken? Ich habe das ja noch net reinprogrammiert und habe deshalb keine Vorstellung wieviele Möglichkeiten ich damit habe, wieviele Lichter,Polys möglich sind, ob dann das pvs noch reicht usw....

Lichtquellen über 3D-Texturen sind eine recht eingeschränkte Technik und ich bezweifle das sie jemals in großem Stile angewandt werden.Zum einen sind sie erst ab GeForce3 und aufwärts hardwarebeschleunigt,und auf kleineren Karten viel zu langsam (mehr als 1-2fps werdens auf ner GF2 selten).Und darüberhinaus benötigt jede Lichtquelle einen eigenen Renderpasse,was selbst bei modernen Grafikkarten zu geringen FPS führt.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 22:08 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
also was denkst du ist dann der weg den ich gehen sollte? ich dachte nämlich das diese (habe gerade gelsen das die Technik "attenuation mapping") Technik schon okay ist!
Cubemapping? auch keine ahnung wo ich was darüber finde?

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 22:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Extrawurst hat geschrieben:
also was denkst du ist dann der weg den ich gehen sollte? ich dachte nämlich das diese (habe gerade gelsen das die Technik "attenuation mapping") Technik schon okay ist!

Die Frage musst du dir selbst beantworten.Das hängt nämlich immer vom Anwendungsfall ab.Wenn du wenige Lichtquellen gleichzeitig im Bild hast (bis max. 4) dann wäre die von dir erwähnte Technik evtl. noch annehmbar schnell.Ansonsten musst du dir halt ne andere Variante suchen.Aber viel mehr als 4 dynamische Lichtquellen wirste mit kaum ner Technik annehmbar schnell realisieren können.

Extrawurst hat geschrieben:
Cubemapping? auch keine ahnung wo ich was darüber finde?

Hier gibts dazu ein Dokument und ansonsten ist die Entwicklersektion von NVidia in solchen Fragen immer sehr hilfreich.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 22:43 
Offline
DGL Member
Benutzeravatar

Registriert: Do Mär 06, 2003 15:27
Beiträge: 281
Wohnort: Bochum
ah okay, 4 lichtquellen onscreen dürften noch reichen!
ich dachte das wäre schon nicht mehr möglich!
werde das dann wohl doch nehmen, was benutzt denn lars in seiner engine, weiß das jemand ausser ihm?

_________________
www.extrawurst.org


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 17, 2003 23:37 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ich habe auf der GF3/4 64*64*64 3D Texturen für die Lichtintensität benutzt. Für das Bumpmapping habe ich pro Licht folgendes gezeichnet:

Pass1:
Texture0: Normalizationscubemap
Texture1: Bumpmap
Texture2: Diffuse Map
Texture3: 3D Texture für Lichtintensität

Pass2:
Texture0: Normalizationscubemap
Texture1: Bumpmap
Texture2: Specular Map
Texture3: 3D Texture für Lichtintensität

Das geht auf einer GF4 bis zu 3 Lichtern/Fläche maximal, damit es noch schnell genug ist. Wenn man jetzt pro Licht nur eine 3D Texture zeichnet, dann sollten mehr Lichter möglich sein. Auf der GF1 und GF2 muß man die 3D Texture durch 2 2D Texturen ersetzen.

Auf den neueren Karten mit arb_fragment_program ist das natürlich noch schöner, daß man die Intensität da einfach und in hoher Qualität berechnen kann.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 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.008s | 14 Queries | GZIP : On ]