The materials are used to customize 3D objects appearance; however, behind them lie two programs called shaders. The goal of materials is to hide this notion of shaders and simply work with the values in the material object. In other words, the values in the material can be the emissive color of the object, the diffuse color, the transparency level and so on.
In fact, to go further with the theory, there are several types of shader, as shown in the following list:
- Vertex Shader: This works directly on the 3D object geometry.
- Pixel Shader: This works directly on the pixels on the screen.
- Geometry Shader (not available on WebGL): This works on the 3D object geometry; however, here it is able to directly add polygons to the geometry of the 3D object according to the output of the vertex shader.
- Compute Shader (not available on WebGL): This doesn't work directly on the 3D objects and pixels. It is just used to compute some user-defined data using...