Polligone reduzieren?
Übersicht

![]() |
tftBetreff: Polligone reduzieren? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo...
Seit Tagen grübel ich darüber nach wie ich Sichtbare Triangels eines Mesh von nicht sichtbaren trennen kann, oder Löschen. Das Problem ist folgendes. Ich habe einen Editor der mir aus GrundKörpern ein Object erzeugt. Dieses Object wird dann in ein Mesh verwandelt und gespeichert. Die erste Optimierung war das Weglassen aller Grundkörper die überhauptnicht zu sehen sind. Aber das reicht bei weitem nicht aus. Ich muss nun alle Dreiecke der Grundkörper Löschen, die aus allen Blickwinkeln nicht zu sehen sind. Mein einzieger Lösungs ansatzt wäre das Mesh zu rotieren und mittels sichtstrahl (EntityPick) alle Dreiecke die zu sehen sind so rauszufiltern. Gibts fieleicht auch eine andere lösung? |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du sinnvoll Polygone reduzieren willst, solltest du eventuell die Winkel zwischen den Vertices abfragen. Bei Winkeln nahe 180° wird es gelöscht, da es kaum eine Veränderung auf dem Objekt bewirkt. Das sinnvoll umzusetzen, habe ich auch noch nicht geschafft.
Wenn du es sinnvoll machen willst, dann erstell erst gar keine auf jeden Fall unsichtbaren Polygone. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum willst du einen realtime polyreducer? Da kann man doch gleich tausende polys mehr benutzen, als seine cpu damit zu belasten...
Ansonsten könntest du halt von jedem Objekt, 4 Objekte machen, bei denen jeweils die nicht sichtbare Hälfte in einem Modeller abgeflacht wurde und dort die Polygone aufgelöst. Dann kannst du Ingame jeweils das Objekt laden, bei welchem die flache, reduzierte Seite vom Spieler weg zeigt. Nur son Vorschlag =) MfG. |
||
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ...
nein ... das ist nicht was ich suche. Ich muss alle Triangel die man pracktisch nicht sehen kann einmal löschen. Dabei kommt es mir nur auf die Sichtbarkeit von aussen an. Ein Beispile. Ein Object besteht aus Zwei Quadern. Der eine Steckt im anderen drinn. Nun möchte ich die Poligone die man von aussen sehen kann behalten und alle anderen löschen. Wobei bei der Berechnung alle blickwinkel 360*360*360 Grad berücksicht werden sollen. Das Object wird von allen Seiten einmal betrachtet und nur die Polis die man dann sehen kann werden in einem Neuen Mesh zusammengefast. @NightPhoenix deine Idee werde ich an anderer Stelle aufgreifen. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das geht nicht in echtzeit
das ist der grund warum man stundenlang den PC laufen lässt um BSP Level zu kompilieren zb. Constructive Solid Geometry ist leider nicht echtzeittauglich. (mindestens jetzt noch net und wenn dann primär mit tricks die auf höherer shadertechnologie *GF6 ++* basieren) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ...
ich brauche es auch nicht in Echtzeit... wenns 20 Minuten für 5000 Polis benötigt ist das schon OK. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nun wenn du Zeit hast, dann wären da verschiedene Möglichkeiten, ich würde die möglichkeit von EntityVisible nutzen.
ansonsten könntest du auch linepicks nutzen |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ...
die Variante mit entityPick habe ich bereits. Das ist aber doch sehr langsam. Ausserdem hängt die abarbeitungs Zeit auch noch von Winkel der Objecte ab. Ich suche halt einen Schnelleren weg. Ist LinePick schneller als Entitypick() ? |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
linepick udn entitypick verwenden denselben algorithmus... | ||
MrKeks.net |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde keinen anderen Weg kennen, als über einen BSP Baum das ganze zu handeln.
http://wiki.delphigl.com/index...B.C3.A4ume Die beiden Tutorials von Gerald Filimonov sind die Besten. Im ersten wird beschrieben, wie du einen BSP Baum aufbaust und im zweiten wie du illegale Geometrie entfernst. Ersteres war die Grundlage meines Leaf BSP Compilers in BMax. https://www.blitzforum.de/foru...hp?t=18693 Aber ich kann dir versprechen, wenn du nicht in linearer Algebra fit bist, bekommst du das nicht auf die Reihe. mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ...
danke für die Infos.... und dein Versprechen hat sich eingelöst. ![]() |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, um so etwas zu programmieren braucht man auch die nötigen Kenntnisse, ganz klar. Aber vllt. suchst du mal nach fertigen CSG Bibliotheken. Da müsste es 1-2 geben im englischen Forum. In wie weit man damit die überflüssigen Dreiecke entfernt, weiß ich nicht. Ich würde versuchen, um das Objekt einen Quader zu erstellen, die Vertexreihenfolge mit FlipMesh ändern und dann mit CSG(Mesh, Quader, CSG_SUBSTRACT) Quader und Mesh zu "subtrahieren". Dabei könnten redundante Dreiecke entfernt werden.
Ansonsten funktioniert die aufwändige LinePick Variante nur mit konvexer Geometrie und die bekommst du nur mit einem BSP Compiler ^^ mfg olli |
||
vertex.dreamfall.at | GitHub |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group