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

Aktuelle Zeit: Fr Jul 18, 2025 04:34

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Aug 06, 2010 15:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Feb 21, 2008 22:10
Beiträge: 89
Wohnort: Boppard
Hi,

Wie der Titel schon verrät suche ich eine effiziente Methode um Polygone (max 4 Vertices) An einer Box zu clippen.

Das Problem aus dem diese Frage entstammt ist die Optimierung meines Octrees.

Denn momentan passiert es zu oft, das Polygone zwischen 2 Nodes liegen und daher in der übergeordneten Node bleiben.

Bei einer größeren Map sind es so in der Level-0 Node > 2400 Polygone, die so immer gezeichnet werden, was nicht gerade optimal für die Performance ist.

Daher beabsichtige ich Polygone die zwischen 2 oder mehr Nodes liegen bis zu einem gewissen Grad in kleinere Polygone aufzuteilen.

Ich hoffe jemand hat dazu einen guten Vorschlag :mrgreen:

MFG
Björn Zeutzheim


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 06, 2010 16:21 
Offline
DGL Member
Benutzeravatar

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

genau das was du vorhast habe ich damals bei meinem ersten Octree auch getan. Jedes Triangle immer so klein geschnitten das es nur in einer Node war.

Geht zwar prinzipiell, aber ist den Aufwand in der Regel nicht wert.

Mittlerweile packe ich auch keine einzelnen Polygone mehr in die Nodes des Octrees, sondern nurnoch Objekte. Und wenn ein Objekt zu groß ist für eine Node, kommt es einfach in mehrere Nodes rein.

Wenn etwas so groß ist, das es eben in allen Nodes drin ist, dann sieht man es sowieso auch immer.. ;)

Da kann man dann nur sagen das man beim Level design schon drauf achtet das man zu große Objekte einfach in ein paar kleinere aufsplittet.

Aya


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 06, 2010 17:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Stichworte zum Thema Clipping von Polygonen:
  • Sutherland-Hodgman Algorithmus
  • Liang-Barsky Algorithmus

Ich bevorzuge es aber auch das ganze ersten Objektweise zu machen und die Objekte entweder in mehrere Nodes zu packen oder die Nodes überlappen zu lassen. Zu letzterem wäre das Stichwort R-Tree.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 06, 2010 18:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Feb 21, 2008 22:10
Beiträge: 89
Wohnort: Boppard
Das Problem ist, das ich für jede Node beim rendern eine DisplayList anlege.

Daher ist es nicht möglich, Polygone in mehreren nodes zu haben.

Außerdem rede ich nicht von großen Polygonen, sondern von mittelgroßen bis kleinen, die nur dummerweise eben genau zwischen 2 oder mehr Nodes liegen was in einer Map unweigerlich vorkommt.

Und wie gesagt sind das bei der (noch recht undetaillierten) Map die ich momentan zu Testzwecken verwende schon in der obersten Node > 2400 Polygone.

Die Idee Meshes zu verwenden hatte ich auch schon, doch zur Zeit habe ich noch nicht die mögichkeit Maps mit Meshes zu erstellen (es gibt noch keinen Level-Editor zu meiner Engine)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 06, 2010 18:32 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Außerdem rede ich nicht von großen Polygonen, sondern von mittelgroßen bis kleinen, die nur dummerweise eben genau zwischen 2 oder mehr Nodes liegen was in einer Map unweigerlich vorkommt.

Ok, da macht clippen durchaus Sinn.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Aug 07, 2010 00:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Feb 21, 2008 22:10
Beiträge: 89
Wohnort: Boppard
Deswegen frage ich auch danach :shock:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Aug 07, 2010 08:27 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Coolcat hat geschrieben:
Stichworte zum Thema Clipping von Polygonen:
  • Sutherland-Hodgman Algorithmus
  • Liang-Barsky Algorithmus

_________________
Yeah! :mrgreen:


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


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 ]