| Autor |
Beitrag |
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Fr 21.03.08 20:50
hi,
Ich habe die Tage mal eine kleine Demo gebastelt, welche eine kleine Simulation von Objekten wie Kleidung in Echtzeit darstellt.
Die Physik ist nicht gerade das, was man als korrekt bezeichnen würde, allerdings eignet sie sich gut für Echtzeitanwendungen wie z.B. Spiele.
Hier gibt es einen großen Screenshot:
www.exec-dev.de/Cloth/cloth_high_res.jpg
Die Bedienung des Programms ist einfach:
- Pfeiltasten / Bild oben und unten - Bewegen des Objektes
- Plus / Minus - Objekt vergrößern / verkleinern
- Maus (Taste gedrückt halten und Bewegen) - Kamera bewegen
- w - wireframe mode
- l - Beleuchtung an / aus schalten
- o - wechselt zwischen Kugel und Würfel
- r - Simulation zurücksetzen
- s - Normalenglättung an/aus
- p - Shader an/aus
- 1-4 - Reibung einstellen
- 5-6 - Subsampling einstellen
- "." / "," - Auflösung des Gitters einstellen
- F1-F4 - Fixpunkte an/aus
- F5 - Screenshot
Hier gibt es den Download:
www.exec-dev.de/Cloth/Cloth.zip
Für Fragen und Anregungen bin ich offen, wer sich selbst mit dem Thema beschäftigen möchte, sollte sich den Artikel "Advanced Character Physics" von Thomas Jakobsen anschauen.
Falls reger Bedarf besteht, werde ich den Quellcode ein wenig aufbereiten und veröffentlichen.
mfg
Zuletzt bearbeitet von F34r0fTh3D4rk am So 11.05.08 20:48, insgesamt 19-mal bearbeitet
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 22.03.08 00:30
Hi,
kurz experimentiert, sieht auch schon sehr vielversprechend aus ... ABER:
1. Siehe Screenshot. Das solltest Du mal noch irgendwie schauen, dass da nicht das Objekt öfters mal durchschaut (und das statisch sogar so bleibt)
2. Renderfehler wenn das Tuch über sich selbst umgeklappt ist.
Einloggen, um Attachments anzusehen!
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 22.03.08 11:07
hi,
ja ich hab schon ne kleine Gegenmaßnahme drin, die verhindern soll, dass Objekte durcheinander durchschauen, allerdings funktioniert das auch nur in begrenztem Maße. Bei der Selbstkollision (die ich nicht behandle) sieht das ganze schon schwieriger aus.
Übrigens hat das Tuch keine Rückseite, ich zeichne nur die Vorderseite und schalte Backface Culling ab, deshalb ist die auch nicht ganz so wie sie sein sollte.
mfg
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mi 07.05.08 19:23
Ich hatte mich gewundert, warum die Kollision mit dem Würfel so viel langsamer war, als die mit der Kugel.
Das hinzufügen eines
Delphi-Quelltext
wirkt manchmal Wunder
Die etwas performantere Version ist hochgeladen.
mfg
Zuletzt bearbeitet von F34r0fTh3D4rk am Mi 07.05.08 19:34, insgesamt 2-mal bearbeitet
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Mi 07.05.08 19:33
Sieht echt beeindruckend aus!
Erinnert mich an das Cape von Spawn:
youtube.com/watch?v=NSoumRoNSt0
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mi 07.05.08 19:35
hi,
Hab gerade Version 1.1 hochgeladen. Jetzt kann man mit den Tasten F1-F4 die Fixpunkte bestimmen.
mfg
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 07.05.08 19:40
Moin,
ich finde die neue Version schon richtig gut!
Besonders im Wireframe mode sieht man so richtig wie schön es animiert ist.
Bloß:
- wenn man licht ausschaltet sieht das alles ein bisschen komisches aus(das object ist weiß)?
-es gibt grafik fehler wenn dieses Lacken aufeinander fällt.
Kann man sicher etwas draus machen!!!!
j.klugmann
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mi 07.05.08 19:45
hi,
hab grad nochmal hinzugefügt, dass man das Objekt jetzt auch nach oben und unten bewegen kann.
Die Fehler liegen daran, dass sich Polygone überlagern. Es sind schon einige Gegenmaßnahmen getroffen, aber so richtig behoben ist das Problem nicht. Das liegt, wie schon gesagt an der fehlenden Selbst-Kollision und der Tatsache, dass das Tuch aus Performancegründen (weil es eine Physik Demo ist) keine Rückseite hat.
Achja das mit dem Licht ist vielleicht missverständlich. Kein Licht bedeutet nicht, dass es dunkel ist. Ohne Licht gibt es kein richtiges Hell oder Dunkel, deshalb wird einfach alles weiß gezeichnet. Diese Funktion ist hauptsächlich für die Kombination mit dem Wireframe Modus gedacht.
mfg
|
|
arj
      
Beiträge: 378
Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
|
Verfasst: Do 08.05.08 15:15
Respekt. Saugeil. Ich hab mich im Studium mit Physiksimulationen beschäftigt.
Das sieht richtig gutaus. 
|
|
wunsiedler
      
Beiträge: 506
Erhaltene Danke: 4
Win7
|
Verfasst: Do 08.05.08 18:28
Wenn man die 4 Fixpunkte nach unten legt und zw. Kugel und Quader umschaltet, fliegt das Tuch weg und landet neben dem Quader. Tilt.  Fixpunkte wieder zurück, schwingt sich das Tuch wieder darüber. Sehr schön.
Allerdings: Fixpunkte unten, Kugel max. beim umschalten auf Quader verschwindet das Tuch im Nirvana....
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 09.05.08 10:08
Wenn man die Fixpunkte kurzzeitig alle abschaltet, schwingt das Tuch beim Reaktivieren stark in die Richtung des ersten aktivierten Fixpunktes ... Wenn man diesen kurz darauf wieder deaktiviert, kann man damit ein sehr efektives Katapult bauen, was nicht mal, wenn man danach alle 4 Fixpunkte wieder aktiviert, das Tuch zurück ins Blickfeld holt.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Fr 09.05.08 13:38
Ich sollte vielleicht mal eine Weltgrenze einführen ^^ ist eigentlich kein Ding, aber für solche Katapult Aktionen war das Programm auch eigentlich nicht gedacht
mfg
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Fr 09.05.08 14:31
Mein Respekt, sieht wirklich sehr realistisch aus
Allerdings hat dein Programm noch einen Bug (oder ist das ein Feature?): Wenn man die Kugel/den Würfel vergrößert/verkleinert, liegt er nicht mehr auf dem "Boden". Dadurch kann man mit einer überdimensionierten Kugel das Tuch extrem weit spannen und herrlich durch die Gegend schießen  .
Deswegen drei Featurewünsche:
- Beim verkleinern/vergrößern des Objekts sollte das untere Ende auf der gleichen Höhe bleiben
- Das Objekt sollte nicht in den Boden verschiebbar sein
- Man sollte die Objekthöhe (z.B. mit PageUp/PageDown) ändern können
- Wenn das Tuch zerreißt (was ja durchaus vorkommt), sollte es kaputt sein.
Zum letzten: kA wie kompliziert das in deinem Fall ist, deswegen: Nicht so wichtig, wäre aber schön.
Edit: Wer lesen kann, ist glatt im Vorteil 
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Fr 09.05.08 19:44
Hallo!
Deine Demo gefällt mir sehr gut. Was mir allerdings ein bisschen fehlt ist die Möglichkeit, das Gitter, das auch im Wireframe-Modus angezeigt wird, fein- oder grobmaschiger einzustellen, um die Qualität der Simulation erhöhen bzw. verringern zu können.
Was mir noch aufgefallen ist: lässt man das Tuch zu einem ungünstigen Zeitpunkt los rutscht es mangels Reibung komplett vom Würfel herunter und bleibt dann am Boden liegt, was sehr seltsam aussieht, da das riesige Tuch auf einige wenige Pixel zusammen"fällt". Anstatt dieses Lila-Tons ist dann auch sehr viel grau zu sehen (siehe Bild im Anhang).
AXMD
PS.: Die Frameraten reichen denke ich auf eine Nachkommastelle genau, 10 sind wohl etwas zu viel des Guten 
Einloggen, um Attachments anzusehen!
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Sa 10.05.08 02:16
Titel: Re: Realtime Cloth Simulation
F34r0fTh3D4rk hat folgendes geschrieben: | hi,
Ich habe die Tage mal eine kleine Demo gebastelt, welche eine kleine Simulation von Objekten wie Kleidung in Echtzeit darstellt.
...
|
Hallo,
wenn du Kugel/Quader durch Claudia Schiffer und das Tuch durch eine Kreation von Lagerfeld ersetzen kannst, könntest du damit richtig Geld verdienen. Ist ja nur ein quantitativer Unterschied...
Ich fürchte nur, man kann sowas heute nicht mehr als Einzelperson realisieren. Aber solange du Zeit dafür hast, mach weiter in der Richtung. Da steckt viel mehr Potential drin als in noch einem MP3-Player oder Texteditor.
Ich denke, mit einer Software, die einerseits individuelle Körpermasse berücksichtigt und andrerseits Kleiderstücke auf einem solchen Körper in 3D darstellt, könnte man sogar SEHR SEHR viel Geld verdienen - jeder Shop weltweit, der im Internet Klamotten anbietet, kann das brauchen.
Gruss Reinhard
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: Sa 10.05.08 06:24
wenn man die kugel ohne fixpunkte zum würfel ändert fliegt das tuch auch weg. ohne wiederkehr
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 10.05.08 16:53
So, es gibt eine neue Version
Version 1.2
Änderungen:
- Das Tuch kann die Welt nun nicht mehr verlassen
- Das Objekt (Kugel oder Box) kann nicht mehr im Boden versinken
- Die Simulation lässt sich nun zurücksetzen
- Die Auflösung des Tuchgitters ist einstellbar
- Luft- sowie Kontaktreibung sind einstellbar
- EDIT: Subsampling ist nun auch einstellbar
Allerdings scheint es noch einen Grafikfehler bei der Normalenglättung zu geben, das muss ich mir nochmal anschauen, gegebenenfalls mache ich die noch ausschaltbar. Ein optionaler Lichtshader (Phong) ist auch noch in Planung.
mfg
Zuletzt bearbeitet von F34r0fTh3D4rk am Sa 10.05.08 21:14, insgesamt 5-mal bearbeitet
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Sa 10.05.08 17:05
Hallo!
Die neue ZIP-Datei scheint beschädigt zu sein.
AXMD
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 10.05.08 17:09
hi, habs grad nochmal hochgeladen.
Jetzt lässt sich auch das Subsampling steuern.
Prinzipiell gilt:
- Je größer Sumsampling, desto genauer (aber auch langsamer) die Simulation.
- Je größer die Auflösung, desto realistischer (aber auch langsamer) die Simulation
- Je größer die Auflösung, desto ungenauer die Simulation
Daraus folgt, dass man für eine höhere Auflösung auch mehr Subsampling benötigt, was die Simulation doppelt langsam macht.
Also entweder hohe Auflösung und niedriges Subsampling oder geringe Auflösung und hohes Subsampling, oder etwas was dazwischen liegt (was bei der Standardeinstellung der Fall ist). In Echtzeitanwendungen wie Spielen ist die Auflösung jedoch meist geringer. Das lässt sich aber durch grafische Effekte leicht überdecken.
mfg
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 10.05.08 17:17
Bei den meisten Parameter-Kombinationen fällt das Tuch durch das Objekt hindurch, besonders, wenn das Objekt sehr klein oder sehr groß ist.
Außerdem sieht die Simulation jetzt an vielen Stellen etwas unnatürlich aus, besonders da sich das Tuch zu verdrehen scheint, obwohl sich die Kugel nicht dreht und solche Effekte.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
|