computer science
Running head: CMSC 405 PROJECT 2 1
JOGL OpenGL Project–Project 2
Student Name
CMSC 405 7981 Computer Graphics (2175)
Professor: Lauren King
Due November 19, 2017 11:59 PM
2
PROJECT 2
User Guide Project 2 was to develop a unique 3 graphics scene composed of JOGL OpenGL.
The project requirements stated: using Netbeans or Eclipse, develop a JOGL OpenGL
application that displays a unique 3D scene. The scene has the following specifications:
a) Size: minimum 640x480
b) Includes at least 6 different shapes
c) Uses at least 6 different transformation methods
Getting Started 1. The JoglProject.java file requires the Camera.java class to run, ensure they are in the
same folder.
2. Launch JoglProject.java. The following window will appear in the center of your
monitor:
Picture 1: Initial Window
3. The animation will run in loops while the window is open. The following animation will
occur:
a) Wire Torus rotate 180 degrees on y axis
b) Cylinder rotate 45 degrees on z axis
c) Cube rotate 270 degrees counter clock on x axis
d) Sphere rotate 20 degrees on y axis
e) RhombiDodecahedron rotate 45 degrees counter clock on z axis
f) Octahedron rotate 45 degrees on x axis
g) Teapot rotate counter clock on y axis
h) Base rotate clock wise on y axis
i) Red orb rotate on y axis
j) Green orb rotate on x axis
k) Blue orb rotate with a faster speed on z axis
3
PROJECT 2
4. At the bottom of the screen are three Checkboxes that allows the user to stop and restart
the animation. The second Checkbox allows the user to turn on / off the base. Third
checkbox turns lights on / off.
5. Click and hold on the screen, then drag your mouse around to move the point of view.
Project Requirements
1. Size: minimum 640x480
2. Includes at least 6 different shapes
a) Octahedron (yellow)
b) Wire Torus (red)
c) Cylinder (orange/brown)
d) Cube (light blue)
e) Sphere (green)
f) RhombiDodecahedron (blue)
g) Teapot
h) Base
i) Spheres (red, green, blue)
3. Uses at least 6 different transformation methods
a) Wire Torus rotate 180 degrees on y axis – Scale in size
b) Cylinder rotate 45 degrees on z axis – Scale in size
c) Cube rotate 270 degrees counter clock on x axis – Scale in size
d) Sphere rotate 20 degrees on y axis – Scale in size
e) RhombiDodecahedron rotate 45 degrees counter clock on z axis – Scale in
size
f) Octahedron rotate 45 degrees on x axis – Scale in size
g) Teapot rotate counter clock on y axis
h) Base rotate clock wise on y axis
i) Red orb rotate on y axis
j) Green orb rotate on x axis
k) Blue orb rotate with a faster speed on z axis
4
PROJECT 2
Test Plan
Test Input Performance Output Result Result
1 Setting Eclipse up for
Jogl OpenGL
Download and install the
library .jar file jogamp-
all-platforms, java
documentations, native
library glugen-javadoc,
and jogl javadocs.
Eclipse is
running and
able to use
jogl library.
Figure 1 Pass
2 Create Wire Torus and
have it translate and rotate
in 180 degrees on y axis.
Scale it size
Wire Torus is red, it
translates and rotates 180
degree around y axis, and
it scales it size.
Wire Torus is
red, it
translates and
rotates 180
degree around
y axis, and it
scales it size.
Figure 2 Pass
3 Create Cylinder and have
it translate and rotate 45
degrees on z axis. Scale it
size.
Cylinder is orange/brown,
it translates and rotates 45
degrees on z axis.
Cylinder size is scaled.
Cylinder is
orange/brown,
it translates
and rotates 45
degrees on z
axis. Cylinder
size is scaled.
Pass
4 Create Cube and have it
translate and rotate 270
degrees counter clock on
y axis. Scale it size.
Cube is light blue it
translates and rotate 270
degrees counter clock on
y axis. Cubes size is
scaled.
Cube is light
blue it
translates and
rotate 270
degrees
counter clock
on y axis.
Cubes size is
scaled.
Figure 3 Pass
5 Create Sphere and have it
translate and rotate 20
degree on y axis. Scale it
size.
Sphere is blue; it
translates and rotates 20
degree on y axis. Scaled
in size.
Sphere is
green; it
translates and
rotates 20
degree on y
axis. Scaled in
size.
Figure 4 Pass
6 Create
RhombiDodecahedron
and have it translate and
rotate 45 degrees counter
clock on z axis. Scale it
size.
RhombiDodecahedron in
green translates and
rotates 45 degrees counter
clock on z axis. It is
scaled in size.
RhombiDodec
ahedron in
blue translates
and rotates 45
degrees
counter clock
on z axis. It is
scaled in size.
Figure 5 Pass
7 Create Octahedron and
have it translate and rotate
45 degrees on x axis.
Scale in size.
Octahedron created in
yellow that translate and
rotates 45 degrees on x
axis. Object scaled in
size.
Octahedron
created in
yellow that
translate and
rotates 45
Figure 6
Pass
5
PROJECT 2
degrees on x
axis. Object
scaled in size.
8 Create Teapot and let it
rotate counter clock on y
axis.
Teapot rotate counter
clock on y axis.
Teapot rotate
counter clock
on y axis.
Figure 7 Pass
9 Create Base for Teapot
and let it rotate clock wise
on y axis.
Base for Teapot is
rotating clock wise on y
axis.
Base for
Teapot is
rotating clock
wise on y axis.
Figure 8 Pass
10 Let red orb rotate on y
axis
Red orb (spheres) rotates
on y axis.
Red orb
(spheres)
rotates on y
axis.
Pass
11 Let green orb rotate on x
axis.
Green orb (spheres)
rotates on x axis.
Green orb
(spheres)
rotates on x
axis.
Pass
12 Let blue orb in a faster
speed rotate on z axis
Blue orb (spheres) rotates
with a faster speed on z
axis.
Blue orb
(spheres)
rotates with a
faster speed on
z axis.
Figure 9 Pass
13 Create three Checkboxes
that allows the user to
stop and restart the
animation. Second
Checkbox allows to user
to turn on / off the base.
Third Checkbox turns
lights on / off.
Three Checkboxes
created. First allows the
user to stop and restart the
animation. Second
Checkbox allows to user
to turn on / off the base.
Third Checkbox turns
lights on / off.
Three
Checkboxes
created. First
allows the user
to stop and
restart the
animation.
Second
Checkbox
allows to user
to turn on / off
the base. Third
Checkbox
turns lights on
/ off.
Figure 10 Pass
6
PROJECT 2
Screenshots of Successful Compiling and Running
Screenshots are from Eclipse Version: Oxygen.1a Release (4.7.1a).
Test1: Download and install the library .jar file jogamp-all-platforms, java documentations,
native library glugen-javadoc, and jogl javadocs.
Figure 1 – Test 1
Test 2: Create a red Wire Torus and have it translate and rotate in 180 degrees on y axis. Scale it
size
Figure 2 – Test 2
Test 3: Create an orange / brown Cylinder and have it translate and rotate 45 degrees on z axis.
Scale it size.
Test 4: Create a light blue Cube and have it translate and rotate 270 degrees counter clock on y
axis. Scale it size.
Figure 3 – Test 4
7
PROJECT 2
Test 5: Create a blue Sphere and have it translate and rotate 20 degree on y axis. Scale it size.
Figure 4 – Test 5
Test 6: Create a green RhombiDodecahedron and have it translate and rotate 45 degrees counter
clock on z axis. Scale it size.
Figure 5 – Test 6
Test 7: Create a yellow Octahedron and have it translate and rotate 45 degrees on x axis. Scale in
size.
Figure 6 – Test 7
8
PROJECT 2
Test 8: Create Teapot and let it rotate counter clock on y axis.
Figure 7 – Test 8
Test 9: Create Base for Teapot and let it rotate clock wise on y axis.
Figure 8 – Test 9
9
PROJECT 2
Test 10: Create red orb (sphere) and have it translate and rotate in y axis.
Test 11 Create green orb (sphere) and have it translate and rotate in y axis.
Test 12: Create blue orb (sphere) and have it translate and rotate in y axis.
Figure 9 – Test 12
Test 13: Create three Checkboxes. First checkbox allows the user to stop and restart the
animation. Second checkbox allows to user to turn on / off the base. Third checkbox turns lights
on / off.
Figure 10 – Test 12
10
PROJECT 2
Lessons Learned
1. I spend almost one week on getting Netbeans to work. I was finally successful with
Eclipse and able to install the library .jar file jogamp-all-platforms, java documentations,
native library glugen-javadoc, and jogl javadocs;
2. Order of things – the order you put your code will change what visualizations appear. I
enjoyed playing around with the placement of scale, translate, and rotate to see how
different ordering provided much different results.
3. In order to complete this 3D spinning, transformations, timers and colors using OpenGL
and GLUT, you need to know the basics of programming.
4. Continued development – I would be interested in continuing develop projects that render
graphic images and animate three-dimensional objects.