I need it urgent

profileleeku01
week1_ilab_assainment.docx

Print

iLab 1 of 6: Introduction to Direct3D Concepts and the Graphics Pipeline

Note!

Submit your assignment to the Dropbox, located at the top of this page.

(See the Syllabus section "Due Dates for Assignments & Exams" for due dates.)

iLAB OVERVIEW

Scenario and Summary

TCO(s):

1. Given a studio's need to maintain being technologically current, research and report on current techniques found in real-time computer graphics.

2. Given the nature of computer graphics, reinforce and demonstrate knowledge of 3D math concepts.

3. Given the need to interface with the GPU and graphics hardware, research and implement real-time computer graphics concepts using a modern graphics API and pipeline.

Scenario

You have been provided a window framework to support real-time 3D graphics. The most basic setup for a D3D11 application has also been set up for you. Please examine how this application is set up in conjunction with the Lecture and textbook reading. There are some simple examples of rendering to get you started. You will be required to create and render some additional, very simple, hand-constructed models to the screen. Finally, you will have to modify several aspects of the application to accomplish all of the rendering requirements of the Lab.

Note!Software Citation Requirements

This course uses open-source software which must be cited when used for any student work. Citation requirements are on the Open Source Applications page. Please review the installation instruction files to complete your assignment

Deliverables

Section

Deliverable

Points

1

Generate and render cube

5

2

Generate and render pyramid

10

3

Generate and render cylinder

10

4

Generate and render sphere

10

5

Generate and render triangle grid

10

6

Modify PS/CB to specify pixel color

5

Required Software

Visual Studio 2012, Windows® 7, and Windows® 8 SDK

Access the software at https://devrydesktop.rkon.com . Steps: All

 

iLAB STEPS

Preparation

Back to Top

Download the template project from Doc Sharing. The starter project file can be downloaded from Doc Sharing and is titled GSP381_D3D11Application.zip. Unzip the archive and ensure that it compiles and runs in Visual Studio 2012 or more recent without making any modifications. If it does not compile, please post the issue you are having in the Q & A discussion for this week and e-mail the professor.

Please make sure that you have read and reviewed the Lecture and weekly reading assignments before continuing with this lab. The explanation below assumes that you have an understanding of the weekly reading assignment. This project will have three code files:

· WinMain.cpp—The main program file that performs some initialization and has the Windows® message loop.

· DirectXFramework.cpp—Implements the CDirectXFramework class, where we will do most (not all) of our work in this course. It contains the implementations of Init, Render, Update and Shutdown.

· DirectXFramework.h—The header file for the CDirectXFramework class.

Please review the structure of this project and analyze how we are using the required pipeline stages to render the geometry that you should be seeing. Read the comments, cross-reference it with the textbook, and make sure to read the documentation as you come across new functions and types! 

Please don't hesitate to post early into the Q & A thread if you are having trouble understanding how some aspect of the application works. The structure of this application can become quite unwieldy, so start to think about ways to apply your object-oriented programming and data structures knowledge to better manage aspects of your application. Feel free to discuss these ideas with others in the discussion threads!

STEP 1: Generate and render a cube mesh within your scene.

Back to Top

Modify the CDirectXFramework class to create a new cube mesh in the scene. The cube should consist of 6 connected sides of equal quads. 

You will be required to plot out the vertex and index data for the cube in local space.

Correctly load this mesh data into VRAM so that it is ready to render. You will need to create a vertex buffer and index buffer for this mesh.

Use the same pipeline stages, shaders, and constant buffers as the triangle and quad, and render your cube to the screen. You will need to compute a different world matrix and update your constant buffer with this data prior to kicking your new mesh down the pipeline with a draw function. Mimic the placement and functionality of this mesh with working binaries that can be found in Doc Sharing. You will need to set the vertex and index buffer and primitive topology prior to calling draw for this mesh. 

Please Note : Some aspects of the vertices generated you will need to implement later, but for this week's lab you will only need to generate the vertex positions. At a later point, we will need the texture coordinates and normals that are generated in that section of the textbook reading. Note the book may mention use of functions that are available within the book's source code, which you are free to refer to in this course.

STEP 2: Generate and render a pyramid mesh within your scene.

Back to Top

Use the same process as Step 1 to generate a pyramid mesh and render it to the screen.

STEP 3: Generate and render a cylinder mesh within your scene.

Back to Top

Use the same process as Step 1 to generate a cylinder mesh and render it to the screen. 

An example algorithm to create this more complex mesh can be found in page 247 within the textbook. 

STEP 4: Generate and render a sphere mesh within your scene.

Back to Top

Use the same process as Step 1 to generate a sphere mesh and render it to the screen. 

An example algorithm to create this more complex mesh can be found in page 251 within the textbook. 

STEP 5: Generate and render a triangle grid mesh within your scene.

Back to Top

Use the same process as Step 1 to generate a triangle grid mesh and render it to the screen. Make sure it renders below all of the other meshes and does not occlude any of the other meshes you are rendering. Also, please rasterize the triangle grid in wire-frame mode.

An example algorithm to create this more complex mesh can be found in page 240 within the textbook. 

STEP 6: Modify PS/CB to specify pixel color.

Back to Top

You will need to modify the HLSL code for the pixel shader to support taking a color as an input via the constant buffer. It is currently implemented to support outputting pixels in a single color.

The specifications for how you should color each mesh object is the following:

· Triangle: Yellow

· Quad: Green

· Cube: Blue (Be sure to choose a blue that does not blend into the background.)

· Pyramid: Red

· Cylinder: Orange

· Sphere: Purple

· Triangle Grid: White (Continue to render in wire-frame.)

STEP 7: iLab Submission

Back to Top

Submit your assignment to the weekly iLabDropbox, located at the top of this page. For instructions on how to use the Dropbox, read these step-by-step instructions or watch this Dropbox Tutorial .

See the Syllabus section "Due Dates for Assignments & Exams" for due date information.

Back to Top