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 146.54KB 6 downloads
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.
- Carla Schroer, caseycameron, Dennis and 4 others like this