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.