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

Aktuelle Zeit: Mi Jul 30, 2025 07:37

Foren-Übersicht » DGL » Feedback
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Sep 12, 2004 11:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Als ich vor kurzem ein übersetzes Nehe Tutorial über Spiegelungen durchlies, errinnerte ich mich an eine gewisse Strumtruppe die vor einem Spiegel stand.
Heute las ich mir dann mal dein Tutorial durch welches tatsächlich die gleiche Technik nämlich den Stencil Puffer benutze.

Allerdings muss ich sagen das mir dein Tutorial viel besser gefiehl.
Du gehts nämlich viel mehr auf die Therorie ein die dahinter steckt, und sagst auch warum man das so macht.
Zum Beispiel erklärst du das die Parameter der Clipping Plane eine Formel beschreiben, auch wenn ich diese noch nicht so ganz verstanden habe.

Ein bischen zu knapp kommt bei dir die Erklärung der glColorMask Funktion. Denn schließlich wird ( zumindest wenn man Double Buffering benutzt) nie auf den Bildschrim gezeichnet.
Du läßt zum Beispiel somit die Leser im unklaren ob in den Tiefen Puffer gezeichnet wird oder nicht.

Son of Satan hat geschrieben:
Mit der Funktion glStencilOp(fail, zfail, zpass: TGLEnum) teilen wir OpenGL mit, wie der Stencilwert verändert, wenn ein Fragment den Test besteht oder nicht besteht.

Falls du hier nicht verendet meinst :wink: würde ich sagen kommt hier noch ein "werden soll" nach "verändert" hin.

Son of Satan hat geschrieben:
Abschliessend sei noch zu sagen, das diese Technik einen Nachteil hat : Der Raum hinter der Spiegelfläche ist tabu, da man sonst einen Teil des illusionären Spiegelraumes dahinter sehen würde.Dieser Nachteil lässt sich jedoch recht leicht mit einigen Sichtbarkeitstechniken umschiffen, und der Nutzung solcher Spiegelungen sollte damit keine Grenzen mehr gesetzt sein!

Wieso soll der Raum hinter dem Spiegel tabu sein? Für was haben wir den den Spiegel in den Stencil Puffer geschafft?
In deinem Beispiel, in dem die Wand einem die Sicht nimmt bräuchte man nämlich gar keinen Stencil Puffer und Überprüfung des selben...

MfG
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Sep 13, 2004 10:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
IFlo hat geschrieben:
Ein bischen zu knapp kommt bei dir die Erklärung der glColorMask Funktion. Denn schließlich wird ( zumindest wenn man Double Buffering benutzt) nie auf den Bildschrim gezeichnet.
Du läßt zum Beispiel somit die Leser im unklaren ob in den Tiefen Puffer gezeichnet wird oder nicht.

glColorMask hat nichts mit dem Rendern auf den Schirm zu tun, dabei wird ja nur der Puffer vertauscht. Von daher arbeitet glColorMask sehr wohl auch im hinteren Puffer, und wenn man alle Farbmasken beim Rendern der Stencilfläche deaktiviert, spart man sich halt ein wenig Füllrate. Aber eine Erklärung zu "warum glColorMask" hab ich mir damals extra gespart, weil ich dachte das wäre selbsterklärend.

IFlo hat geschrieben:
...Falls du hier nicht verendet meinst :wink: würde ich sagen kommt hier noch ein "werden soll" nach "verändert" hin.

Ja, danke für den Hinweis. Werd das korrigieren.

IFlo hat geschrieben:
...Wieso soll der Raum hinter dem Spiegel tabu sein? Für was haben wir den den Spiegel in den Stencil Puffer geschafft?
In deinem Beispiel, in dem die Wand einem die Sicht nimmt bräuchte man nämlich gar keinen Stencil Puffer und Überprüfung des selben...

Der Raum hinter dem Spiegel wird doch immer gezeichnet. Auch wenn man hinter dem Raum stehet (lad mal das Beispiel und dreh dich so, das du hinter dem Raum bist). Wenn man also von der Position auf die Szene schaut müsste man wie von mir erwähnt erstmal feststellen dass der Spiegel von dort nicht sichtbar ist und ihn dann einfach nicht rendern.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 13, 2004 11:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Dein Programm benötigt wirklich keinen Stencil Puffer. Da ja das gespiegelte nur durch den Spiegel sichtbar ist, und ansonsten verdeckt wird. Aber egal ist ja nur ein Beispiel :wink: .

Bei dem Zeichnen hinter dem Spiegel gibt es tatsächlich Problemme. Der gespiegelte Sturmtrupp hat ja nicht die Höheninformationen des Spiegels die er eigentlich haben müsste.
Im folgenen Screenshot sieht man dem Spiegel von hinten vor dem zusätlich noch eine rote Sturmtruppe steht.
(Einmal mit und einmal ohne Stencil)
MfG
IFlo


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 13, 2004 11:51 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
IFlo hat geschrieben:
Dein Programm benötigt wirklich keinen Stencil Puffer. Da ja das gespiegelte nur durch den Spiegel sichtbar ist, und ansonsten verdeckt wird. Aber egal ist ja nur ein Beispiel :wink: .

Ja, das ist wie gesagt ein Spezialfall bei dem sich die Nutzung des Stencil Puffers auf den ersten Blick nicht erschliesst, hätte ich evtl. ein anderes Szenario holen sollen. Aber spätestens wenn man nen Spiegel hat der teilweise (also z.B. im Rahmen) oder ganz frei im Raum steht, bekommt man ohne Stencil natürlich Probleme.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 13, 2004 12:16 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Quake3 verwendet für die Spiegel keinen Stencil Buffer, weil es eben auch auf Voodoo Karten laufen mußte. Da wird die Clip Ebene eingestellt, dann die Spiegelung gerendet und der Depth Buffer wieder gelöscht. Danach wird dann die normale Ansicht gezeichnet.
Heutzutage ist man aber sowieso besser dran, wenn man das Spiegelbild in eine Textur rendert, weil man die Spiegelung dann noch mit Shadern bearbeiten kann.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.016s | 17 Queries | GZIP : On ]