Today was a work day for the team, and we all made excellent process. Drew and I have finished video editing, and Jeff and Billy are hard at work on the final maps. We should have everything completed and uploaded to the final database within a few hours! We're all very excited, although it is somewhat upsetting to have our time here on Malta drawing to a close.
My official project on the team was the visualization of cisterns using projective texturing. Today I was able to make the last few tweaks to my texture blending, and have been successful in producing some pretty nice looking visualizations!
These visualizations consist of three main components; texture projections, shading, and blending. The textures, captured from the GoPro cameras on the ROV, are filtered by hand to choose the most pleasing and appropriate textures. After this, the program loads the textures with a list of coordinates and 'projects' the texture onto the wall of the model, using matrix transformations to generate texture coordinates per vertex in the vertex shader.
Shading creates a rudimentary form of light on the model, giving it the illusion of depth and dimension. In this case, only a basic diffuse shading is used. More advanced lighting is not necessary, as the textures are already lit as seen by the robot.
Blending creates a smooth transition between textures by scaling back the per-texture contribution on areas of overlap. This image shows the fragment shader being used to calculate the regions and magnitude of texture overlap. These calculations are then multiplied by the diffuse shading value and then the texture sampler to determine the value of each pixel of the cistern and produce the final visualization:
No comments:
Post a Comment