C/C++代写 - CSE 386 Project - Pipeline Graphics
时间:2020-11-12
Instructions: ● Your project must be an interactive program that responds to the keystrokes, as outlined in the keystroke guide. Do not deviate from these keystrokes. ● This video shows the operation of a completed program. ● FullPipeline.cpp can be used as your main driver for this assignment. It includes event handlers that capture the required keystrokes. REQUIRED FEATURES 1. (40) Explicit 3D Surfaces and Hidden Surface Removal. Your scene must include, at a minimum, the following objects, each with their own common material property (e.g., gold). Hidden surfaces must be correctly implemented. a. Cylinder with open ends displayed in two sizes and two different alignments: aligned with Y axis and also aligned with Z axis. b. Cone shown in two different sizes and two different alignments. c. Horizontal checkerboard 2. (20) Lighting and shading. The lighting/shading of your scene must include one positional light and correctly implemented the equations to render the objects with a realistic appearance. 3. (20) Viewing. You will provide three distinct vantage points that the user can cycle through with a keystroke. 4. (20) Projection. Perspective projection will be the main projection method used by your project. For one at least one of your vantage points, provide the option to toggle between orthographic and perspective projection. The rendering must not skew. ● Create a video that is at most 5 minutes long that includes (you may model your video after the one provided to you): ○ When demonstrating your project ■ Run you code using Release mode, as it will be faster than Debug mode. ■ Call out the keystrokes as you make them (e.g., “turn off first light”, “increase x”, etc). ■ Make sure that your project is running before recording. ○ Script ■ Announce your name and give a brief summary of what aspects of your project work and those that do not. ■ Display your source for FragmentOps::processFragment. Walk through the code, describing what is being done in this code. Assume that you are explaining this to the instructor. This part should be 30 seconds. ■ Demonstrate Objects ● Point out the required objects
● During the demonstration, convince the viewer that hidden surfaces are handled properly. ■ Demonstrate lighting ● Make sure only one positional light is active. (no attenuation) ● Talk about your shapes and convince the viewer that the shading on your objects is accurate. ● Increase x one or more times, identify the changes to the objects’ shading that are consistent with the light moving toward the positive x axis. ● Decrease x. Make quick observations. ● Repeat for y and z. ■ Demonstrate the different vantage points ● Cycle through the three different vantage points. While doing this, point to the shapes and confirm that hidden surfaces are handled properly. ● Do a quick change to the light to verify that it works at each vantage point. ■ Demonstrate orthographic and perspective projection. ● Pick a vantage point that illustrates the difference between orthographic and perspective projection. ● Switch between the two types of projection, pointing out the differences between the two. ● For each, resize the window and show that skewing does not occur.