FISHERR – Sceen
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:
- 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.
- 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.
- Analysis: Aside from understanding how the various matrix transformations are integrated with each object in the scene.
- 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.
- Documentation: Providing user-friendly comments to make sure each class and method steps were clearly organized and easy to understand.
- 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.