Search code examples
c++animationblendermayacinema-4d

Resources for a 3D animation program


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


Solution

  • 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.