Modern vulnerability and survivability codes simulate the path of threat projectiles through a target using "ray tracing." Rays, also known as shotlines, are described mathematically by an origin, a direction, and a length. Rays are "traced" by finding intersections between the ray and the target geometry as the length of the ray is increased from zero. The routines that find these intersections and the representation used to model the target geometry are central to any ray-tracing code.
Standard vulnerability tools, such as the Modular Unix-Based Vulnerability Estimation Suite (MUVES ), depend on a single ray tracer. This ray tracer, part of the BRL-CAD libraries, requires that the geometry be in BRL-CAD constructive solid geometry (CSG) format . In general, designers and analysts employ commercial Computer Aided Design (CAD) packages such as Pro/ENGINEER to create 3D geometrical models of vehicles. Typically, these CAD packages use an advanced boundary representation (BREP) to represent solid geometry. Although automatic conversion tools exist to translate certain CAD file formats (including Pro/ENGINEER ) to BRL-CAD format, they are neither exact nor totally reliable. The alternative, a manual conversion of the geometry, is labor intensive and time consuming. Thus, a serious disconnect exists between vehicle design software and vulnerability assessment tools.
The solution is the development of a new ray-tracing tool for vulnerability codes. This tool would directly interrogate 3D-geometry models created by commercial CAD systems such as Pro/ENGINEER. The modular ray-tracing tool would employ a standard and open interface, allowing its use with a variety of commercial CAD systems and survivability assessment tools including vulnerability, signature, and reparability codes.
This section describes the development of a prototype ray-tracing tool for vulnerability codes. Based on ThermoAnalytics existing ray-tracer, this tool is able to directly interrogate solid 3D-geometry models described by STEP files. STEP (Standard for the Exchange of Product Model Data) is an international standard format for the transfer of CAD designs. Pro/ENGINEER and other commercial CAD programs can export geometry and other attributes of the design (e.g., materials, surface conditions, annotations, etc.) using the STEP format.
ThermoAnalytics developed the following software demonstrations under a Phase I SBIR. The primary technical objective of the Phase I work was to develop a prototype of a standalone, modular ray-tracing tool based on ThermoAnalytics existing ray tracer. The prototype, written in C++, runs on both UNIX and Windows systems and demonstrates that simple component level geometry exported from Pro/ENGINEER can be accurately ray-traced. The prototype demonstrates that the STEP file contains the exact geometrical representation of the components sufficient for an accurate evaluation of components along the shotline. The ray-trace routine reports back entry and exit points, surface vector normal, surface thickness, impactor/target obliquity, and material identifier (read directly from the Pro/ENGINEER part file), as illustrated by the sample ray trace in Figure 1. The prototype code can also produce shotlines for faceted boundary representations contained in any of the file formats already supported by ThermoAnalytics IR Signature/thermal modeling tools. The secondary objective was to investigate the use of the Pro/TOOLKIT and create an interactive ray-tracing tool designed as a "plug-in" to Pro/ENGINEER.
The "Edge and Bounding Box" demo program demonstrates that the STEP representation of a solid model contains all of the information necessary to perform a ray-trace analysis. The program reads a STEP file, identifies the solid parts within the file, traverses the data structures to find the faces that form the boundary of each solid and the curves that form the boundary of each face, and calculates the bounding box for each face. To aid in debugging, OpenGL drawing routines were added to the classes that represent edges. Some edge classes, such as those that represent lines and b-spline 123curves, could be drawn directly by OpenGL. Other edge classes, such as StepCircle, had to be translated to a NURBS representation before being drawn. A routine was also written to draw a six-sided box given the minimum and maximum Cartesian coordinates of a bounding box. Sample output from this program is shown in Figure 7. We propose to extend this program as a Phase II option task and develop a stand-alone interactive shotlining tool for any CAD system that can export STEP geometry.
The "Shotlining" demo program performs a complete shotline analysis on solid geometry that is described by (a subset of) STEP faces. To accomplish this, the code from the first demonstration program was integrated into the ThermoAnalytics ray-tracer, and new code was written to extract shotlining information from ray-face intersections. A detailed discussion follows.
In addition to finding efficient algorithms for intersecting rays with surfaces and solids, much of the science of ray tracing has focused on reducing the number of ray-geometry intersections that must be examined. The ThermoAnalytics ray tracer uses a technique known as spatial subdivision, in which the bounding box of the entire scene (in this case, the vehicle target) to be ray-traced is divided into volume elements, or voxels . Our ray tracer uses uniform spatial subdivision, in which all voxels are the same size. Before ray tracing, the geometry is preprocessed to create a list of all faces that occupy each voxel. We refer to the data structure that holds the list of faces for each voxel as the search space.
As each ray is cast, the voxels are visited in the sequence in which the ray passes through them, and only those faces that occupy these voxels are tested for intersection. Although new face types were added to the ray-tracing code, the existing ThermoAnalytics RayTrace class required only minor modification since the general approach of searching for candidate primitives and then finding the ray-face intersections remained unchanged. The ray-tracer's data structures were modified to store a pointer to the STEP faces, and routines were added to the face classes to find the intersection between a ray and the face. Only two other modifications to the RayTrace class were required. First, the ray tracer was modified to handle multiple intersections between a ray and a surface. (For example, a ray can intersect a cylinder at two points.) Secondly, ray-tracer data structure was extended to hold more information about the intersection points, including the angle between the ray and the surface normal of the geometry (which is calculated by the face classes).
Processed product CYLINDER (#109), Material: RUBBER
Enter ray starting point: 0 0 202
Enter ray direction: .2 .2 -.8
Part: CYLINDER Material: RUBBER
entry < 0.5002 0.5002 199.9994 > normal < 0.0000 0.0025 1.0000 >
los thickness 399.0565
exit < 94.5587 94.5587 -176.2347 > normal < 0.0000 0.4728 -0.8812 >
The "Pro/Engineer Plug-in" demo program performs a shotline analysis using the ray-tracing routine built into the Pro/Engineer toolkit. This program was used to verify that the same results were obtained when performing the analysis on the STEP file as when working directly with Pro/Engineer geometry. Sample output from this program is shown the table below. As shown in Figure 16, this program also demonstrates an interactive ray-tracing tool that enables a designer to display shotlines on the solid geometry. The Pro/Toolkit function ProSolidRayIntersectionCompute was called to find ray/face intersections; a small number, 1e-12, was used for the aperture radius. The routine ProSelectionModelitemGet was called to find the part associated with a ray/face intersection; ProPartMaterialNameGet was called to find the associated material. The functions ProSelectionPoint3dGet and ProSelectionUvParamGet were called to find the Cartesian and surface u-v coordinates of the intersection point. The function ProSurfaceXyzdataEval was called to find the surface normal given the u-v coordinates.
Enter ray starting point: 0 50 -120
Enter ray direction: .1 .1 1
Part: TURRET Material: STEEL
entry < 2.6500 52.6500 -93.5000 > normal < 0.0000 0.0000 -1.0000 >
los thickness 24.9141
exit < 5.1169 55.1169 -68.8314 > normal < 0.0000 0.1837 0.9830 >
Part: CHASSIS Material: STEEL
entry < 5.3000 55.3000 -67.0000 > normal < 0.0000 0.0000 -1.0000 >
In Phase II, we propose to transition the Phase I Option ray-tracing tool to one that is more efficient and independent of Pro/Engineer. At each stage of development, the ray-tracing code will become faster and/or more general, but will always be fully functional. We also propose to add new features to the interactive ray-tracing plug-in to Pro/Engineer, which will also be modified to make use of ThermoAnalytics ray-tracer both to increase its performance and so that it can be transitioned to a stand-alone visualization tool.
At the end of Phase II, we will have developed a stand-alone ray-tracer capable of reading geometry and materials from STEP files, which mimics the BRL-CAD ray-tracer and is therefore callable by MUVES. (For STEP files exported from Pro/ENGINEER, the materials will be read from the native Pro/ENGINEER part file.) We will also have developed an interactive visualization tool that functions as a plug-in to Pro/Engineer. This tool will be capable of displaying a vulnerability cell map as well as information on individual shotlines. In the Phase II option, a stand-alone visualization tool with the same features as the Pro/ENGINEER plug-in will be developed.
The proposed tool leverages on past and current dual-use activities concerning ThermoAnalytics WinTherm and RadTherm thermal analysis codes, as well as the HEVSIM design tool. We also have a number of on-going efforts to assist military and commercial customers with vehicle designs through contracted work and Phase III SBIR activities (commercial). Much of this work concerns ray tracing, geometry modeling, CAD software support, and visualization.
This functionality provides the mechanism for adding transmissivity into the view factor calculation, thus allowing analysis of radiation heat transfer through a semi-transparent medium such as glass or even atmospheric fog. This ability to attract commercial funds very early in the development cycle illustrates our success in commercializing SBIR programs.
Since most vehicle designers use Pro/ENGINEER or a commercial CAD package which supports STEP export, there will be an immediate application for this tool within the defense industry for anyone doing vulnerability assessment. MUVES, COVART (Computation of Vulnerable Area and Repair Time), SAFE (Stochastic Analysis of Fragmentation Effects), MAVEN (Modular Air-system Vulnerability Estimation Network), and AJEM (Advanced Joint Effectiveness Model) would all immediately benefit from a ray tracer built around an industry-standard file format such as STEP.
This ray-tracing tool can further enhance the accuracy of IR signature predictions. While faceted geometry definitions do not adversely affect the calculation of temperatures and diffuse radiosity, signature management techniques often include the use of coatings for which the assumption of diffuse surfaces is invalid. When this is the case, the calculation must utilize the Bidirectional Reflectance Distribution Function (BRDF) of the coating, and a technique such as Phong shading must be used to attempt to approximate the true surface curvature. This process allows the determination of angle-dependent reflectivity and glint effects with reasonable accuracy. The ray-tracing tool could improve on this process in two ways. First, it could map physical temperatures from a faceted model onto a solids model for the final BRDF ray tracing. (Such an approach could provide Night Vision Lab's Paint the Night with models for its real-time ray-tracer.) Second, if the components in the CAD model were selected so that they could be assumed isothermal, a direct-from-CAD-to-BRDF tool could predict temperatures and BRDF radiosity from a single CAD source.
Hanes, Philip J, et al, "Modular Unix-Based Vulnerability Estimation Suite (MUVES) Analyst’s Guide," Ballistic Research Laboratory, APG, Maryland, BRL-MR-3954, December 1991.
Muuss, M (compiler), "Ballistic Research Laboratory CAD Package, A Solid Modeling System and Ray-Tracing Benchmark Distribution Package," Release 1.2, June 1987, Release 3.0, October 1988, and Release 4.0, U.S. Army Ballistic Research Laboratory, Aberdeen Proving Ground, MD, October 1991.
Anderson, J., proe-g man page, brlcad/man/man1/proe-g.1, SLAD/BVLD/VMB Advanced Computer Systems Team, The U. S. Army Research Laboratory, Aberdeen Proving Ground, MD.
Product Data Exchange using STEP (PDES) Part 203 – Application Protocol: Configuration Controlled Design, ANS US PRO/IPO-200-203-1994, U.S. Product Data Association, North Charleston, SC, February 1995.
Product Data Exchange using STEP (PDES) Part 11 – The EXPRESS Language Reference Manual, ANS US PRO/IPO-200-011-1994, U.S. Product Data Association, North Charleston, SC, February 1995.
Corten, Olaf, model_ref script, OCUS (UNIX scripts for Pro/ENGINEER), ftp://ftp.prouser.org/pub/scripts/OCUS4_0.README, August 1998.
ST-Developer, STEP Tools, Inc., http://www.steptools.com/products/stdev/
EDMdeveloperSeat, EPM Technology,
Product Data Exchange using STEP (PDES) Part 21 – Clear Text Encoding of the Physical File Exchange Structure, ANS US PRO/IPO-200-021-1994, U.S. Product Data Association, North Charleston, SC, February 1995.
Neider, J., Davis, T., and Woo, M., OpenGL Programming Guide, Addison-Wesley, Reading, MA, May 1996.
Fujimoto, A., Tananka, T., and Iwata, K., ARTS: Accelerated Ray-Tracing System, IEEE Computer Graphics & Applications, Vol. 6, No. 4, April 1996, pp. 16-26.
Pro/TOOLKIT Online Browser, file:/.../prohelp/html/usascii/products.htm, Parametric Technology Corporation, Waltham, MA, 1998.
Anderson, J. and Mergler, P., Private Meeting held at the AAAV Program Office, SLAD/BVLD/VMB Advanced Computer Systems Team, The U. S. Army Research Laboratory, Aberdeen Proving Ground, MD, June, 2000.
Townsend, S. and Williams, K., "A Pro/Engineer Based Survivability Analysis Methodology," Proceedings of the 11th Annual U.S. Army Ground Survivability Symposium, March 2000.
SINDA-85, Systems Improved Numerical Differencing Analyzer and Fluid Integrator, http://amsd-www.larc.nasa.gov/amsd/
Coates, Susan A. and Davisson, Edwin O., User's Manual for IRPREP, BRL-SP-96, Ballistic Research Laboratory, U. S. Army Laboratory Command, Aberdeen Proving Ground, MD, September 1992.
Panczak, T., Ring, S., and Welch, M., A CAD-based Tool for FDM and FEM Radiation and Conduction Modeling, SAE Paper 981577, 28th International Conference on Environmental Systems, July 1998.
Burdeshaw, Mark D., “The MAVEN Approximation Method Within the MUVES Environment,” Army Research Laboratory, APG, Maryland, July 1995.