For realistic synthetic imagery, radiative transfer methods coupled with large mesh geometry provide the most scientifically accurate way to model a scene. Radiative models typically use ray-tracing techniques to determine where radiative energy is coming from or moving to. This work presents an approach to making a ray query Geometry Engine that actively stores large-scale, terabyte-sized geometry in out-of-core memory on parallel general purpose processors. Procedures for geometry distribution, structures for efficient ray-tracing, and the ray query API are discussed. Geometry distribution uses Morton codes with parallel sorting routines to create geometry scene-chunks that are distributed among processing nodes. Each scene chunk is then broken down using a bounding volume hierarchy (BVH) using axis-aligned bounding boxes (AABB). The BVH allows for efficient ray tracing of the geometry. The ray query engine API allows client-side programs, such as sensor models and radiative transfer models, which exist on the same high performance computer to efficiently identify intersected geometry given directed rays and collect individual geometry elements. The geometry has key values that can uniquely identify data from solver programs. Scalability, partition timing, and ray timing results are presented.
|