
I recently came across the concept of shaders. I remember the concepts related to them, from the subject of Computer Graphics, in college. The subject is interesting, it has some connection to the world of games.
Upon searching the Internet, I found some information related to the shaders. The implementation part of shaders seems have multiple concepts related to the shaders, vertex shaders, geometry shaders, fragment shaders and compute shaders. This must be the worldly, or, engine/software part of the concept of shaders.
Any concept seems to have 3 parts, theory, or academic part, library, or real world helper part, and, engine/software part, or, real world application part. The shaders have these 3 parts, theory, library and engine. The theory can be found in the book written by Hearn and Baker, the libraries are OpenGL, DirectX and Metal, and, the engines/software are Unity, Godot, CAD applications, etc.
The concept of ray tracing also comes to the mind.
The ray tracing, from theory and observation can be described as follows. For rendering a scene from the 3D world, that is, from a 3D space to a 2D (screen) space, we need ray tracing. A camera may be involved, a camera must be the source of lines to be followed in order to render 3D into 2D. Such lines can be used to resolve 3D co-ordinates into 2D screen. Logic here may be, to trace all the 3D objects that intersect this camera line, and, choose a point closest to the camera for rendering into 2D screen. Of course, other factors may be involved, apart from just 3D co-ordinates, like, light, darkness, etc. Light source and darkness source calculations can be performed, to render a 3D scene onto a 2D screen.