First
assignment: | Write a
program for rendering ply files using
OpenGL. Your program should provide for correct
lighting based on the normal vectors defined for
each vertex (not per polygon). Some ply files do
not contain normal vectors requiring you to
compute these yourself. The program should fully
utilize the 3D capabilities provided by the
systems in Russ 154a. You can base your code on
this framework for Windows or Linux. For reading
the ply files you can use these updated files, which can read
ASCII and binary ply files. For testing, you can
use the following sample files:
|
Second
assignment: | Based on
OpenSceneGraph, create a fully immersive
representation of our solar system. You can
download models of the planets from Google's
3D warehouse (download the models using
Collada format) and then directly load them
using OpenSceneGraph. Use the provided framework based on
the latest version of Vrui (4.2) to create
the immersive experience; you will also need the
application base class
specifically adapted for Vrui. The planets of
the solar system should revolve around the sun
proportionally to the correct time follwing
their orbit.
|
Third
assignment: | Design a
visualization software for vector data
sets. Your software should be able to read VTK
structured grid data sets, for example this one or this one, using
stream lines. Your software should allow a user
to interactivly place starting points for the
stream lines using any one of the input devices
available in Russ 154a. The user should be able
to add an infinite number of stream tubes to
visualize the data set. In order to compute the
streamlines you can use the code provided on this
web page. To base this on the Vrui environment,
the light saber code may be a good example. For
the light saber, you will need these
sound files so that you
can activate it by clicking a button and selecting
it from the menu (it is lister under pointers).
|
Final
project: |
Implement volume rendering based on OpenGL
directly using 3D texture mapping. Create an
array of planes to map the 3D texture onto in
order to create the rendering of the volumetric
data set. You can use the colon data set (dimension: 204x132x260) or the
heart data
set (dimension: 289x240x267) for testing your
implementation.
Implement a mechanism for interactively
adjust one-dimensional transfer functions
for manipulating the opacity and color values.
For students in CEG6520, add proper lighting to
the volume rendering, i.e. calculate the normal
vectors based on the image gradient and apply
the Phong illumination model for each fragement
when it gets mapped onto the planes. You will
need to implenent this step as GPU programs,
i.e. a vertex shader and a fragment shader.
|
|