CS 457/557 -- Winter Quarter 2025
Project #6
The Snake Menagerie Project
60 Points
Due: February 26
This page was last updated: January 3, 2025
Requirements:
-
Do the coolest thing you can think of (within a week of work) to a scene with at least
one snake in it.
-
You can use glman or the GLSL API -- your choice.
-
You can do your cool things in the vertex shader, the fragment shader, or both.
-
You can use texturing, but don't have to.
-
Your coolness can be shown in an image of the snake, an animation of the snake, or both.
-
You can use displacement mapping, bump-mapping, or both, or neither.
-
The intent of this project is to do something different from what you have done before.
Stringing together ellipses, noise, displacement-mapping, bump-mapping, and cube-mapping
using the code you already have will not be worth the full points.
Stringing together example code from the notes will not be worth the full points.
-
It is OK to use this project to create an early prototype of what you want to do for your Final Project.
Getting the Snake OBJ File
Here's how to get one of the snake OBJ files:
Left-click to see what the contents of the OBJ file look like.
Right-click to download it.
They both have surface normal vectors and texture coordinates.
Include it in your GLIB file like this:
Obj snakeH.obj
or use it with your C/C++ file like this:
// a global variable:
GLuint DL;
. . .
// do this in InitGraphics( ):
DL = glGenLists( 1 );
glNewList( DL, GL_COMPILE );
LoadObjFile( "snakeH.obj" );
glEndList( );
. . .
// do this in Display( ):
glCallList( DL );
Finding out where the (s,t) or (x,y,z) locations are in the model
This CS 457/557 shader, find, helps you identify key parts of objects by their (s,t) or (x,y,z) coordinates:
find.glib,
find.vert,
find.frag.
It's useful to isolate certain parts of objects in order to do some effect on them without affecting the rest of the object.
The Turn-In Process:
Use Canvas to turn in your:
- Your source files: .cpp, .glib, .vert, .frag, .geom
- A short PDF report containing:
- Your name
- Your email address
- Project number and title
- A description of what you did to get the display or animation you got
- A cool-looking screen shot from your program
- The link to the
Kaltura video
demonstrating that your project does what the requirements ask for.
If you can, we'd appreciate it if you'd narrate your video so that you can tell us what it is doing.
-
To see how to turn these files in to Canvas, go to our
Project Notes noteset,
and go the the slide labeled How to Turn In a Project on Canvas.
-
Be sure that your video's permissions are set to unlisted..
The best place to set this is on the
OSU Media Server.
- A good way to test your video's permissions is to ask a friend to try to open the same video link that you are giving us.
- The video doesn't have to be made with Kaltura. Any similar tool will do.
Submissions are due at 23:59:59 on the due date listed.
Examples from Previous Years
When the class size was smaller, I used to make posters out of these:
2006 Teapot Poster
2007 Cow Poster
2009 Dino Poster
2010 Ducky Poster
2011 Vase Poster
2012 Torus Poster
2013 Cat Poster
At that point, the class got too large for me to make posters...
Grading:
Feature | Points
|
---|
Did it | 20
|
Did it well | 20
|
Did it really well | 20
|
Potential Total | 60
|
---|
"Did it" would be like a snake with ellipses and noise that are smoothstep'ed.
"Did it well" would be like a snake with something else out of our notes so far.
"Did it really well" would be something new.