# data[].attributes.headline
STEP 2: Run The Visual Studio 2022 on your device

# data[].attributes.subject
STEP 2: Run The Visual Studio 2022 on your device

# data[].attributes.body
Begin by clicking on 'Create a New Project' > 'Empty Project' and then locate the project file in your desktop.

# data[].attributes.body
Add existing files: Source.cpp, glad.c, ASource.cpp

# data[].attributes.headline
STEP 4: relocate the include and library directories

# data[].attributes.subject
STEP 4: relocate the include and library directories

# data[].attributes.headline
STEP 5: Append the additional dependencies 

# data[].attributes.subject
STEP 5: Append the additional dependencies 

# data[].attributes.body
under input > append 'Additional Dependencies' > add 'glfw3.lib;opengl32.lib'

# data[].attributes.body
Run the program by clicking 'Rebuild Solution' under 'Build'

# data[].attributes.body
Hello Triangle

# data[].attributes.body
Camera system for free movement (keyboard and mouse) in a 3D environment)

# data[].attributes.body
turning the triangle into cyan

# data[].attributes.headline
TASK 1 - modification 2 making it a rectangle

# data[].attributes.subject
TASK 1 - modification 2 making it a rectangle

# data[].attributes.body
Removing the "awesomeface" picture

# data[].attributes.body
Name: Nur Thaqifah Safiah Binti Shefri (100499)

# data[].attributes.body
Provide group findings/discussion points

Problem faced :

1. Core Profile Debugging:

No backward compatibility; deprecated functions (e.g., glBegin()) caused crashes.

Solution: Used RenderDoc to validate OpenGL calls.

2. Shader Compilation Errors:

Shader failures provided vague error logs.

Solution: Implemented a shader logging function to retrieve compile/link errors.

3. Resource Path Management:

Textures failed to load due to incorrect relative paths in Visual Studio.

Solution: Used absolute paths during development or moved assets to x64/Debug.

4. Performance Issues:

Multiple texture binds slowed down rendering.

Optimization: Batched draw calls and used texture arrays.

# data[].attributes.body
Overall Findings / Conclusion :

Modern OpenGL’s explicit control offers flexibility but demands meticulous setup. Tutorials like LearnOpenGL.com bridge theory and practice, while tools (GLAD, GLM, RenderDoc) streamline development. Future work includes integrating lighting (Phong model) and geometry shaders.