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

Aktuelle Zeit: Do Sep 04, 2025 02:16

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Jan 24, 2010 16:45 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Hallo,

wie der Titel andeutet suche ich einen Algorithmus um festzustellen ob ein Dreieck aus Sicht eines bestimmten Punktes vollständig durch davorliegende Dreiecke verdeckt ist.
Feststellen ob ein Dreieck durch ein anderes Dreieck verdeckt wird, ist nicht so schwer. Wenn es verdeckt ist, müssen alle Strecken von den Eckpunkten des zu verdeckenden Dreiecks zum Punkt, aus dessen Sicht das Dreieck verdeckt sein soll, das zweite Dreieck schneiden.
Für mehrere Dreiecke ist das aber was gänzlich anderes da die auch konkave Formen bilden können.

Ein paar Besonderheiten die meine Dreiecke erfüllen:
    -Die Dreiecke schneiden sich nicht
    -Die Dreiecke haben eine durchsichtige Rückseite, wie es bei 3D-Grafik oftmals der Fall (Backface Culling)

Ich hab' im Moment keine Ahnung wie ich das lösen soll. Vielleicht fällt da jemanden was ein.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jan 24, 2010 17:37 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
3d oder 2d?

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jan 24, 2010 18:26 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Hallo,
ich glaube, es macht kaum Sinn, die einzelnen Dreiecke durchzutesten, ob sie ein anderes Verdecken. Die Performance wird dabei in den Keller gehen. Stattdessen nimm Bounding-Volumes, oder wenige große Dreiecke / konvexe Polygone an Stellen, wo du richtg viel "wegcullen" kannst. Man gibt der Grafikkarte ja auch nicht Dreieck für Dreieck, sondern gleich ganze VBOs.

Gruß mrtrain


Zuletzt geändert von mrtrain am Mi Aug 31, 2011 18:00, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jan 24, 2010 19:14 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Sellmann hat geschrieben:
3d oder 2d?

3D

mrtrain hat geschrieben:
Hallo,
ich glaube, es macht kaum Sinn, die einzelnen Dreiecke durchzutesten, ob sie ein anderes Verdecken. Die Performance wird dabei in den Keller gehen. Stattdessen nimm Bounding-Volumes, oder wenige große Dreiecke / konvexe Polygone an Stellen, wo du richtg viel "wegcullen" kannst. Man gibt der Grafikkarte ja auch nicht Dreieck für Dreieck, sondern gleich ganze VBOs.

Gruß mrtrain

Ich hätte wohl doch noch bischen mehr drum herum erzählen sollen: Ich will das sowieso nur beim Start des Programms benutzen, d.h. es würde sich nur die Ladezeit verändern.
Konkret möchte ich damit Schattenvolumen erstellen die aus möglichst wenig Dreiecken bestehen. z.B. würde ein Stuhl im Zimmer immernoch einen Schatten für das Licht im Flur werfen, auch wenn da noch eine Wand dazwischen ist. Und das kostet sinnloserweise Füllrate.
Außerdem sind die Lichter dazu statisch, wodurch auch die Volumen nicht aktualisiert werden müssen. Vielleicht mach ich das später auch noch so das die Volumen auf die Festplatte gespeichert werden, sodass ich sie sogar nur dann neu berechnen müsste, wenn ich was am Licht oder an der Levelgeometrie ändere.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Jan 25, 2010 22:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Schläfer,

die einfachste Variante wäre wahrscheinlich die Szene einmal aus der Sicht des Lichtes zu rendern und mithilfe von Occlusion Queries bestimmen, ob sich deine Dreiecke hinter der Wand befinden.

Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


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 » Programmierung » Mathematik-Forum


Wer ist online?

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