I developed a custom Monte Carlo path tracing algorithm in GLSL. My implementation handles diffuse, specular, and refracted rays, allowing for the simulation of global illumination and transparent materials. The rendering of each object is determined by three key material parameters: shininess, roughness, and opacity. By adjusting these parameters, realistic rendering of various objects, including mirrors, glass, plastics, and more, can be achieved.