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

Aktuelle Zeit: Fr Jul 18, 2025 08:47

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



Ein neues Thema erstellen Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Mi Jul 28, 2010 19:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Den bekomm ich doch bestimmt ebenfalls aus der ModelViewMatrix aus sicht der Lichtquelle oder?

Das ist gar nicht nötig, den laut Wiki werden die Ebenen automatisch transformiert. Du kannst also die Richtung nehmen die auch dein Lichtquellen-Mesh hat, vermutlich (0,0,1) oder sowas.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Mi Jul 28, 2010 19:30 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
ich mach das Culling doch an einer ganz anderen Stelle, als wo ich meine Lampen zeichne... undzwar da wo die Szene das 2. mal gerendert wird. Und das geschieht in der ModelViewMatrix aus Sicht der Szene...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Mi Jul 28, 2010 19:59 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
hab jetzt versucht, die 4 Werte während ich die Lampen zeichne zu übergeben und erst bei der projektion das Clipping aktivieren. Doch so haut das immernoch nicht hin...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Fr Jul 30, 2010 08:37 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
so ihr werdet es kaum glauben aber ich hab das ganze jetzt mit dem Shader ordentlich zum laufen gebracht. Jetzt muss ich nur irgendwie das ganze für mehrere Projektoren umsetzen.. Irgendwelche tipps dazu?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Fr Jul 30, 2010 09:51 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Du kannst ja im Shader ganz normal Schleifen machen, jede halbwegs aktuelle Grafikkarte beherrscht die ja sowieso in Hardware (füher wurde das entrollt, da waren oft nur 4 Schleifendurchläufe drin), also einfach die Positionen und Ausrichtungen deiner Projektoren an den Shader übergeben und diese in einer Schleife abarbeiten und entsprechend dann auf die finale Fragmentfarbe addieren. Texturen würd ich wie angesprochen dann in einer 3D-Textur übergeben, denn 40 verschiedene Texturen kann man so schlecht übergeben wegen des TMU-Limits von 16 Einheiten. Also vorm Rendern eine 3D-Textur erstellen, dann jede Projektortextur in einen eigenen "Slice" rendern (Z-Koordinate der 3D-Textur) und im Shader dann je nach Schleifenzähler passenden Slice nutzen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Fr Jul 30, 2010 10:00 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
das hört sich interessant an. Wie viel Schleifendurchläufe kann ich denn machen? Und wie viel "Slices" gibt es denn pro 3D-Textur? Wie gesagt es sollte auf durchschnittliche Rechner laufen..

Also anstatt nur eine textur&ModelViewMatrix zu übergeben, soll ich für jeden Scheinwerfer eine übergeben. Das sind dann 128bytes pro Lampe nur für die Matrizen. Gibts da nicht ne Begrenzung?


Ja.. ich weiß, eins nach dem anderen, doch schonmal vorab, könnte man im gleichen Shader nicht auch rel. einfach eine Schattenberechnung für diesen Projektor integriere? Das man sich irgendwie merkt ob ein Pixel der Textur schon projeziert wurde, wenn ja dann mach ichs einfach bissl dunkler bzw. es wird nicht projeziert?!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Fr Jul 30, 2010 13:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Thmfrnk hat geschrieben:
das hört sich interessant an. Wie viel Schleifendurchläufe kann ich denn machen? Und wie viel "Slices" gibt es denn pro 3D-Textur? Wie gesagt es sollte auf durchschnittliche Rechner laufen..

Eine 3D-Textur hat halt eine dritte Dimension die man i.d.R. mit Slices betitelt, die Limitation ist hier halt die Limitation in der Größe für 3D-Texturen auf deiner Hardware, das musst du also vorher überprüfen.

Thmfrnk hat geschrieben:
Also anstatt nur eine textur&ModelViewMatrix zu übergeben, soll ich für jeden Scheinwerfer eine übergeben. Das sind dann 128bytes pro Lampe nur für die Matrizen. Gibts da nicht ne Begrenzung?

Nein, 128 Byte für 40 Lichtquellen sind eigentlich kein Problem, zumindest nicht auf aktueller Hardware. Zur Not kann man aber noch über Texturkoordinaten tricksen und diese als Parameterplätze "missbrauchen". So hab ich das früher gerne gemacht, ist halt bequem und wenn man die Texturkoordinaten eh nicht braucht kann man da perfekt diverse Shaderparameter reinpacken.

Thmfrnk hat geschrieben:
Ja.. ich weiß, eins nach dem anderen, doch schonmal vorab, könnte man im gleichen Shader nicht auch rel. einfach eine Schattenberechnung für diesen Projektor integriere? Das man sich irgendwie merkt ob ein Pixel der Textur schon projeziert wurde, wenn ja dann mach ichs einfach bissl dunkler bzw. es wird nicht projeziert?!

Schatten sind nicht so einfach wie du denkst, wobei man bei einem Projektor ja nur gerichtete Schatten hat, die sind dann etwas einfacher. Da kann man das rein theoretisch eigentlich direkt im selben Shader machen. Schau dir mal Beispiele zu simplem Shadowmapping an, im Shader geht das recht einfach.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texturprojektion
BeitragVerfasst: Di Sep 21, 2010 14:50 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
hier gehts weiter: viewtopic.php?f=2&t=9479


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


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 15 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.020s | 17 Queries | GZIP : On ]