A key objective in visualization research is to design and implement algorithms to effectively communicate scientific data so that the essential features of the data can be understood intuitively and accurately.
The accurate perception of shape and surface details is crucial for correctly interpreting the images.
Previous research has shown that humans can perceive three-dimensional shape from two-dimensional images using the pictorial cues present in the images.
For example, shading is a pictorial cue that can be very effective in conveying three-dimensional shape. However, shading alone is not optimal for all purposes, since shading does not provide sufficient detail of local shape when the viewers zoom in on a part of the object (As shown in Figure 1 below).
Previous studies have shown that using an appropriate texture can provide improved perception of the shape of an object:
As we saw from Figure 2, for example, image a provides better shape perception then image d, so texture in image a is more appropriate then the one in image d.
Previous studies have also found that the first principal direction textures improve perception of 3D shapes best. The first principal direction of a vertex on a surface is the greatest curvature at that point. Figure 3 is another image with four different textures where the top left one uses first principal direction, the top right on uses isomorphic texture, the bottom left one has swirly texture and the bottom right one applies uniform texture.
In our project, we consider the impact of motion on the accuracy of shape perception. Structure-from-motion provides a strong shape cue and we hope to evaluate its effect on shape perception by comparing the accuracy obtained through motion of a textured object itself, and through the motion of texture on a stationary object. The project goal for this eight-week research is to create moving texture in which the texture elements follow principal directions.
We started with simple 3D shapes for testing: ellipse, cylinder, and saddle. We extended our testing to complex shapes such as a spline terrain.
Figure 4 and 5 show the visualization of the cylinder and simple terrain models using their triangular faces. The library we use for drawing shapes (as well as their textures which will show later) in python is named pyglet.
We then added the first principal direction textures to each surface (as shown in the following two figures). Principal direction lines for each point are in yellow color:
Furthermore, we added motion to the first principal direction textures. See Figure 8 and 9 for the results:
We have attempted to use a non-photorealistic rendering (NPR) technique to create better images. Figure 10 and 11 show the same cylinder and spline shapes with moving lines along the first principal directions (colored in purple).
In our current algorithm, one stroke is created for each triangle and for a large model we may end up with too many strokes that are too close to each other. In order to more evenly spaced them out, we apply a clustering algorithm which groups triangles on the surface based on the nearness. Figure 12 and 13 show color coded clusters on a half cylinder model and a spline model .
Figure 14 and 15 show moving textures with one stroke per cluster on a half cylinder model. For each cluster, the stroke that was closest to the centroid of the cluster would be picked.
Figure 16 and 17 show moving textures with one stroke per cluster on a spline model. The strokes are picked the same way as explained above.
Future work of this research includes improving the moving textures on complex models that have many changing directions as well as designing and running a user study to compare the performance of human observers on shape perception tasks under two different motion conditions: the motion of a textured object itself, and the motion of texture on a stationary object.