reflection

docx

School

Southern New Hampshire University *

*We aren’t endorsed by this school

Course

330

Subject

Computer Science

Date

Nov 24, 2024

Type

docx

Pages

3

Uploaded by LieutenantUniverseRaccoon9

Report
P a g e | 1 Daniel Williams CS330 SNHU 8/20/2023 Reflection Development Choices In crafting my 3D scene, I made deliberate decisions that contributed to the overall realism and engagement of the environment. The starting point for my project was a 2D image of my kitchen island, which served as the foundation for the 3D scene. This selection was guided by the potential to showcase everyday objects in a relatable context. The choice of a kitchen island image provided the opportunity to recreate familiar objects in 3D. By including a Starbucks cup, iPhone, Apple Watch, and beer bottle as central elements of the scene, I aimed to evoke a sense of everyday life that viewers can easily relate to. These objects were carefully chosen for their distinctive shapes and textures, which posed an exciting challenge to replicate accurately in the 3D world. To ensure a visually coherent and performance-efficient outcome, I opted to model low- polygon 3D representations of the chosen objects. This choice allowed me to strike a balance between detail and performance, resulting in a smooth viewing experience. Employing a variety of primitive shapes, such as cubes, cylinders, and spheres, I meticulously crafted each object to mirror its real-world counterpart. For instance, the Starbucks cup's curvatures were achieved
P a g e | 2 through a combination of cylinders and planes, while the iPhone and Apple Watch incorporated cubes and cylinders to capture their distinct features. Incorporating wood grain textures into the scene further enhanced the authenticity of the environment. By accurately projecting these textures onto the objects, I aimed to replicate the tactile feel of wood, adding an extra layer of realism to the scene. The textures were sourced meticulously to ensure they complemented the objects' designs and scale appropriately. In summary, my development choices were instrumental in translating a 2D image of my kitchen island into an immersive 3D scene. By selecting relatable objects, opting for low- polygon models, and leveraging diverse primitive shapes, I strived to create an engaging and authentic environment. The use of accurate textures added depth and realism, elevating the viewer's connection to the scene. These choices reflect my proficiency in generating accurate representations of objects and textures, as well as my commitment to maintaining a balance between realism and performance in the 3D world. Navigation User navigation was a critical aspect of the project to enable viewers to explore the scene seamlessly. I implemented camera controls using both keyboard and mouse input to offer flexibility. Users can traverse the X, Y, and Z axes using the WASD and QE keys, while the mouse cursor adjusts the camera's orientation for a comprehensive view of the environment. To accommodate all objects within the camera's view, I refined the camera's orbit radius and position. By utilizing the code developed in a previous milestone, I increased the orbit radius to ensure that all objects were within the camera's scope. This strategy helped create a balanced and encompassing experience for users as they navigate the scene.
P a g e | 3 Custom Functions I integrated several custom functions into the codebase to enhance modularity and organization. One such function is `loadModel()`, responsible for loading 3D models from various file formats. This function proved reusable across different objects, streamlining the process of adding new elements to the scene. Another significant custom function is `calculateLighting()`, which implements the components of the Phong shading model, including ambient, diffuse, and specular lighting. By encapsulating lighting calculations within this function, I achieved a more organized and comprehensible codebase. Moreover, I developed the `toggleProjection()` function to seamlessly switch between perspective and orthographic projections. This addition enables users to alternate between 2D and 3D views, enriching their exploration of the scene. In conclusion, my development choices were guided by the objective of transforming a 2D image into an immersive 3D environment. By thoughtfully selecting objects, implementing intuitive navigation controls, and integrating custom functions, I aimed to create a polished and engaging 3D scene that aligns with the client's vision. The project showcases my proficiency in generating accurate representations of 3D objects, creating interactive graphics applications, and adhering to best practices in code development.
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help