teaching machines

FISHERR – Sceen

April 24, 2015 by . Filed under cs455, postmortems, spring 2015, Uncategorized.

sceenshot1

sceenshot2

1. Rubiks Cube

2. Captain America Shield

3. Pyramids (with perspective)

4. Sapphire (textured and non-textured)

5. Desert Floor

6. Sun (non-textured, and textured)

For the sceen homework, my thought process was as follows:

  1. Designing C++ Classes:  Since there was only one SceenRenderer, the class design was straightforward. There was a lot of reusable code to make my scene come together.
  2. Research:   I did more investigation in how texture coordinates are used from .obj files and I also did some tutorials for Blender modeling for UV mapping.  The learning curve was sharp at first, but I did get a better handle on modeling and I wish I had more time to make more complex objects.
  3. Analysis: Aside from understanding how the various matrix transformations are integrated with each object in the scene.
  4. Debugging/Testing:   There was a lot of trial and error with trying to get the objects to render with their textures. In some ways I felt like my logic was in control, but other times I cannot explain why a texture would refuse to load for a shader program.  Testing the application involved lots of minor tweaks to try to get models in the right space.
  5. Documentation: Providing user-friendly comments to make sure each class and method steps were clearly organized and easy to understand.
  6. Ask questions and learn!

Challenges:

1. UV Mapping: This was one of the most time consuming task since UV mapping with texture coordinates seemed way to hard to calculate by hand. Once I discovered that I could export the UV texture coordinates and they could be read with the ObjectUtilities class, my progress accelerated.  There was a weird bug with the reading of the .obj file that prevented texture coordinates from being parsed correctly. I had to modify the exported .obj file with // for the texture coordinates and that solved the issue. Thanks again to Dr. Johnson for taking some time to look at the code!

2. Shader Programs:  Initially, I was still lacking in understanding how the lighting system would work with texture coordinates, but since the vertex and fragment shaders are so reusable, I could make minor tweaks for many shader programs given the object.  I’ve had some issues with shader programs, too. I tried to render 3 gems, (a sapphire, ruby, and an emerald), but only the sapphire was rendered with the correct texture. The others refused to render with their textures. Even weirder, when I textured the sun seen above, the sapphire would lose its texture.  I spent a long time trying to debug this problem, but I couldn’t resolve it.  So, I was left with the minimum number of objects to texture for the assignment.