As someone primarily versed in back-end development, delving into JavaScript and design posed a formidable challenge. The opportunity to develop a robust understanding of diverse programming concepts — ranging from WebGL graphics creation using the canvas element to the intricacies of implementing buffers and shaders and rendering three-dimensional objects in modern graphics systems — was an endeavor I eagerly embraced.
In Graphics and Visualization, I discovered a rich mosaic of components that laid the groundwork for mastering its complex principles. The journey through various facets of this field, from rendering and foundational modeling to geometric modeling and computer animation, not only built a solid base but also deepened my understanding of the nuances involved in creating sophisticated graphics. This educational path unveiled a comprehensive spectrum of elements crucial for understanding rendering, modeling, and animation.
For my project, I chose to enhance the assignment that I found most engaging and challenging - the interactive cube. I refined the interaction model by enabling direct mouse control over the cube, moving away from the traditional slider approach. To enhance the representation of depth and demonstrate the capabilities of the Z-buffer more effectively, I introduced a second, smaller cube positioned behind the original. Additionally, I modified the canvas background to black and programmed the cubes to display in randomly selected colors each time the program runs, adding an element of surprise and visual interest.