Your task is to implement an alterative ray generator (camera, interface ICamera) for our ray-based renderer. Panoramic camera has to be tested in a sample scene. You might want to create a new better scene to demonstrate panoramic capabilities of your camera.
You will work in the template application 048rtmontecarlo-script
(or 048rtmontecarlo) from the repository
grcis.
There is the form capable of choosing a scene from a list-box, setting up
various options.. After pressing the "Render" button, the scene will
be rendered and the result image will be displayed in the form window.
Use the MonteCarloRT.cs source file for your implementation,
you will send me this file as a solution of the assignment. You can create new classes
(minimally the one implementing a new camera model), data structures, etc.
Definition of your scene (CustomScene.TestScene()) is in this file as well.
Text parameter Param: will be passed to the construction function.
If you want to test our new feature - definition of a R-T scene using
CSharpScript, please use the 048rtmontecarlo-script project
and put your scene definition into a new .cs file (be inspired by
builtin scenes in the directory data/rtscenes/). Scripts have access
to the text parameter Param: as well.
Survey of relevant concepts and components of our ray-tracer architecture can be found in this PDF presentation.
You will have to render at least one nice panoramic picture and upload it to some public web (Facebook, Google) where such images can be viewed using a panoramic viewer/explorer. Please read the detailed instructions, use all necessary arrangements/settings and upload the image to some public place (Facebook, Google) where I will be able to view it in panoramic mode.
Panorama page on Wikipedia - direct
drawing of a wide-angle (panoramic) image using alternative projection surface (usually a part of
cylindric surface). In extreme way we can use the whole 360° envorinment around a
viewpoint.
360°/180° "equirectangular" panorama -
panorama containing view of the complete environment around a viewpoint.
In realtime/HDRI we often use the simple mapping [azimuth,elevation] (thus the name
"360°/180° equirectangular").
You must send the modified file MonteCarloRT.cs. Please include interesting settings, new scene[s] and camera positions into list-box options in the form.
There is an option to define your scene in a CS-script file (see the 048rtmontecarlo-script project), you have to hand in a script file together with your source file. Script format: see the data/rtscenes/ directory in the repository.
In addition to that, you have to finalize at least one panoramic image for public server upload (Google, Facebook) and send a public URL of your image (interactive panoramic viewer).
Hand in the assignment until: 21. 4. 2019
Basis: 18 points (functional 360°/180° ray generator, arbitrary image resolution, panoramic
image on FB/Google),
up to 4 points: bonus for viewing angles parametrization (incomplete panorama),
up to additional 8 points: bonus for interesting/nice new demo scenes..
Visual Studio project: 048rtmontecarlo-script or 048rtmontecarlo
Modify and hand in the source file: MonteCarloRT.cs
Edit your name in the InitializeScenes() function!
Copyright (C) 2011-2019 J.Pelikán, last change: 2020-02-17 00:43:03 +0100 (Mon, 17 Feb 2020)