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 Windows Phone) 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 V4.0, 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 or 2010 (as a CSS student, you can get this for free. Refer to e-academy or dreamspark for more)
b.
Visual
C# Express 2008 or 2010: this is freely
available from here.
2.
Downloads:
XNA V4.0 download: http://www.microsoft.com/en-us/download/details.aspx?id=23714
a.
This is
a rather large download (>48MB).
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.
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).