-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
34 lines (30 loc) · 1.8 KB
/
README
File metadata and controls
34 lines (30 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
3D object viewer, by Jacob Emmert-Aronson
This project was a homework assignment in a computer graphics class I
took during my junior year of undergraduate, and makes use of much of
the knowledge I learned throughout the course of the semester. It
renders a simple scene consisting of a teapot and a sphere via one of
two modes. The default mode is a ray-tracing pipeline which I
implemented largely from scratch, and the secondary wire-frame mode is
rendered via OpenGL's fixed-function pipeline, allowing objects to be
selected and moved around easily. Keyboard and mouse controls can be
found in the functions "keyboard" and "mouseButton" in main.cc.
dependencies:
This program expects GL/gl.h, GL/glu.h, and GL/glut.h in the include
path, and the GL, GLU, and glut libraries in the library path.
Installing freeglut is a recommended way to do this (e.g., the
freeglut3-dev package on Debian).
building and running:
Type "make" at the command line to build, and either "make run" or
"./viewer.bin" to run the program.
additional functionality: Much of the interface of the previous
fixed-function pipeline assignment has been retained, with keys
remapped to not conflict with the current requirements. In
particular, pressing 'z' will switch to selection mode, in which all
objects are displayed in wireframe. Number keys affect translations
of the selected object as normal, the keys in the same columns as
's' through 'd' apply rotations in global coordinates, those in the 'h'
and 'j' columns apply rotations in local coordinates, the 'f' and
'v' keys apply scaling, 'a' and 'b' toggle axes and bounding boxes,
respectively (only displayed in selection mode), 'g' snaps the view
to either the selected object or the global origin, and 'p' toggles
the projection (perspective or orthographic).