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

1

29.05.2014, 22:51

Objekt manipulieren

Hallo,

ich habe etwas gegooglet aber komme nicht weiter bzw. weiß nicht mal wie ich anfangen soll. Vielleicht suche ich auch einfach mit den falschen Begriffen, da ich ein Neuling in diesem Bereich bin.
Mein Ziel ist, eine Welt zu erschaffen worin ich Objekte manipulieren kann. Nicht einfach vergrößern oder verkleinern, sondern z.B. Würfel zu einem Quader langziehen. Mit der suche bin ich auf Vertex Shader gestoßen. Bin ich auf dem richtigen Weg damit? Bei mir werden es zwar nicht komplexe Objekte werden, aber angenommen man will z.B. Grashalme darstellen, dies wird ja die selbe Technik sein vermute ich oder? Man wird ja unmöglich zu jedem Dreieck manuell separat eine Berechnung durchführen lassen für die Bewegung im Wind z.B. oder?
Aber wie gesagt, bei mir sind es simple Basisobjekte, die ich manipulieren will. Ich hoffe ihr könnt mir ein Wegweiser sein.
ich bedanke mich im Voraus

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

29.05.2014, 22:59

Also du suchst ein 3D Modelling Tool?

Dazu gibts hier eine Liste:
http://en.wikipedia.org/wiki/List_of_3D_modeling_software

Ich weiss jetzt nicht wirklich was für einen Anfänger am geeignetsten ist, aber ich kenne z.B. Blender, ZBrush, Wings 3D, Sketchup, Sculptris, Milkshape, Autodesk, Poser. Zumindest vom hören.

3

29.05.2014, 23:22

Nicht wirklich ein Modelling Tool. Ein Objekt, was mit einem Modelling Tool erstellt wurde, soll mittels C++ manipuliert werden.
z.B.: Ich erstelle einen Würfel mit Blender (Oder eben 12 vertices die ich einfach in Visual Studio eingebe). Dieser soll in einem Projekt mittels C++ manipuliert werden. Ich halte hierfür in meinem selbst erstellten Programm z.B. meine Maustaste gedrückt und mein Würfel wird entsprechend meiner Mausbewegung langgezogen zu einem Quader.
Es muss doch irgendeine einfache Funktion hierfür geben oder nicht? Sind die Bibliotheken von Direct3D nicht genau für solche Probleme?

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

4

29.05.2014, 23:56

Kennst du dich überhaupt mit der 3D-Programmierung aus?
Wenn nein, dann kannst du, was auch immer du gerade vor hast, vergessen, denn es ist viel zu komplex für dich.

Fang doch mal an einen Würfel mit Direct3D/OpenGL darzustellen. Dann kommst du vielleicht auch darauf wie man die Vertices verändert. ;)

5

30.05.2014, 00:14

Mach am Besten, was Cranberry schon gesagt hat. Danach kannst du dir einmal Matrizen, Quaternionen, und SQT Transformationen anschauen. Doch wie gesagt erstmal die "Basics". Später dann rate ich zu einem Mathebuch, wenn du denn wirklich bei 3D bleiben willst. Ich bin persönlich erklärter Fan ( ;) ) von diesem hier: http://www.amazon.de/gp/product/14354588…SGD2MV1AWNAW4SP.

6

30.05.2014, 01:03

Um auf die Frage zu antworten, unabhängig von deinem Wissensstand:

Es kommt drauf an, wie du deine Vertices deformieren, bzw Geometrie manipulieren möchtest. Ich nehme an, dass es zwar zur Laufzeit seit soll, aber im Konkreteren geht es auf mehrere verschiedene Weisen - je nach Verwendungsart und Performance-Intention:
  • Für Windeffekte bei Vegetation oder anderen physikalischen Simulationen (besonders Cloth- und Foliage-Simulation) empfiehlt sich ein Vertexshader, der mit entsprechenden Informationen (wie ein Windeinflussfaktor, Windrichtungsvektor oder Windareadefinitions)
  • Für interaktive physikalische Simulationen kann man entweder Vertexshader, oder CPU-Berechnung nutzen (CPU-Manipulation von Vertex Buffern)
  • Für Character-Animations wird ganz gerne auch der Vertexshader benutzt, aber bekannter dafür sind CPU-Manipulationen
  • In Modell-Editoren wird häufig auschließlich CPU-Manipulation verwendet, da diese deutlich flexibler ist
  • Eher selten werden Skalierungsmatrizen in die Transformationsmatrix mit eingerechnet. Dennoch kann das für die Manipulation des gesamten Objekts sinnvoll sein.

Das ist aber kein verbindliches Modell - nur das Resultat kurzzeitiger Überlegungen mithilfe meiner bescheidenen unberuflichen Erfahrungen. Dennoch kann ich sagen, dass es in der Spieleentwicklung sehr oft darum geht , aus vielen möglichen Techniken, möglichst passende auszuwählen und zu kombinieren. Somit liegt diese Aufgabe auch bei dir ;)

Ich weiß jetzt nicht inwiefern dir das hilft, weil ich deinen Wissenstand nicht kenne. Falls du tatsächlich erst ganz am Anfang stehst, solltest du wirklich erst einfacher einsteigen und einfach mal alle 3 Techniken (Vertexshader, CPU-Manipulation, Transformation-Matrix) im einzelnen anzuschauen und auszuprobieren, bevor die sie in ein großes Vorhaben implementierst ;)
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

Werbeanzeige