Josh Terrell (jmterrel) - 471 Final Project
Goal
Facilitate the digital presentation/reading of an intimate letter.
Brief Description
Present a warming scene where the user can look around, interact with a letter, and pleasantly read it. [Enter] moves the letter up or down and [space] opens and closes the letter. [Mouse drag] orients the camera.
Lessons (that I recall)
- webGL vs openGL
- The glsl compiler will optimize away unused variables, and it won't tell you. It will result in bizzare errors.
- webGL's glsl won't convert const ints to floats.
max(vec3(...), 1)
fails whereas max(vec3(...), 1.0)
succeeds.
- The naming is pretty similar to c. just replace
g_
with g.
on any consts/functions.
- world/model cordinates: positive y goes up. texture coordinates: positive y goes down (like screen).
- can't pass a variable sized array to shader, but can pass a statically sized array and a length
- as said in class, textures must be a power of two in size.
Technologies learned
- blender - open models, edit them, specify uv mappings, and export models to obj (wavefront) format.
- webGL - render the scene in the browser.
Knowledge Deepened
- Hierarchical modeling
- letter animation fixed about mid section
- Interpolation for animation
- interpolate the translation and rotation of the letter and its components
- write one animation for the entire letter (move up/down, enter) and another animation for its components (open close, space)
- Lighting
- multiple sources of light, attenuation
- Texture Mapping
- mapping custom images to objects (as letter and picture)
- uv = texture coordinates
External Libraries
External Resources
- All models except the planes (walls, floor, celing, and letter) were downloaded royalty-free from online sources such as turbosquid.
- All textures except the solid texture were downloaded royalty-free from online sources.