Ray tracing programs can be
complicated and difficult to debug. To help you overcome these issues, I have developed
a simple graphics interface based program where we can interactive examine the generation
of ray trace image. All your programming assignments will be developed based on
this program and this program is developed based on:
1.
Programming
Language: C#
2.
Graphics
API: XNA Framework
3.
GUI API: WinForm
C# Programming Language: If
you have never worked with C#, don’t worry, it is virtually identical to Java. Give
yourself a day or two extra time and you will pick it
up.
Microsoft XNA: XNA framework
is a collection of libraries (API) for C# programming language that supports
graphics, network, and gaming devices (XBOX 360 and Zune) programming. You will
use very simple XNA utility classes (e.g., Vector3, or Color), and otherwise
you do not need to be concerned with XNA API functions. Except, you need to
install the SDK to compile your programming assignments. We are working with
XNA V3.1, here are some information you will need:
1.
IDE: You
will need at least one of the following IDE installed. Make very sure you have one
of the following IDEs installed before install XNA.
a.
Visual
Studio 2008 (as a CSS student, you can get this for free. Refer to e-academy or dreamspark for more)
b.
Visual
C# Express 2008: this is freely available from here.
2.
Downloads:
XNA V3.1 SDK Download.
a.
This is
a rather large download (>72MB).
b.
Again,
make sure you have at least one of the above IDEs.
c.
Double
click the .exe to install XNA.
d.
Your
graphics hardware must be at least DirecX9c compatible to run XNA applications.
This essentially means, your machine needs to be less
than 5 or 6 years old.
3.
Documentations:
a.
For the
API: XNA Framework class library documentation
(this is also available off the help menu from the XNA Games Studio Express).
b.
For the
IDE: XNA Games Studio Express.
4.
Other information:
a.
Find out
more about XNA: XNA Creators club online.
b.
On-line
discussions: This is MSDN XNA discussion bulletin. As in all
on-line discussion sites, this place has many useful information,
unfortunately, it also contains many not very helpful (and sometimes even
misleading discussions). Read with care, and watch out, sites like these can easily
take up your entire day!
WinForm GUI API: WinForm is a graphical user interface (GUI) library (API). You _DO NOT_ need to know WinForm
to work with programming assignments in this class. However, if you have some
time to spare, you can probably pick up WinForm programming
over a weekend. Here are some tutorials Ethan
Verrall (ex-450/451 student) developed based on William Frankhouser’s
(another ex-450/451 student) excellent tutorials for MFC:
Tutorials on how to work with WinForm library (tutorial source code (zip) and on-line html).