Over break I implemented a bump map rendering system and researched stereo imaging. Both of these projects will be used to create more realistic, bumpy, cistern walls.
The bump map rendering system combines a surface texture, a bump map, and a mesh of vertices to create the illusion of surface deformations, or depth. The bump map is actually a map of normal vectors for each pixel in the map. The colors of each pixel in the bump map, red, green, and blue, determine the x, y, and z components of the normal vector at that pixel. Given the normal vector of a pixel, the position of a light, and some coordinate transformations, the amount of light that falls on any one pixel can be calculated. A grayscale mask can then be constructed to dim the desired pixels. The mask is then applied on top of the original texture to create the illusion of bumps. The following is a screenshot of a cylinder that has been textured with a yellow and blue checker grid and a bump map.
The renderer uses OpenGL and GLUT. I had never used either of these, so a good portion of my break was dedicated to setting up OpenGL and learning about the graphics pipeline. It was a great learning experience to be sure!
Stereo imaging will be used to create bump maps for the aforementioned renderer. The trick to stereo imaging is to capture two images simultaneously and then compare almost identical features in both images to compute the relative distance of those features using triangulation. I am currently planning on using the OpenCV libraries for camera calibrations and 3D map generation. After discussions, we are planning on mounting two GoPro cameras to the top of the Video Ray−as mentioned below.
No comments:
Post a Comment