-5

I'm trying to develop my own mini animation program like maya, blender, cinema 4d where I can create objects, move them around, render them, etc. Does anyone know any good resources for that? I've found a few but usually when I google for something similar to this all that comes up are game engines. I'm not trying to create a game. And please, don't tell me things like "you need a team", "just use what is already out there", "you're probably not experienced enough"..

Here are some resources I've already found: https://www.reddit.com/r/cpp/comments/3g1pvf/i_want_to_create_a_3d_engine_from_scratch_where/ https://gamedevelopment.tutsplus.com/tutorials/lets-build-a-3d-graphics-engine-points-vectors-and-basic-concepts--gamedev-8143 https://www.codeproject.com/Articles/1168552/Build-My-Own-D-graphics-engine-step-by-step

Target: Windows

M2Paint
  • 19
  • 4
  • 2
    It might help to list down what you have found so that people can 1) get a sense of what you expect and 2) recommend what you have not found. It also depends on which level of abstraction you intend to work at. For e.g., you could either work with OpenGL/Khronos or with a 3D engine such as Unity. And by resources, do you mean just libraries/systems or do you also want recommendations for books/courses etc.? All these are not clear from your question. Also, a animation program is a huge project. Which aspect are you focusing on? Which platform? – lightalchemist May 13 '18 at 18:57
  • Generally there is going to be a lot of overlap between 3d game design and editor design: fundamentally they are both applications for taking user input to manage a 3d scene or scene graph. Editors will be more gui heavy and need support for things like undo queues and file open/save -- but the hard parts will be very similar. – theodox May 14 '18 at 01:31

1 Answers1

1

Math

You should know enough linear algebra to know how the various linear transformations in 3D graphics work - translation, scaling, change of coordinate basis, view transformation etc.

You should also know how to render curves and surfaces using splines, Bezier curves, Bezier patches, subdivision methods (e.g., Catmull-Clark) etc.

Mathematics for 3D Game Programming and Computer Graphics is a good place to start if you are unfamiliar with the math.

GUI

After that, you need to pick the libraries for building the application. For building the GUI, if you want to make it easy to port it across platforms, go with Qt. If you only want to target Windows, then go with the native .NET library.

3D Engine

For representing, manipulating, and rendering 3D objects, you could go with the Unity engine. There are a lot of tutorials and books around to teach you how it works.

If you want to go deeper and build your own engine, you can either work with DirectX or OpenGL/Khronos.

lightalchemist
  • 10,031
  • 4
  • 47
  • 55