Computer Graphics(CG) is a fascinating area. But it can be hard to approach for starters. One reason is that there are a lot of math and physics principles behind. For example, you need to understand how light interact with matters to really understand Physically Based Rendering (PBR). The other reason is that modern graphics pipeline is highly specialized and optimized. In order to understand it, both hardware and software knowledge is needed.
Here is a collection of great web resources to learn about computer graphics.
- ScratchAPixel, incomplete but valuable courses about the principles of CG. From the very basic to advanced.
- OpenGL Specs, official OpenGL specs documents, refer those whenever you have questions or want to konw more.
- Learn OpenGL, great tutorials to learn OpenGL
- Unity Shader Tutorial, teaches about shader programming in Unity, provides
- ShaderToy, experiment and visualize glsl shaders. Many amazing works there. Great place to explore for fun and to learn.
- Mathematics for 3D Game Programming and Computer Graphics
- Real-Time Rendering
- Physically Based Rendering : From Theory To Implementation
- Learn OpenGL, all OpenGL tutorial codes of https://learnopengl.com/
- Anton's OpenGL 4 Tutorials book , OpenGL tutorial codes by Anton Gerdelan
- PRBR, the renderer described in the Physically Based Rendering : From Theory To Implementation book
- tinyrenderer, a tiny render to show how OpenGL and rendering works
- Ray Tracing in One Weekend repository, ray tracer code based on Ray Tracing in One Weekend's book.