Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Patrick

Alter Hase

  • »Patrick« ist der Autor dieses Themas

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

1

23.05.2003, 21:00

@ghostie:
Nerona ohne U drine ;) Das Projekt liegt momentan nicht in meinen Händen :ohoh: Da die planung total fürn ***** war :(

Die Engine geht mir momentan vor :) Weil ich/wir aus dem Team haben momentan total andere pläne als Nerona :) Nerona ist momentan nur auf Eis aber nicht tot :) Also hoffnung ist noch da :)

@David:
Geht gut vorran :)

2

23.05.2003, 21:22

@patrick: was machste denn so an der engine? support für animationen der models? würde mir ganz gut passen ^^
stay tight, project universe comes back!
### project earth <> 2004 ###

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

23.05.2003, 21:25

Soweit ich weiß wird sich technisch nicht viel ändern, nur die "Verpackung" (mehr OOP).
Animationen sind etwas superkompliziertes... allein es mal zu schaffen, die aus einem 3D-Modellierprogramm heraus zu exportieren und vernünftig zu laden...
Sowas wäre ein Thema für ein eventuelles zweites Buch ;)

4

23.05.2003, 21:30

nur mal ne frage zur angehensweise (hab mich noch nich mit beschäftigt):

funktioniert das bone-modelling so, dass man quasi viele kleine models hat (arm, bein, hand, finger, ka was alles), und das dann in den einzelnen frames steht, um wieviel sie jeweils verschoben, rotiert, skaliert sind (vielleicht auch gleich inner matrix)

geht das so, oder wird das anders gemacht?
stay tight, project universe comes back!
### project earth <> 2004 ###

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

23.05.2003, 21:37

Das hat man früher so gemacht, z.B. bei Tomb Raider 1. Hat aber den Nachteil, dass man es sieht, dass die Körperteile nur einzelne Objekte sind.
Mit Bones funktioniert es anders. Man modelliert die gesamte Figur als ein einziges Modell und baut ein Knochengerüst herein, das Skelett. Das Skelett wird nun animiert.
Vorher wird definiert, wie stark jeder Punkt des Modells von jedem der Knochen beeinflusst wird. Wenn man den Beinknochen bewegt/dreht/skaliert, bewegen sich die umliegenden Punkte des Modells entsprechend. Weiter weg liegende Punkte werden weniger oder garnicht davon beeinflusst.
Man kann dadurch sehr flexibel arbeiten, muss aber auch die Position jedes Punkts in jedem Frame neu berechnen. Aber dafür kann man glücklicherweise Vertex-Shader verwenden.

6

23.05.2003, 21:41

aha, thx für die info!

jaja, die möglichkeiten der technik :)
das zu implementieren is bestimmt auch nich soo einfach ;)

und nein, vertexshader kann MAN (ich) nicht verwenden :(

die funktion von denen hab ich auch noch nich ganz verstanden
stay tight, project universe comes back!
### project earth <> 2004 ###

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

23.05.2003, 21:46

Direct3D kann Vertex-Shader emulieren, also kann sie jeder benutzen (bei Pixel-Shadern ist das nicht so, das wäre viel zu langsam).
Der Sinn von Vertex-Shadern ist es, Kontrolle auf niedrigster Ebene über das zu haben, was mit den Vertizes geschieht, bevor sie zu Dreiecken, Linien und Punkten zusammengesetzt werden: Transformation, Beleuchtung, Clipping, Animation, millionen verschiedener Effekte :)
Das Besondere an ihnen ist, dass man z.B. Animationen erreichen kann, ohne selbst "per Hand" das Modell zu verändern, was sehr langsam wäre. Da die Grafikkarte die Ausführung der Vertex-Shader übernimmt (neuere können es zumindest), braucht man sich um Geschwindigkeit weniger Sorgen zu machen und überlässt die Arbeit der Grafikkarte, die mit solchen Daten sowieso besser zurecht kommt, weil sie ja sozusagen direkt an der Quelle der Daten sitzt.

8

23.05.2003, 21:53

oh gut :)

is die shader-emu denn besonders schnell?

und gehts auch ohne?

was ist schneller:
1. vertex-shader-emulation
2. ohne vertex shader die bones berechnen lassen

und wie wird das gespeichert?
man könnte ja, wenn man genug platz hat, alle frames vorberechnen lassen und abspeichern, is halt ein bisschen speicherfressender, aber schneller, als jeden frame die aktuelle stellung ausrechnen zu lassen, oder?

arbeitet halt life mit bones?
stay tight, project universe comes back!
### project earth <> 2004 ###

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

23.05.2003, 22:05

Was schneller ist, kannst Du im DirectX SDK testen, dort gibt es ein Beispielprogramm zu dem Thema, es heißt "Skinned Mesh". Man kann wählen, wie die Animation gemacht wird (Vertex Shader oder Software).
Gespeichert wird das so:

- normales Modell
- Vertex-Weights (Werte, die bestimmen, wie stark jeder Vertex von jedem Bone beeinflusst wird, oder eine Liste der Bones für jeden Vertex, wo die Beeinflussung größer als null ist)
- das Skelett (Hierarchie der Bones)
- Animationsdaten: für jeden Keyframe die Position, Rotation und Skalierung der Bones

Schneller ist es schon, wenn man für jedes Frame das komplette Modell speichert, aber es hat sehr große Nachteile:

- man braucht sehr viel Speicher
- es müssen sehr viele Frames sein, sonst merkt man es, da Bewegungen immer linear verlaufen (Drehungen sind so garnicht möglich, und man sieht, dass die Drehung nur aus kleineren kurzen geraden Abschnitten besteht)
- Man ist nicht flexibel. Mit den Bones kann man z.B. den Spieler dazu bringen, dass er mit seiner Waffe auf irgendetwas zielt, oder man könnte seine Gliedmaßen nach richtigen physikalischen Gesetzen bewegen usw.. Das ginge hier garnicht.

Soweit ich weiß, benutzte Quake 2 diese Art der Animation (mit dem MD2-Dateiformat). Half-Life benutzt Bones, da bin ich mir ziemlich sicher.

Patrick

Alter Hase

  • »Patrick« ist der Autor dieses Themas

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

10

23.05.2003, 23:07

Zitat von »"neonew"«

@patrick: was machste denn so an der engine? support für animationen der models? würde mir ganz gut passen ^^


Nein, sie hält sich sehr stark an die TriBase doch die gesetze der OOP wie z.B. das OCP wird eingehalten. Es wird eine Doku geben und eine Hira-Zeichnung der klassen. Nebenbei versuche ich noch mehr speed rauszubekommen als die TriBase schon hatte. 8)

Werbeanzeige