Below, I will write down some general advice for beginners,
who are just getting started in Computer Graphics(using C++ with OpenGL or DirectX)
If you guys got any more advice, you are welcome to add it!
Conversation
Replying to
1. learn linear algebra well. the concepts you will mostly be needing in graphics are
* Cross Product
* Dot Product
* Transformation Matrix
* Orthonormal Bases.
* intersection calculations. e.g., intersection between ray and sphere
focus your efforts on groking the above.
6
7
75
2. Learn and start using RenderDoc AS EARLY AS POSSIBLE. It will save you so much time in the long
run.(or use something similar like Nvidia Nsight, if you prefer that)
1
1
41
3. Study the graphics pipeline, and make sure you roughly understand it.
Otherwise, it's actually difficult to even write a Hello Program in OpenGL or DirectX.
(see e.g. gamedev.net/articles/progr)
2
2
36
4. OpenGL and DirectX can unfortunately be pretty opaque API:s, to a beginner.
If you find them difficult, try your hand at instead writing a ray tracer or a
software rasterizer. Once you've done this, the graphics API:s are much easier to grok.
1
25
See Peter Shirley's ray tracing books, if you want to learn ray tracing
twitter.com/Peter_shirley/
See scratchapixel, for an intro to software rasterization:
scratchapixel.com/lessons/3d-bas
This Tweet is unavailable.
1
6
41
5. Keep dependencies to a minimum. big libraries can easily waste your time,
which takes away time you could be using for coding graphics. In the beginning,
the only libraries you will ever need will probably be GLFW and a simple image loader(I use lodepng)
1
1
28
(of course, as you get more advanced, you will probably need libraries for handling more image formats and handling
various mesh file formats.)
1
8
6. For OpenGL, be careful that you don't accidentally learn really old OpenGL versions. Avoid
tutorials where they mention stuff like `glVertex3f`.
4
3
31
7. Now I'm gonna suggest some good beginner's projects. These projects don't take that
much code to implement.
* blinn-phong shading
* bare-bones minecraft renderer.
* directional lights, point lights and spotlights.
* heightmap rendering
2
2
41
more projects:
* reflection rendering, using cubemaps.
* shadow rendering, with shadow maps
* view frustum culling.
* particle systems.
* cloth simulation.
5
3
45
