I need a compact, self-contained C++ / OpenGL 3D scene that meets an academic grading rubric for a computer graphics course. The centerpiece is a lightbulb-headed figure sitting on a crescent moon, inspired by the attached image. Everything must be built strictly from primitive shapes—spheres, cylinders, cones, and tori—no imported meshes. The moon should have a sculpted crescent form (two intersecting primitives or a torus subtraction trick), and the seated figure should be composed of basic geometry: sphere for the head, cylinder for the body, smaller cylinders for arms and legs, and flattened spheres or cones for feet. Use Phong lighting (ambient, diffuse, specular) to give the scene depth, emphasizing the moon’s gentle glow and the reflective body of the character. Apply at least two textures—one for the moon surface, and one for the background or figure.Technical Requirements Must build and run in Visual Studio 2022 (v142 or newer). Only common free-standing libraries: GLFW, GLAD or GLEW, glm, stb_image, etc. Modular, well-commented code that’s readable for grading. Include a ready-to-run .exe so the project can be verified without rebuilding. Deliverables Complete Visual Studio solution with all source, headers, assets, and binaries Pre-built executable in a bin folder Create low-polygon 3D representations of real-world objects. Make sure you have at least four completed objects in your 3D scene. At least one of the objects you create should be made using two or more primitive shapes. Note that the object you completed in an earlier milestone can count as one of your four. Use organized geometry and make sure that the polygons (triangles) on each 3D model are well spaced and connected. Minimize complexity and save 3D modeling time by setting the polygon count for your objects under 1,000 triangles. Remember to think in terms of simple shapes and ask yourself what basic 3D shapes go into making up each object in your scene. Four of the following basic shapes must appear at least once in your creation: Box Cone Cylinder Plane Prism Pyramid Sphere Tapered cylinder Torus Apply accurately projected textures to a 3D model. You must select at least two objects to texture. Note that you should have already textured one object in a previous milestone. If you use that object here, it will count as one of your two. The textures you select should be royalty-free images with resolutions of 1024 by 1024 pixels or higher. Please refer to the Sourcing Textures Tutorial linked in the Supporting Materials section for help finding images that you can use for textures. Apply lighting to create a polished visualization of 3D models. You must include a minimum of two light sources, and at least one of them should be colored. Note that the light you worked on in a previous milestone counts as one of your two lights. The light sources you create will need to capture all of the objects in the 3D world you are building. They should be positioned at locations that do not cause parts of the objects to appear dark when moving the camera around them. Include a point light for one of your two lights. You may use a directional light or spotlight. Make sure that you design lights in a way that helps create a final polished presentation. Use all components of the Phong shading model, including the following components: Ambient Diffuse Specular Place objects appropriately, using the X, Y, and Z coordinates, relative to one another in the 3D world. Match the photograph you selected as closely as possible by placing the objects in their proper locations. Note: The objects may overlap because all of the objects were likely initially placed at 0, 0, 0.