Jump to content

Geeky details about the "Normals Visualization" available in the new viewer.


Recommended Posts

The 1.1 RTiViewer has the ability to display a normals visualization.  There is some basic information about this in the User Guide on page 23. Additionally, the concept of surface normals and how they are calculated by having known light positions is described on the CHI website on the RTI page:   However, we do receive questions about exactly what the normals visualization represents and how the data is stored.  Here is a geekier explanation than is in either of the above places for those that want to look under the covers.


Background - The surface normal is a vector that is perpendicular to the tangent plane for any point along a 3D surface.  In RTI files, the surface normal is calculated per pixel based on the image capture set and on knowing the light position for each image in the capture set.  Surface normal accuracy can be affected by: shadows and highlights on the subject; sample size and spread of the lights in the image capture set; accuracy of the light position calculation; and which algorithm is used to calculate the normals. Other factors include whether the images are aligned, and whether the images are in focus for the areas of the subject from which you want to calculate normals.


Surface normal calculation and representation - The surface normal calculation is part of the fitting algorithm, though the data in a PTM or RTI file are not stored directly as surface normals.  When a PTM or RTI file is loaded into an RTI viewer, it calculates the surface normals for use in the viewing environment.  The surface normal is represented by x, y, and z coordinates, which are calculated as floating point numbers, normalized to be between -1 and 1 (in addition, x*x + y*y + z*z = 1; in other words, length of a normal vector has to be 1.) The x, y and z coordinates correspond to a point where the origin (0,0,0) is on the surface at that pixel, and the x,y,z coordinates describe a point in space away from the origin.  The normal vector starts at the surface and goes through that point.


Representation of normal fields - It is common to represent normal fields through false color visualization, where the x, y, and z coordinates are mapped to RGB: red, green and blue, respectively.  The normal visualizations are useful in their own right, as well as carrying the coordinates that describe each normal per pixel (as described above). This means that the numerical data for the normals can be compared for a variety of purposes, such as tracking changes to the surface of the same object, or comparing similar materials, for example in a study of tool marks. There are some alignment issues to resolve.  Once resolved, the data can be compared numerically.  This opens up a variety of additional studies beyond just visual inspection in a viewing environment.  (Note there are solutions for alignment, but that topic goes beyond the scope of this post)


The attached image shows the surface normals visualization applied to a hemisphere.18-normal.jpg


I want to stress that, because various factors can affect normal accuracy (as described above), using normal comparisons for study requires capturing high-quality RTI data and the application of the HSH algorithm (or new algorithms as they become available).


I would like to thank to Sema Berkiten, PhD student at Princeton, for walking me through the details of this.

Link to comment
Share on other sites

  • 2 months later...

Carla and Sema - Great explanation! I'm just viewing an HSH of an O'Keeffe oil painting on canvas with numerous changes in normal vector: high ridges of paint, lifted cracks, dents, and of course, the edges falling away at the tacking edges. The representation of these changes in vector direction are fantastic. At 200x, the differences between the vector changes of the canvas twill-weave pattern and O'Keeffe's subtle brushwork and paint textures are not simply value changes, they are COLOR changes. THis makes even the most subtle crack, buckle and crease clearly documented. THanks, so much for this great feature in the new reader.  Likewise, THANKS for the light, zoom and pan values and the fantastic bookmarking functions. These make meta data capture and interpretation discussions so much more agile!  Great work and congratulations to the team!

Link to comment
Share on other sites

Dale -


Glad you like the new features in the 1.1 RTiViewer!  We have known for a long time that adding numerical data both to the interface and for the saved images was really important.  It was great to finally have a chance to implement them!





Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...