Wiki
Clone wikics247_2020 / CS247_Assignment_4
Assignment 4 Description (14% of total grade)
Due: April 6th/ April 13th
The task for this assignment is the implementation of Volume Raycasting.
Reading assignments
- Real-Time Volume Graphics, Chapter 1 (Theoretical Background and Basic Approaches), from beginning to 1.4.4 (inclusive)
- Real-Time Volume Graphics, Chapter 2 (GPU Programming)
- Real-Time Volume Graphics, Chapter 3.2.3 (Compositing)
- Real-Time Volume Graphics, Chapter 4 (Transfer Functions) until Sec. 4.4 (inclusive)
- Real-Time Volume Graphics, Chapter 5 until 5.4 inclusive (Terminology, Types of Light Sources, Gradient-Based Illumination, Local Illumination Models)
- Real-Time Volume Graphics, Chapters 5.5, 5.6 (Gradients)
- Real-Time Volume Graphics, Chapter 7 (GPU-Based Ray Casting)
- Nelson Max, Optical Models for Direct Volume Rendering, IEEE Transactions on Visualization and Computer Graphics, 1995
- Jens Krüger and Rüdiger Westermann, Acceleration Techniques for GPU-based Volume Rendering, IEEE Vis 2003
Basic Tasks
-
Implement volume raycasting on the GPU (using fragment shaders)
- Perform single‐pass raycasting (front‐to‐back) by rendering the front‐ and back‐geometry using OpenGL and then use these as input‐textures for a fragment shader that does the ray traversal.
-
Implement two different render modes:
- iso‐surface raycasting corresponding to selected iso‐value
- DVR (direct volume rendering) using user‐specified transfer function
Minimum Requirements
Due: April 6th
- Render front-faces and back-faces into textures (ray setup) (15 points)
- Implement DVR (Direct Volume Rendering) in the GLSL fragment shader (25 points)
- Opacity correction (5 points)
- With shading (get the normals using central differences) (5 points)
- Early ray Termination (5 points)
Due: April 13th
- Simple interactive windowing transfer function (15 points)
- Implement Iso-surface rendering in GLSL fragment shader (20 points)
- With shading (get the normals using central differences) (5 points)
- Early ray Termination (5 points)
Bonus
- Axis-aligned Clipping planes (atleast two) (+5 points)
- MIP (maximum intensity projection) mode (+5 points)
- Using Pre‐integrated Transfer Function for DVR (+10 points)
- Empty‐space skipping (+15 points)
Notes
- There aren't prototypes for every function you might need. Create functions as you need them.
Screenshots for Minimum Requirements Solution
Transfer Function 0 (No shading)
Transfer Function 0 (with shading)
Transfer Function 5 (with shading)
Isosurface - isovalue:0.2 (with shading)
Isosurface - isovalue:0.3 (with shading)
Updated