CSc 305 Introduction to Computer Graphics Assignment

Assignment Help Computer Graphics
Reference no: EM132477094

CSc 305 - Introduction to Computer Graphics - University of Victoria

Overview

The purpose of this assignment is to give you the opportunity to continue exploring and expanding your ray tracing system. The end goal is to produce the best possible image with your choice of implemented features.

Unlike previous assignments, all of the marks for this assignment are based on optional features

(outlined in the next section). However, your assignment must have all of the following to be considered valid.

  • A virtual camera system,
  • point lights,
  • diffuse shading,
  • multisampling,
  • out-of-gamut colour handling, and
  • a variety of geometries.

These features define a common baseline for all implementations. If your submission does not contain at least these features, you will receive a mark of zero. You are encouraged to add as many features of the features in the next section as you can, even if they exceed to maximum number of points.

Specification

The marks for this assignment will be provided through the implementation of the features outlined below. The final rendered image must be no smaller than 1000 × 1000 pixels. The success of your final rendered image is based on whether all of your implemented features are visible and not purely on your implementation. You are therefore encouraged to experiment with different colours, sizes, and positions to ensure that all your geometries are visible in the final render.

Features

For full marks, your assignment must implement some of the features below. Note that some features are worth more marks than others (based on their difficulty). You may implement as many features as you want, but your final mark will be capped at 100%. For tasks that require you to take timings, you may use the provided Timer class contained in the atlas/core/Timer.hpp header.

Parallelization: For all features in this category, you will use the standard threading library provided by the STL. Note that the three options in this section are mutually exclusive (it is not possible to implement more than one). You will also need to provide a comparison of timings between a regular render (without the use of parallelization) and with the parallel implementation.

Basic parallelization: divide the image into a grid of n × n sections, which we will call slabs. This number can be equal to the maximum number of threads the system supports. Each thread is then assigned a slab and the output is rendered normally.

Intermediate parallelization: divide the image into a grid of n× n slabs, where n is larger than the maximum number of threads the system supports. The slabs are then distributed across the threads.

Advanced parallelization: divide the image into slabs based on the distribution of objects in the scene. Sparse areas will have fewer slabs, whereas dense areas will contain a larger number of slabs. The slabs are then distributed across threads ensuring to maintain an even load balance.

Accelerator Structures: Note that all features in this category are mutually exclusive (it is not possible to implement more than one). In order to showcase these features, your scene most contain at least 10 primitives. You will also need to provide a comparison of timings between a regular render (without the accelerator structure) and with the structure enabled.

Implement regular grids. See [Suffern 2007, chapter 22]

Implement a bounding-volume heirarchy (BVH). See [Pharr, Jakob, and Humphreys 2016, chapter 4.3].

Implement KD-trees. See [Pharr, Jakob, and Humphreys 2016, chapter 4.4].

Reflections: For all features in this category, your final render must contain objects employ- ing the reflection type. If you implement both, then you must have at least one object with mirror reflection and one with glossy reflection.

Implement mirror reflections. See [Suffern 2007, chapter 24]

Implement glossy reflections. See [Suffern 2007, chapter 25]

Global Illumination: Note that all features in this category are mutually exclusive (it is not possible to implement more than one). Be aware that, with the exception of path tracing, these features will be considerably harder as they will require reading, understanding, and implementing a research paper. It is recommended that you only attemp these if you have enough time.

Implement simple path tracing. See [Suffern 2007, chapter 26].

Implement Bidirectional path tracing. See [Lafortune and Willems 1993] and [Veach and L. Guibas 1995].

Implement photon mapping. See [Jensen and Christensen 1995].

Implement Metropolis light transport. See [Veach and L. J. Guibas 1997].

Transparency: The two types of transparency are mutually exclusive (so you will not receive the marks for simple transparency if you implement realistic transparency).
Implement simple transparency. See [Suffern 2007, chapter 27].
Implement realistic transparency. See [Suffern 2007, chapter 28].

Textures: For all features in this category, you must have at least one object showcasing the type of texture that you implemented.
Implement regular texture mapping. See [Suffern 2007, chapter 29].
Implement procedural textures. See [Suffern 2007, chapter 30].
Implement noise-based textures. See [Suffern 2007, chapter 31].

Miscellaneous:
Implement shadows. See [Suffern 2007, chapter 16].
Implement ambient occlusion. See [Suffern 2007, chapter 17].
Implement area lights. See [Suffern 2007, chapter 18].
Render a mesh.
Implement a scene graph. For this task, note that you must have a hierarchy that is at least two levels deep.

All references mentioned here have been posted on conneX and are freely available through the UVic library.

You will be provided with an assignment bundle that will contain the following:

1.A full CMake setup for the assignment similar to the one seen in the labs,

2.a main.cpp file containing a function to save the image to a file as seen in the labs and an empty main, and

3.a blank assignment.hpp header.

Your submission must include the following:

1. One main.cpp file containing your implementation.

2. One assignment.hpp file containing the definitions of any auxiliary data structures, functions, etc that you may require. Note that you may leave this file blank if necessary.

3. One README.txt file containing a list of all features that you have implemented. If you choose to implement any accelerator structures or parallelization options, then the file must also contain the two timings between the regular render (without the feature) and the render with the feature enabled.

4. One render.bmp file containing your submission for the competition.

Textbook: Ray Tracing from the Ground Up by Kevin Suffern

Reference no: EM132477094

Questions Cloud

Average warm-front speed : If a warm front is approaching from the south, has a slope of 1:300 and is moving toward you at an average warm-front speed of about 4.9 km/hour
Presence accessibility impact : Does your manager's presence accessibility impact your perception of their support and their staff initiatives? Why or why not?
Risk management philosophies and concepts : In the health care industry, what do you think management can do to ensure staff buy into risk management philosophies and concepts?
Prepare entry to record the retirement of bonds on january : Prepare the adjusting entry at December 31, 2020, the end of the fiscal year. Prepare the entry to record the retirement of the bonds on January 2, 2022
CSc 305 Introduction to Computer Graphics Assignment : CSc 305 Introduction to Computer Graphics Assignment help and solution, University of Victoria - assessment writing service - Implement a bounding-volume
Importance of health care governing boards : Also include in your response the types of risk management information that is shared with the Board and in what format. (please site your sources).
How to migrate the raw data from spreadsheet : Assignment Question - How to migrate the raw data from spreadsheet to database increase data protection level and increase user satisfy experience
Risk or quality management programs : What are some barriers to gaining the necessary support from leaders for risk or quality management programs?
Determine profitability of the companies by computing : Determine profitability of the companies by computing the 2017 return on assets and the return on common stockholders' equity for both companies

Reviews

len2477094

3/22/2020 11:40:30 PM

Textbook: Ray Tracing from the Ground Up by Kevin Suffern Development Environment: * A C++ compiler. For Windows, use Visual Studio Community 2019. For Linux, please make sure you have the GNU C++ compiler version 7.4 or above. Please note that LLVM Clang is not currently supported. * CMake version 3.12 or above * Python 2.7+ or 3.x Please note that a virtual camera, point light, diffuse shading, multi-sampling, out-of-gamut colour handling, and a variety of geometries as the minimum. The rest is where the marks are given.

Write a Review

Computer Graphics Questions & Answers

  Create a simple warm-up program using your g3d

Create a simple warm-up program using your G3D programming and graphics environment.

  Shadow effect while rolling a sphere

Shadow effect while rolling a sphere as well as the options of shading and lighting.

  Relative positioning and interactive positioning

Relative Positioning and Interactive Positioning by Dragging and Clicking and some Simple Animation

  Draw a teapot at the global origin

Draw a teapot at the global origin

  Concepts of computer graphics

Concepts of Computer Graphics and develop a program using OpenGL

  The security policy document outline

Using the GDI Case Study below, complete the Security Policy Document Outline

  Develop the image manipulations

Develop the image manipulations

  What does resolution mean

What does resolution mean How is resolution connected to ppi and dpi units

  Differentiate between a bitmap image and a vector image

Differentiate between a bitmap image and a vector image Explain the following terms

  Essential elements of a design pattern

configuration of an Iterator pattern, patterns could be used in a Library System, Singleton, Template, Decorator, Façade,What does Alexander means by the following declaration "But it is impossible to form anything which has the temperament of natu..

  Framework of user interface design

design of user interfaces, natural mapping, GUI applications, web page design different to designing for printed media, risks exposed in this "phone as individual proxy" approach, interaction designers of ubicomp applications, Storyboards are usual..

  What are the factors affecting picture composition

Define picture composition What are the factors affecting picture composition. Elaborate on each factor Describe the basic lines present in a composition

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd