Jump to content
Unity Insider Forum

Tris und Quads-Diskussion


Recommended Posts

Anmerkung: Thread abgeschnippelt von hier.

 

Quads werden immer in der Mitte zerschnitten der algorithmus zum triangulieren ist programmiert das aus einem Quad immer 2 tris werden. Ich wüsste nicht was da beim Importieren schief gehen kann ?

 

Du kannst ein Quad von Vertice 1 zu Vertice 3 zerschneiden, oder von Vertice 2 zu Vertice 4. Das sind zwei mögliche unterschiedliche Ergebnisse. Und je nachdem wie der Importer arbeitet kann deine Kante nun nach oben links zeigen, oder nach oben rechts.

 

anderst sieht das bei NDons aus da bei Ngons Unity nicht weiß wie er triangulieren soll können unnötige Tris entstehn. Hab das hier auch mal getestet.

 

Sorry, aber da sieht es genau gleich aus wie mit einem Quad. ^^

 

Unity trianguliert einfach lustig vor sich hin bis die Fläche mit Tris aufgefüllt ist. Da entsteht nichts unnötiges. Es werden genau so viele Tris erstellt wie das N-Gon durch seine Vertices anbietet. Ein N-Gon aus 5 Vertices wird immer in drei Tris unterteilt werden. Das geht mathematisch gar nicht anders.

 

Wie willst du denn da auch noch ein weiteres Tri reinquetschen wenn dafür gar keine Vertices mehr vorhanden sind? Und weglassen geht ja auch nicht, da wäre dann ein Loch. Das geht sich immer gleich aus. Das einzige was anders sein kann ist die Richtung in der die Kanten laufen.

 

 

1.Der Zylinder ist ein normaler Zylinder in Maya. (60 Faces oder 80 tris)

2.Diesen zylinder hab ich umgebaut so das er oben keine Tris sondern Quads hat. (50Faces oder 78 Tris) Dieser Zylinder ist also polysparender. Und nach dem Import in Unity habe ich genau 2 Tris gepart :)

 

Die Ersparnis kam schlicht dadurch zustande dass du die zwei Vertices entsorgt hast. Das hat gar nichts mit den da verwendeten N-Gons Quads und Tris zu tun. Da hast du dich narren lassen :)

 

Komplett korrekt aber denkst du wirklich das ein Beginner das versteht ?

 

So viele Fachbegriffe waren da nun auch wieder nicht dabei. Ich hoffe doch dass jemand frägt wenn er was nicht versteht. Wichtig ist eh nur zu wissen dass man am Besten in Quads arbeitet, und Tris wenn nötig ziemlich am Ende einbaut damit man sich da kein Ei legt :)

 

Aber ein bisschen was kann ich ja nachreichen.

 

Polygon ist der Oberbegriff. Poly heisst einfach Viele. Und Gon ist das Face. Das ist also ein Face mit vielen Kanten.

Ein Tri ist ein Face mit drei Kanten

Ein Quad ist ein Face mit vier Kanten

Ein N-Gon ist ein Face mit mehr als vier Kanten. Im Grunde ist ein N-Gon das Gleiche wie ein Polygon. Die Variable N steht hier auch für Viele. Nur hat es sich im 3D Bereich eingebürgert dass Faces mit mehr als vier Kanten N-Gon genannt wird. So weiss man gleich um welche Art von Polygon es sich handelt.

 

Edgeloop ist ein Kantenring. Idealerweise geht so ein Edgeloop einmal ums Mesh rum und endet da wo er angefangen hat.

Meshflow ist wie diese Kantenringe auf dem Mesh verteilt sind.

 

Poles hatte ich ja oben schon erklärt. Wenn du ein Tri unterteilst dann entstehen drei kleinere Tris mit einem neuen Vertice im Zentrum des ursprünglichen Tris. Und dieses Vertice ist dann der Endpunkt für jeden damit verbundenen Edgeloop. Der Punkt quasi wo die Edgeloops zusammenlaufen, aus sechs Richtungen. Deswegen nennt man das Ding dann auch Pole.

 

UV Mapping ist wie ihr euer 3D Mesh auf eurem Texturspace ausbreitet.

Seam ist der Saum beim UV Mappen. Stellt euch das wie ein Schnittmuster für zum Beispiel eine Hose vor. Da hats ja auch einen Saum, da wo die einzelnen Stoffstücke zusammengenäht werden.

 

Wenn euch noch was fehlt, immer her mit den Fragen :)

bearbeitet von Sascha
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das hat nichts mit dem Edgeflow und schönen Quads zu tun

 

Ich denke schon

 

Quads werden immer in der Mitte zerschnitten . Ich wüsste nicht was da beim Importieren schief gehen kann ?

 

anderst sieht das bei NDons aus da bei Ngons Unity nicht weiß wie er triangulieren soll können unnötige Tris entstehn.

 

Jepp genauso seh ich das auch.wie Sleepy Der Orginal Meshflow bleibt ja erhalten nur das Quad wurde in sich gegteilt

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Tiles da muss ich dir einfach wieder sprechen sorry nicht böse gemeint:

 

Du kannst ein Quad von Vertice 1 zu Vertice 3 zerschneiden, oder von Vertice 2 zu Vertice 4. Das sind zwei mögliche unterschiedliche Ergebnisse. Und je nachdem wie der Importer arbeitet kann deine Kante nun nach oben links zeigen, oder nach oben rechts.

 

Ein Quad besteht immer aus 4 Vertex egal wie du triangulierst es entstehen immer 2 Tris. Für Unity ist es egal ob du nun von oben Links nach unten rechts oder von Unten links nach oben rechts Triangulierst. :) Oder etwas nicht. Das ist das selbe in grün.

 

Ein Ngon das zb aus 10 Vertex besteht kannst du sicherlich auf 5 verscheidene Möglichkeiten Triangulierten. Wobei aber warscheinlich nur eine oder zwei davon wirklich Tris sparend ist.

 

Ich meine damit auch expliziet wie unity mit Ngons umgeht. Unity Trianguliert Ngons einfach nicht auf die Tris sparendste Möglichkeit.

 

Unity trianguliert einfach lustig vor sich hin bis die Fläche mit Tris aufgefüllt ist. Da entsteht nichts unnötiges.

 

Doch tut es weil Unity nicht so perfromant wie möglich arbeitet. Nach deiner These wäre es ja dann egal Ngons in ein Mesh zu machen wenn Unity das Problem eh best möglich korrigiert.

 

Wie willst du denn da auch noch ein weiteres Tri reinquetschen wenn dafür gar keine Vertices mehr vorhanden sind?

 

Bei der Triangulation kann es auch vorkommen das Unity ein Vertex erstellt um Triangulieren zu können.

Bei dem Algorithmus werden Tris erstellt egal wie und wenn es nicht anderst werden welche erstellt.

 

Die Ersparnis kam schlicht dadurch zustande dass du die zwei Vertices entsorgt hast. Das hat gar nichts mit den da verwendeten N-Gons Quads und Tris zu tun. Da hast du dich narren lassen :)

 

Ich hab ein Vertex entsorgt nämlich das in der Mitte ja. Aber denoch ist es Tris sparender wie die Varainte1.

 

Im Letzen Beispiel (Letztes Bild) hat Maya mein erstes Vertex genommen. Maya führt ja eine interne Tabele wo die Vertex eine Reihenfolge bekommen. Maya hat hier das erste Vertex genommen und dann von diesem aus zu jedem anderen Vertex trianguliert. Wie gesagt ich hab das nicht von Hand gemacht das hat Maya von selbst gemacht und Unity würde das genau so machen. Meine Händische Variante ist denoch besser also dieses Auto Cleanup.

 

So viele Fachbegriffe waren da nun auch wieder nicht dabei. Ich hoffe doch dass jemand frägt wenn er was nicht versteht. Wichtig ist eh nur zu wissen dass man am Besten in Quads arbeitet, und Tris wenn nötig ziemlich am Ende einbaut damit man sich da kein Ei legt.

 

Wichtig ist eh nur zu wissen dass man am Besten in Quads arbeitet, und Tris wenn nötig ziemlich am Ende einbaut damit man sich da kein Ei legt

 

Es spielt doch keine Rolle wann man Tris in sein Mesh einbaut. Unity macht hinterher eh aus allen Quads tis. Ob du jetzt dein Mesh im 3D Programm am schluss Triangulierst oder nicht das macht keinen Unterschied. Den Unity überprüft das eh nochmal und wenn sich im Mesh noch ein Quad befindet macht er sofern es möglich ist Tris daraus.

 

Warum macht Unity aus allem Tris ?

Weil tris die klein mögliche variante ist eine Fläche darzustellen aus 3 Vertex lässt sich eine Fläche darstellen nicht aber aus 2 Vertex.

 

post-2400-0-82623500-1428148141_thumb.jpg

 

Auf diesem Bild habe ich jede 2- Edge gelöscht aus den Tris sind Quads entstanden.

Würde ich den Zylinder so nach Unity Exportieren würde mir Unity die Linien genau so wieder reinmachen wie ich sie gelöscht hab. Da dies die einzige Möglichkeit ist aus den Quads tris zu machen.

gespart hab ich also nichts.

 

Bei komplexren Ngons kann es hierbei aber zu problemen kommen wenn es mehre Möglichkeiten für die Triangulation gibt. Unity Unity führt diese dann eben nicht best möglich durch sondern nach einer vorgegeben Formal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Tiles da muss ich dir einfach wieder sprechen sorry nicht böse gemeint:

 

Nur zu, Ich nehm das nicht krumm :)

 

Ein Quad besteht immer aus 4 Vertex egal wie du triangulierst es entstehen immer 2 Tris.

 

Richtig. Das war nie die Frage.

 

Für Unity ist es egal ob du nun von oben Links nach unten rechts oder von Unten links nach oben rechts Triangulierst. :) Oder etwas nicht. Das ist das selbe in grün.

 

Falsch. Das ist nicht das Gleiche in Grün. Denn du hast dann andere Topologie. Die Meshstruktur ist anders. Im einen Fall knickt das Face nach unten rechts ab wenn es gebogen wird, im anderen Fall nach unten links. Und im einen Fall bekommst du ein konvexes Quad, und im anderen ein konkaves Quad. Und Fall 2 im Shot ist dann der ärgerliche Fall wo du das Mesh dann doch nachmodeln musst. Und um solche Dinger zu vermeiden trianguliert man sein fertiges Mesh am Besten bevor man es zu Unity exportiert.

 

post-744-0-27428100-1428153517_thumb.jpg

 

 

Ich hab ein Vertex entsorgt nämlich das in der Mitte ja. Aber denoch ist es Tris sparender wie die Varainte1.

 

Ja klar, wenn du ein Vertex rauslöschst dann hast du ein Tri weniger. Das hat aber nix mit Quads oder Ngons oder nicht zu tun. Sondern schlicht mit der Anzahl der Vertices.

 

Es spielt doch keine Rolle wann man Tris in sein Mesh einbaut.

 

Trianguliere mal bitte dein Mesh in Maya. Und versuche dann mit den Edgelooptools einen Edgeloop auszuwählen :)

 

Auf diesem Bild habe ich jede 2- Edge gelöscht aus den Tris sind Quads entstanden.

Würde ich den Zylinder so nach Unity Exportieren würde mir Unity die Linien genau so wieder reinmachen wie ich sie gelöscht hab. Da dies die einzige Möglichkeit ist aus den Quads tris zu machen.

 

Simsalabim ... ist es nicht ;)

 

post-744-0-35085200-1428153141_thumb.jpg

 

Mein Zylinder sah genauso aus wie deiner. Auch ich habe die entsprechenden Kanten rausgelöscht um Quads zu erzeugen. Aber bei mir trianguliert Unity das anders. Es gibt eben immer ZWEI Möglichkeiten ein Quad in zwei Tris zu unterteilen. Und mit grosser Treffsicherheit erwischt Unity immer die andere Möglichkeit ...

 

gespart hab ich also nichts.

 

Ja sicher hast du nichts gespart wenn du Quads importierst. Das sind immer noch zwei Tris. Und dann kannst du auch gleich zwei Tris importieren. Aber das war doch hier grade gar nicht die Frage.

 

 

Warum macht Unity aus allem Tris ?

 

Weil Unity eine Game Engine ist, und Tris wie du richtig sagst die kleinste stabile geometrische Form ist. Das geht aber auch auf die Zeit zurück als Grafikkarten nur mit Tris arbeiten konnten. Und Game Engines haben eben keinen abstrakten Layer wie ein Modeler dazwischen um mit Quads und N-Gons arbeiten zu können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nur zu, Ich nehm das nicht krumm :)

 

Ich finde solche Diskussion auch echt interessant man macht sich ja dann doch auch nochmal nen Kopf über alles und lernt dazu.

 

Falsch. Das ist nicht das Gleiche in Grün. Denn du hast dann andere Topologie. Die Meshstruktur ist anders. Im einen Fall knickt das Face nach unten rechts ab wenn es gebogen wird, im anderen Fall nach unten links. Und im einen Fall bekommst du ein konvexes Quad, und im anderen ein konkaves Quad. Und Fall 2 im Shot ist dann der ärgerliche Fall wo du das Mesh dann doch nachmodeln musst. Und um solche Dinger zu vermeiden trianguliert man sein fertiges Mesh am Besten bevor man es zu Unity exportiert.

 

 

Mhhh also womöglich reden wir auch bischen aneinander vorbei. Bzw wir gehen von unterschiedlichen Ausgangs Situtionen aus.

Also ein Convex oder Concave Polygon zu bekommen muss man das schon absichtlich reinmachen.

Mir ist es jedenfalls noch nie passiert das ich ausversehen ein Convex oder Concaves Polygon erzeugt habe.

 

Der Edgeflow eines Quads kann doch genau so im Zickzack verlaufen würde zwar bescheiden aussehen und die topologie wäre misst aber möglich wäre es.

 

Trianguliere mal bitte dein Mesh in Maya. Und versuche dann mit den Edgelooptools einen Edgeloop auszuwählen

 

Ja das 3D Programme bei Tris die diagonal verlaufen keinen Edgeflow finden ist mir klar. Deswegen hab ich am Anfang schon gesagt das ich auf Tris verzichten würde wenn möglich. Bei einer Rundung geht es nicht ohne Tris wobei man auch eine Kugel komplett aus Quads bauen könnte wird ja vor allem bei einem Kopf gemacht man Smooth nen Quader zu einer Kugel...

 

Mein Zylinder sah genauso aus wie deiner. Auch ich habe die entsprechenden Kanten rausgelöscht um Quads zu erzeugen. Aber bei mir trianguliert Unity das anders. Es gibt eben immer ZWEI Möglichkeiten ein Quad in zwei Tris zu unterteilen. Und mit grosser Treffsicherheit erwischt Unity immer die andere Möglichkeit ...

 

Ja aber Sinnvoll ist der Edgeflow genau so wenig wie wie bei meinem 3. Bild.

 

Ich hab mal meinen Zylinder Importiert und meiner wurde zb anderst trianguliert wie deiner

 

Siehe:

post-2400-0-89762400-1428166544_thumb.jpg

 

Du hast deinen Cube mit Blender erstellt ? ist ja auch egal ich hab meinen Zylinder mit Maya erstellt und Maya hat eben ne andere Vertex Reihenfolge wie Blender genau so hat Max ne andere Reihenfolge wie Maya. Deswegen werden die Zylinder unterschiedlich trianguliert..

In meinem Beispiel war das obere Polygon wie bei dir ein riesen NGon.

 

Und deswegen bleib ich bei meiner Aussage auf tris so so geht geht zu verzichten. Ngons alle rausmachen und Unity das Triangulieren zu überlassen.

In Maya hab ich zumindest die möglichkeit vor dem Export mein gesamten Mesh mit einem Klick auf Ngons, Convex oder Concave Polygone zu überprüfen. Diese mach ich dann auch von Hand raus und lasse das nicht über irgend welche Cleanup Algorytmen machen. Was es in Maya auch gibt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...