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:

  1. Do the coolest thing you can think of (within a week of work) to a scene with at least one snake in it.

  2. You can use glman or the GLSL API -- your choice.

  3. You can do your cool things in the vertex shader, the fragment shader, or both.

  4. You can use texturing, but don't have to.

  5. Your coolness can be shown in an image of the snake, an animation of the snake, or both.

  6. You can use displacement mapping, bump-mapping, or both, or neither.

  7. 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.

  8. 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:
VerticesTrianglesFile
3,2266,120snake.obj
18,68936,720snakeH.obj

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:

  1. Your source files: .cpp, .glib, .vert, .frag, .geom
  2. A short PDF report containing:

  3. 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.

  4. Be sure that your video's permissions are set to unlisted.. The best place to set this is on the OSU Media Server.

  5. 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.

  6. 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:

FeaturePoints
Did it20
Did it well20
Did it really well20
Potential Total60

"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.