Skip to content

zanemilo/OpenGL_Scene

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenGL Scene Project

The purpose and scope of this project was to learn and apply OpenGL knowledge into a showecasable asset. The scene consists of a many objects to include cookies, a cup, a metal sphere, and a book. I chose these objects due to their differences in how they are shaped, interact with light and could be easily modeled in the software. I figured the variety of objects and materials will give me a strong way to showcase the many different areas of OpenGL I leveraged to achieve the looks of the objects and materials.

My approach to designing software is typically a mix of waterfall and agile on a small scale. I routinely separate the stages of my development to give me a spring board when it comes time to develop the software. Since I am a solo developer, I often wear many hats ranging from the UI/UX, frontend, backend, requirement analysis, testing/automation, quality assurance, and security. It can quickly become overwhelming as a solo developer to effectively meet each facet of design that the software demands. Therefore I take a dynamic and mixed approach to my design. I begin by conducting a looser requirement analysis to get my minds eye locked into what the minimal viable product or essential functionality may be. This stage falls into the waterfall planning phase and typically takes a breadth-scope position. Ideas come and go quickly and the how I will achieve the goals begin to take shape as I decide on which solutions align best for my use case and budget. Once planning and designing are conducted, I may switch my hat to one that considers the lower level details of how the classes, methods and modules interact to complete the system to be created. Next, I begin to develop and return to the previous role routinely to adjust and merge new ideas, requirements, changes and maintain focus on the goals set forth from the planning stage. During this iteration, I may switch between different areas of concern such as testing and security once pieces of the software begin to take a firm stance in the system. Thus my design is a dynamic and mixed approach that best suits small scope and freedom to alter direction at any given moment.

The new design skills that this specific project ahs helped me build would be planning, testing, and implementing. There were many aspects that took effort to understand how each portion of the software fit together. For example, I had to first understand how each stage of the rendering pipeline worked internally in OpenGL. Next, I sat with the shape meshes to grasp how the meshes were created using edges, vertices, and faces. Afterwards, I took to rotation, scale, position to be able to communicate the visually properly. Then, I spent time applying textures to the individual objects, followed by adding material data to each objects face. This portion became a large learning point in my design process since I had to understand how shaders were interoperating with OpenGL to achieve realistic object-light interactions. Tactics to apply as I move forward would be to make a choice, and start early with the design so that later portions of development do not call for alterations, potentially eroding the effort I put forth into the intial design in the first place. I will ensure to have these design choices determined early to help me with future work.

Some new strategies I used specifically in this project was to make tiny incremental changes to the code, re-compiling and looking at the outcome visually, in terminal and logs to bes tudnerstand how to get the outcome I sought. Throughout each milestone, I became more familiar with the codebase, and systems, which led me to deeper understanding and confidence that I can learn the other portions of OpenGL.

Computer science may aid me in visualizations and graphics in both educational and professional settings alike. With each new piece of foundational knowledge that computer science teaches me I become more conifdent in my skills and ability to achieve complex end procuts that solve real world problems. In education, this may translate to deeper understanding that then accelerates my learning in other areas through trancendental knowledge cross over. To add to that, I am also using each foundational aspect from my earlier course in computer science to achieve the projects at this point in my degree plan. This course uses linear algebra and matrices although it is not the point of the course it is an essential area to be familiar in to be able to create such complex or accurate outcomes in OpenGL. Professionally, these skills may set me up to be able to become a developer of visual simulations that may help in areas such as national security, training, education, professional development, research, and game development. The knowledge is going to be able to be applied to any situation realistically since the mathematical undercurrent of computer science is embedded into our understanding of all aspects of life.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages