Rendering |
![]() |
Digital Image Synthesis, Fall 2014
|
Jump to...
project #2
|
project #1: Height fieldAssigned: 2014/10/9Due: 2014/10/30 2:00pm Project descriptionIn this assignment, you are asked to improve pbrt's heightfield class. A heightfield is a 2D array which samples a height function z(x, y). It indicates how high the sampled point (x, y) is and can be used for modeling things such as terrain.pbrt has provided an implementation of heightfields which converts a heightfield into a triangle mesh. It consumes more storage and could be less efficient. In this assignment, you are asked to provide an alternative heightfield class which does not convert into triangles. You can employ the DDA method used in uniform grid for the intersection routine for heightfields. This project is based on the similar ones from Stanford and Virginia. Step 1: Download test scenesDownload this file containing scenes, heightfield data and textures. Run pbrt on scenes, hftest.pbrt and landsea-0.pbrt, and you should see images that look like the following:Step 2: Add a new heightfield classTo add a shape (or a class in general) into pbrt, you need to perform the following steps. The following example assumes that you are adding a class called Heightfield2.
Step 3: Add normal and texture informationAdd the following features:
SubmissionYou have to turn in the source code for your class and a very brief report in html format. The report should describe what acceleration algorithm you have implemented for intersection computation. Report the times spent for rendering landsea-big.pbrt with pbrt's heightfield and your own heightfield. Please be as fair as possible when measuring the execution time for both. For example, you should use the same machine and compilation setting for both. Please read this note for submission instruction. |
|||||||
![]() |
![]() |