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

Aktuelle Zeit: Fr Jul 18, 2025 11:05

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: StencilShadows
BeitragVerfasst: Fr Jun 10, 2005 12:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich bastle zur Zeit ein wenig mit StencilShadows rum... ich habe das ganze in etwa nach dem vorbild von nehe.gamedev.net lektion 27 gelöst.
Also schauen welche Faces in richtung Licht zeigen und von denen dann das ShadowVolume zeichnen etc...


Nur, diese methode ist zwar so für kleiner dinge ganz praktikabel, allerdings hab ich jetzt ein anderes problem...
Da, wo ich die Shadows eigentlich einsetzen möchte zeichne ich alle objekte als VBOs... aber ich muß ja bei der Schattenmethode jedes faces überprüfen ob es zum licht zeigt und auch nur dann zeichnen...

Ich hab es jetzt so gelöst das ich nen IndexVBO erstelle in dem die Faces aufgelistet sind welche zum licht zeigen, aber irgendwie scheint mir das nicht unbedingt die beste lösung...

Hat evtl jemand eine andere/bessere methode um Stencil Shadows zu erzeugen???

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 12:25 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Wenn du alles richtig zeichnest, dann kannst du von GL_CULL_FACE sehr profiteiren.

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 12:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

inwiefern das...??
CullFace ist doch nur dazu da um faces die mit ihrer normal von der Camera wegzeigen nicht zu zeichnen... Was hilft mir das für's licht??? *guckt unsicher*

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 13:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Also Culling hat mit Beleuchtung ja nix zu tun. Es kann ja durchaus Objekte geben, die Schatten werfen, und dabei nicht im Bild sind.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 14:24 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
hmmm
1. glLoadIdentity();

2. ShadowMatirx aufbauen anhand
I Licht Position
II "Projektions" Fläche
3. glMatMul( my_shadow_matrix );
4. rendern;

Wenn das Objekt "richtig" gezeichnet ist dann kann man GL_CULL_FACE DOCH ausnutzen. Mal probieren.

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 14:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

irgendwie verstehe ich noch immer nicht wirklich wie du das meinst...

beim NeheCode wird es ja in zwei schritten gemacht:

1.) Das komplette SchattenVolumen in den StencilBuffer schreiben
2.) Culling aktivieren und alle rückseiten wieder aus dem StencilBuffer entfernen..

Dadurch bleibt nur der wirkliche schatten übrig.

Problem bei der sache ist nur, das ich zum schattenwerfen nur die Flächen benutzen darf welche in richtung licht zeigen, da sonst bei schritt 2. zuviel vom Buffer wieder enfernt wird.

Und daher dachte ich es gibt evtl eine andere/bessere methode..

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 15:01 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Ich weiss nicht wie du deine Vetrices organiziert hast, aber ich denke mal du könntest mal perFace tests ausführen und zwar wie oben schon erwähnt, mit einem billigen DotProduct. Sollte dies positiv sein so schickst du dein Face durch shadow matrix pipeline sonst nicht.

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 15:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
sniper_w hat geschrieben:
Ich weiss nicht wie du deine Vetrices organiziert hast, aber ich denke mal du könntest mal perFace tests ausführen und zwar wie oben schon erwähnt, mit einem billigen DotProduct. Sollte dies positiv sein so schickst du dein Face durch shadow matrix pipeline sonst nicht.


Ja, wie gesagt so mache ich es doch zur Zeit... ich finde es halt nur nach wie vor recht umständlich jedes face zu überprüfen ob es zum licht zeigt...
Ich wollte ja lediglich wissen ob es noch andere gute methoden gibt um via StencilBuffer schatten zu erzeugen...

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 10, 2005 17:59 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Ich mache es so, dass jedes Objekt ein optionales Mesh hat, das dann im PC-Speicher liegt. Das hat den Vorteil, dass dieses auch vereinfacht sein kann, sodass Physikberechnungen und Schattenwurf mit wenigen Polygonen realisiert werden, das tatsächliche Rendern dann mit vielen.
Das funktioniert dann am Besten, wenn der Schattenwurf eines Objektes auf sich selbst nicht perfekt sein muss.

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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
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.008s | 15 Queries | GZIP : On ]