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

Tankard

Treue Seele

  • »Tankard« ist der Autor dieses Themas

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

1

15.12.2013, 13:04

Einstieg in 3D Modellierung und Programmierung

Hallo,

ich möchte anfangen mich etwas in die 3D Modellierung und Programmierung einzuarbeiten. Konkret möchte ich dazu ein kleines TBS erstellen, eventuell auch RTS. Meine Erfahrungen mit Grafik/Bildverarbeitung beschränkt sich derzeit auf etwas PCL und OpenCV, also nichts was ich jetzt wirklich gebrauchen könnte.

Im ersten Schritt dachte ich mir, dass ich mir ein paar Blender Tutorials angucke und die Figuren dort nachbaue und denen eine Laufanimation verpasse. Blender wollte ich verwenden, da es kostenfrei ist und es viele Tutorials gibt. Wenn es da eine (bessere) Alternative gibt, dann würde ich mir diese auch angucken.

Für die Texturen wird immer Photoshop verwendet. Kann man das auch genauso gut mit freier Software wie z.B. Gimp machen?

Anschließend stellt sich die Frage, wie ich diese Modelle und Animationen in einer eigenen Software verwenden kann. Hier fehlt mir die Erfahrung. Kann man die Modelle direkt mit DirectX oder OpenGL laden? Kann/sollte ich lieber eine fertige Engine verwenden?
Ich habe eigentlich direkt daran gedacht OpenGL zu verwenden, da mir das auch beruflich etwas bringen könnte (falls ich überhaupt in die Softwarerichtung gehe). Allerdings will ich ja auch schnell Resultate erzielen. Wozu würdet ihr mir raten?

Als Programmiersprachen würde ich am liebsten C++ oder C# verwenden. Ich habe sonst noch Erfahrungen mit Java und C. Die WinAPI habe ich noch nie verwendet (falls OS-APIs überhaupt relevant sind).

Würde mich über eure Anregungen freuen.

~Tankard

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

15.12.2013, 14:26

Für die Texturen wird immer Photoshop verwendet. Kann man das auch genauso gut mit freier Software wie z.B. Gimp machen?
Klar geht das. Falls Du keine Photoshop-Lizenz besitzt, bitten wir sogar darum.

Kann man die Modelle direkt mit DirectX
eventuell
oder OpenGL laden?
Nicht ohne zusätzliche Lib.

Kann/sollte ich lieber eine fertige Engine verwenden?
Solltest Du. Make Games, not Engines.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

15.12.2013, 15:03

Du musst dir die Frage stellen, ob du dich mit Grafikprogrammierung beschäftigen willst, oder mit Spieleentwicklung. Man kann auch beides machen, muss dann aber daran denken, das man vermutlich nicht genügend Zeit hat, irgendetwas wirklich fertig zu stellen.

Um Modelle zu laden kann ich Assimp empfehlen:
http://assimp.sourceforge.net/

Für Texturen gibt es Bibliotheken wie:
http://freeimage.sourceforge.net/

Aber animierte Modelle mit OpenGL zu rendern, ist keine Kleinigkeit, da kann man sich schon ein paar Wochen mit beschäftigen (bis man ein grobes Gerüst hat und es rudimentär funktioniert).
Lieber dumm fragen, als dumm bleiben!

Tankard

Treue Seele

  • »Tankard« ist der Autor dieses Themas

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

4

15.12.2013, 15:28

Schonmal Danke für die Antworten.

Für die Texturen wird immer Photoshop verwendet. Kann man das auch genauso gut mit freier Software wie z.B. Gimp machen?
Klar geht das. Falls Du keine Photoshop-Lizenz besitzt, bitten wir sogar darum.


Gut, ich wollte nur wissen ob ich mir durch eine fehlende Photoshop Lizenz große Hürden in den Weg legen würde.

Kann man die Modelle direkt mit DirectX
eventuell
oder OpenGL laden?
Nicht ohne zusätzliche Lib.
Kann/sollte ich lieber eine fertige Engine verwenden?
Solltest Du. Make Games, not Engines.


Du musst dir die Frage stellen, ob du dich mit Grafikprogrammierung beschäftigen willst, oder mit Spieleentwicklung. Man kann auch beides machen, muss dann aber daran denken, das man vermutlich nicht genügend Zeit hat, irgendetwas wirklich fertig zu stellen.


Ich habe gehofft, aus beiden Bereichen etwas mitzunehmen. Da ich auch mal Resultate haben will, würde ich dann doch eher in Richtung Spieleentwicklung gehen um schneller an Ergebnisse zu kommen. Dafür dann also lieber eine fertige Engine benutzen? Was bietet sich denn für TBS/RTS an?

Um Modelle zu laden kann ich Assimp empfehlen:
http://assimp.sourceforge.net/

Für Texturen gibt es Bibliotheken wie:
http://freeimage.sourceforge.net/

Aber animierte Modelle mit OpenGL zu rendern, ist keine Kleinigkeit, da kann man sich schon ein paar Wochen mit beschäftigen (bis man ein grobes Gerüst hat und es rudimentär funktioniert).


Ich habe ein Video auf Youtube gesehen, wo ein Modell samt Animationen in ein .x File exportiert wird. Könnte man so in einer Software dann direkt die Animationen aus Blender nutzen, oder muss man die Animationen dann mit der Engine/Lib machen?

Renegade123

Alter Hase

Beiträge: 494

Wohnort: Berlin

Beruf: Certified Unity Developer

  • Private Nachricht senden

5

15.12.2013, 22:04

Gimp, Blender, Unity und C# - damit wirst du schnell glücklich 8)

PS: Unity importiert nativ Blender Dateien.
Liebe Grüße,
René

Tankard

Treue Seele

  • »Tankard« ist der Autor dieses Themas

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

6

15.12.2013, 22:32

Danke für den Tip, ich werde mir Unity mal genauer angucken. Sieht auf den ersten Blick schonmal nicht schlecht aus.

7

15.12.2013, 23:25

Könnte man so in einer Software dann direkt die Animationen aus Blender nutzen, oder muss man die Animationen dann mit der Engine/Lib machen?

Animationen in Dateien speichern und Animationen abspielen sind 2 verschiedene Dinge. Assimp ist nur dafür da, dir eine komfortable Schnittstelle zu diversen 3D-Formaten zu bieten, das Rendern bleibt komplett in deiner Verantwortung. Wenn du das nicht selber implementieren möchtest, müsstest du halt dementsprechend eine fertige Engine benutzen.
Lieber dumm fragen, als dumm bleiben!

Tankard

Treue Seele

  • »Tankard« ist der Autor dieses Themas

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

8

16.12.2013, 00:16

Könnte man so in einer Software dann direkt die Animationen aus Blender nutzen, oder muss man die Animationen dann mit der Engine/Lib machen?

Animationen in Dateien speichern und Animationen abspielen sind 2 verschiedene Dinge. Assimp ist nur dafür da, dir eine komfortable Schnittstelle zu diversen 3D-Formaten zu bieten, das Rendern bleibt komplett in deiner Verantwortung. Wenn du das nicht selber implementieren möchtest, müsstest du halt dementsprechend eine fertige Engine benutzen.


Wenn so eine Datei geladen wird, dann müssen doch auch Informationen zu den Animationen geladen werden. Wie kann ich mir das vorstellen?

Naja, vorerst muss ich eh mein erstes Modell fertigstellen (hoffentlich komm ich morgen dazu) und dann guck ich mir erstmal Unity genauer an. Wäre zwar auch interessant direkt mit OpenGL zu arbeiten, aber ich glaube das würde zu viel Freizeit fressen bis ich ein Ergebnis hab.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

16.12.2013, 14:31

Du kannst dir das im Prinzip einfach mal angucken. Exportiere mal ein Modell aus Blender in .x und guck dir das ganze mit einem Texteditor an. Ich schlage dir vor erst mal etwas sehr simples zu exportieren. Möglicherweise einfach einen Würfel. Für Animationen gibt es dann verschiedene Möglichkeiten. Eine Möglichkeit wäre die Keyframe Animation. Das läuft im Prinzip ab wie bei Stop Motion, wobei du zusätzlich ein paar mehr Möglichkeiten hast. Du legst einfach das Aussehen und die Position, Rotation etc vom Modell zu bestimmten Zeitpunkten fest. Beim abspielen der Animation wird dann zwischen diesen Keyframes interpoliert. Afair wird das bei md5 so gespeichert, dass du in der Datei jede Version des Modells stehen hast. Dein Programm würde diese Daten dann laden und daraus intern das Model anlegen. Dann guckst du an welcher Stelle der Animation du dich befindest und interpolierst zuwischen den umschließenden Keyframes um den aktuellen Zustand des Models zu bekommen.
Das wäre jetzt nur ein Beispiel für einen Workflow. Mit Unity musst du dich normalerweise um diese Dinge nicht kümmern. Da animierst du dein Modell und lädst es dann einfach in Unity.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige