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

Aktuelle Zeit: Di Jul 15, 2025 17:23

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 3ds Meshes und Tiefentest
BeitragVerfasst: Sa Nov 06, 2004 18:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
hallo,

ich lad in meinem Programm 'n paar 3ds-Modelle mit dem Loader von noeska, funktioniert auch ziemlich gut,
aber: wenn mein Modell Transparenz hat, wird logischerweise dank Tiefentest, der darunterliegende teil des objekts nicht mehr gerendert, schalte ich den tiefentest aus, funktioniert zwar die transparenz aber bei manchen objekte kommen die "hinteren" teile nach "vorn"
wi ekrieg ich meine transparenz ohne das er das model "verunstaltet" (irgendwie müsste der loader die objekte des models beim rendern nach ihrer z-pos ordnen, oder? ich hab bloß keine Ahnung davon)
hab mal 2 fotos zur verdeutlichung angehangen (@SoS: hab mal 2 models aus deinem napalmbomber3d genommen, da man das dort sehr gut sieht)

mfg
GSE


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

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 18:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Simple Methode (reicht normalerweise) :
Zuerst die nicht-transparenten Teile des Meshes rendern, dann die transparenten.

Beste Methode (schwerer zu implementieren) :
Zuerst die nicht-transparenten Teile des Meshes rendern, dann nach Tiefe sortiert (Back-To-Front) alle transparenten Faces.

In der neueren Version von Noeskas Loader wird ersteres bereits gemacht (wenn ich nicht irre) und reicht oft aus.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 18:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
Zitat:
In der neueren Version von Noeskas Loader wird ersteres bereits gemacht (wenn ich nicht irre) und reicht oft aus.

ich hab 2.4a gibts da noch ne neuere, hab nämlich keine gefunden und um das selbst zu implementieren müsst ich ja den loader umschreiben, oder?

mfg
GSE

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 19:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Da kann ich nix zu sagen weil ich die gl3DS.pas von Noeska in ner älteren, aber von mir recht stark modifizierten Version benutze, die auch diese Sache beinhaltet. Aber du musst ja im Endeffekt (wenns einfach gehen soll) nur in beim Rendern der Meshes prüfen ob ein verwendetes Material transparent ist.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 20:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
Zitat:
Zuerst die nicht-transparenten Teile des Meshes rendern, dann nach Tiefe sortiert (Back-To-Front) alle transparenten Faces
ok, ich schau mir das mal an (eine CalculateRenderOrder prozedur gibt's ja schon)
mfg
GSE

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 22:05 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Alternativ kannst du statt AlphaBlending auch den AlphaTest verwenden, wenn du keine halbtransparenten Teile hast. Im Gegensatz zum Alphablending werden beim Alpha Test transparente Pixel auch nicht in den Tiefenpuffer geschrieben - dann kann man sich Sortierungen ganz sparen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 22:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
Zitat:
Alternativ kannst du statt AlphaBlending auch den AlphaTest verwenden
hey, danke! das reicht vollkommen aus.
hab mal wieder den wald vor lauter bäumen nicht gesehen :D

mfg
GSE

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 22:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Im Normalfall verwendet man sowieso Alphatest UND Blending. Den Alphatest um transparente Stellen darzustellen und dann Blending (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) um die hässlichen schwarzen (oder wie die Hintergrundfarbe ist) Ränder an den Transparenzübergängen zu vermeiden.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 06, 2004 23:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
wieder was dazugelernt

mfg
GSE

_________________
In a world without walls and fences, who needs Windows or Gates?


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]