hi, angenommen ich habe ein objekt, welches aus sagen wir mal 100.000 polygonen besteht, wie ist die vorgehensweise um diese auf zB 5000 runter zu schrauben ? ich habe sowas mal bei milkshape gesehen. kann man net einfach 100.000 durch 5000 teilen und dann immer 20 polygone zusammenfassen ? wie stellt man das geschickt an ?
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Eine Möglichkeit ist ein Vertice zu nehmen und dann die Normals aller Flächen, der das Vertice angehört zu berechnen.
Dann kann man normalisieren und das Normal mit % Werten prüfen ob es in dem Bereich(der jeweiligen Flächennormals) liegt.
Ist das der Fall entfernt man das Vertice und nimmt das nächste Vertice. Dies ist aber nicht gerade Realtime tauglich .
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Eine Möglichkeit ist ein Vertice zu nehmen und dann die Normals aller Flächen, der das Vertice angehört zu berechnen. Dann kann man normalisieren und das Normal mit % Werten prüfen ob es in dem Bereich(der jeweiligen Flächennormals) liegt. Ist das der Fall entfernt man das Vertice und nimmt das nächste Vertice. Dies ist aber nicht gerade Realtime tauglich .
es muss nicht realtime tauglich sein, darf auch 10 sekunden dauern wenn es sein muss, ich mach das ja auch nur aus spass an der freud
dazu müsste ich aber erst wissen, welche flächen an ein vertex angrenzen, wenn ich eine struktur wie trianglestrip oder fan habe, sollte das nicht das problem sein, aber bei einzelnen triangles müsste ich diese auch erst bestimmen (prüfen ob und wo mehrfach vorhanden)
aber das was du meinst ist eher dafür gedacht, ein objekt zu optimieren, in dem man polygone zusammenfasst, bei denen man kaum veränderungen war nimmt.
nimmt man zb eine kugel und ich sag meinem algo dass der auf 4 polygone reduzieren soll, dann wirds ein würfel, zwischendrin sinds dann tetraeder oder oktaeder oder wie auch immer, wobei das bei kugeln ein sonderfall ist.
aber das was du meinst ist eher dafür gedacht, ein objekt zu optimieren, in dem man polygone zusammenfasst, bei denen man kaum veränderungen war nimmt.
Das ist auch die Idee von diesem Verfahren. Man nimmt interativ immer die Punkte raus, auf die man am ehesten verzichten kann. Es ist natürlich auch möglich zufällige Punkte zu nehmen, aber man möchte ja auch nach der Reduktion ein Modell haben, was möglichst nah an dem Original ist.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Am besten wäre natürlich gleich auf Nurbbasis zu modelieren, denn dann hat man diese probleme garnicht erst.
Je nach Grafikpower kann man einfach die Tesselierung höher schrauben und mit TrueForm(ATI) und instancing(NV) kann man zur laufzeit dies Hardware gestützt machen. So entfallen verschiedene LOD Models und das Model ist viel länger up2date.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
such mal nach LOD oder Progressive Mesh
Da gibts einige C Sources und auch Delphi sources (z.B. http://tothpaul.free.fr da gabs mal was zu Progressive Meshes in Delphi mit dem Standard Bunny).
Wenn du da was interessantes hast kannst dus ja mal hier prosten....
Grüße
User69
Zuletzt geändert von user69 am Do Dez 07, 2006 21:57, insgesamt 1-mal geändert.
Mitglieder in diesem Forum: 0 Mitglieder und 15 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.