- DIRSIG render purposely did not use vertex normal interpolation in order to keep the OBJ file size small, resulting in a slightly more triangulated appearance
- DIRSIG render has realistic downwelled and sensor path radiance and transmission losses that are not present (visually at least) in the Terragen render
DIRSIG
A blog about the Digital Imaging and Remote Sensing Image Generation (DIRSIG) model featuring posts contributed by the developers. This is not a user manual and it is not a training class. But, it is a place to see what the developers are doing and a little about how we do it. So think of this as a place to learn cool tips, tricks, etc.
Tuesday, February 14, 2012
Rendering a Terragen 2 scene in DIRSIG
Terragen is a terrain modeling software package that has both a free version and a commercial version available for download. This program has a nice procedural engine for synthesizing realistic terrain relief in a matter of a few minutes. Within Terragen 2 Deep Edition, we created a simple fractal based terrain with a spatial extent of 10km x 10km and exported it to OBJ format via the "micro exporter" contained with the Render node.
For the DIRSIG render, we simply created a mid-latitude summer (MODEL=2) and 23km aerosol model (IHAZE=1) MODTRAN based atmosphere and attributed the terrain with a 30% spectrally flat albedo. For a little sizzle, we also added a simple rectangular box and attributed with the fresnel optical property of water (n = 1.33, k=0.0).
Additionally, it should be noted that we had to manually rotate the OBJ file (within Blender and re-saved to the same file) by 90 degrees since Terragen uses the +Y is up convention while DIRSIG uses the +z is up convention. The resulting DIRSIG render has some similarities and slight differences compared to the terragen render.
Friday, January 20, 2012
New Demos in 4.4.2
The new DIRSIG 4.4.2 release includes 10 new demos, bringing the total number of these feature focused simulations to 53. Some of these demos have been briefly discussed in other posts (for example, the expanded Geometry Primitives and Bayer Pattern Focal Plane demos). The following is a list of the new demos in the 4.4.2 release:
- Bayer pattern focal plane
- A set of example BRDF materials
- LIDAR returns from a sloped surface
- LIDAR returns from sub-pixel structures
- A geo-synchronous, exo-atmospheric "moon-like" satellite
- A 4-camera, division-of-aperture polarization system
- A 2x2 microgrid division-of-array (focal plane) polarization system
- An expanded set of primitive geometry objects
- An extended-area, directly viewable source
- An advanced UV mapping example
Labels:
demos
Monday, January 16, 2012
DIRSIG 4.4.2 is here!
The Final Release of DIRSIG 4.4.2 is out. This release is primarily a maintenance release to address a few bugs in the 4.4.1 release.
The following is a summary of fixes and features added in this release:
We wish to thank those early adopter users for their participation in this release. And we invite you all to give the new features in 4.4.2 a try. It is available for immediate download on myDIRSIG.
- Significant performance improvements to LIDAR simulations (~20x faster)
- Adaptive sampling support in the Graphical User Interface (GUI)
- Data-drive focal plane support in the Graphical User Interface (GUI)
- Improvements to graphical "Simulation Preview" tool
- New extended-area, directly viewable sources
- New "Refinery" scene
- 10 new demonstrations
- Bug fixes related to using the "Classic" atmosphere model
- Improved compatibility with MODTRAN5 2.0.0
- Issues with platforms on space based platforms
- Issues with platforms on the ground looking at exo-atmospheric objects
- Scene Editor upgrades
- New "General" tab with preview image
- Option for implicit scene "base directory" using the location of the .scene file
- More meta-data than just the scene "name"
- Platform Editor upgrades
- New tabbed layout of the focal plane editor
- Improved data-driven detector array geometry support
Scott and Adam
The DIRSIG Team
Labels:
releases
Thursday, December 08, 2011
Waveform Lidar Simulation
One of the more interesting areas of development right now for laser radar are "waveform" LIDAR systems. Unlike Linear-mode (Lm) or Geiger-mode (Gm) system that collect a relatively small number of height measurements per GSD, a "waveform" LIDAR (wLIDAR) essentially digitizes the returned flux during the time window at some time resolution. That means you have intensity information at all the ranges rather than just a discrete set of them. This allows for some very complex post-processing of the data. The "Airborne Taxonomic Mapping System" (AToMS) operated by the Carnegie Airborne Observatory (CAO) is being used to better quantify the biomass in complex tree canopies and grasslands. The remote sensing arm of the National Ecological Observatory Network (NEON) plans on operating a wLIDAR on it's Airborne Observation Platform (AOP).
The .BIN file created in "Stage 1" by DIRSIG contains for each pulse, the temporal flux for each pixel in the receiver array during the period that the array is armed (defined by a range gate or listening window) and is accompanied by a lot of meta-data including the precise absolute time of the current pulse, ephemeris like the platform location, platform orientation, platform relative pointing and information about the source and receiver. But the temporal flux for each pixel is what I want to focus on. That portion of the data is basically what a wLIDAR system collects. The major difference is that the data produced by DIRSIG does not include an impulse response of the detector, A/D system, etc. Unlike the point clouds generated by conventional systems that can use the standardized LAS format, there has not yet been a widespread adoption of a file format for waveform LIDAR data. Note that the LAS 1.3 specification released in 2009 indeed has support for waveform data, but most operating sensors are still using home-grown data formats that were created before the recent LAS additions. For example, the data we have been getting from CAO is formatted as an ENVI image file (see this previous post in addition to other resources) employing the "spectral" dimension as a temporal dimension. Additional files carry important meta data for the pulse including location of the area images, the source pulse profile, etc.
So is there any easy way to convert a DIRSIG .BIN file into an ENVI image file so that the waveform can be visualized and processed? The answer is "Yes" and it doesn't even require conversion. The .BIN file is basically a 3D cube of data with some metadata. The ENVI image header file can be used to directly import the .BIN file as long as:
Let me explain the various variables:
Most wLIDAR systems feature a high performance, single-pixel detector coupled to a high performance digitizer. To obtain area coverage that detection system is coupled to a scanner that can provide across-track scanning while the airborne platform provides the along-track scanning via platform motion. Note that along-track pointing isn't out of the question, but let's keep it simple for now. As these types of systems become more familiar with people, we have been getting questions such as "Can DIRSIG model a wLIDAR system?"
Most users familiar with the DIRSIG Lidar modality are familiar with the two-stage approach we employ. Stage 1 is the radiometry simulation that (for each pulse) computes the temporal flux received by each pixel during a user-specified listening window. That result is then input into Stage 2, or the detector model and point generation. The standard detector model supports both generic Linear-mode and Geiger-mode detection schemes. This two-stage approach provides a lot of flexibility for doing detector performance studies because the detection and point generation can be performed very rapidly once the radiometry is precomputed.
Most users familiar with the DIRSIG Lidar modality are familiar with the two-stage approach we employ. Stage 1 is the radiometry simulation that (for each pulse) computes the temporal flux received by each pixel during a user-specified listening window. That result is then input into Stage 2, or the detector model and point generation. The standard detector model supports both generic Linear-mode and Geiger-mode detection schemes. This two-stage approach provides a lot of flexibility for doing detector performance studies because the detection and point generation can be performed very rapidly once the radiometry is precomputed.
Many users have asked "When will a waveform detector model join the existing Linear-mode and Geiger-mode detector models?" The answer is "We don't need to!" Let me explain ...
The .BIN file created in "Stage 1" by DIRSIG contains for each pulse, the temporal flux for each pixel in the receiver array during the period that the array is armed (defined by a range gate or listening window) and is accompanied by a lot of meta-data including the precise absolute time of the current pulse, ephemeris like the platform location, platform orientation, platform relative pointing and information about the source and receiver. But the temporal flux for each pixel is what I want to focus on. That portion of the data is basically what a wLIDAR system collects. The major difference is that the data produced by DIRSIG does not include an impulse response of the detector, A/D system, etc. Unlike the point clouds generated by conventional systems that can use the standardized LAS format, there has not yet been a widespread adoption of a file format for waveform LIDAR data. Note that the LAS 1.3 specification released in 2009 indeed has support for waveform data, but most operating sensors are still using home-grown data formats that were created before the recent LAS additions. For example, the data we have been getting from CAO is formatted as an ENVI image file (see this previous post in addition to other resources) employing the "spectral" dimension as a temporal dimension. Additional files carry important meta data for the pulse including location of the area images, the source pulse profile, etc.
So is there any easy way to convert a DIRSIG .BIN file into an ENVI image file so that the waveform can be visualized and processed? The answer is "Yes" and it doesn't even require conversion. The .BIN file is basically a 3D cube of data with some metadata. The ENVI image header file can be used to directly import the .BIN file as long as:
- The pulse data is not compressed using the lossless compression option
- The file contains only a single pulse
The required ENVI header file can be created by hand using the following template:
ENVI
description = {DIRSIG .bin file}
samples = 128
lines = 128
bands = 302
header offset = 777
file type = ENVI Standard
data type = 5
interleave = bip
sensor type = Unknown
byte order = 0
wavelength units = Unknown
Let me explain the various variables:
- For this quick demo, I actually modeled a 128x128 array rather than scan a single pixel. Hence, the "samples" and "lines" are 128, respectively.
- My listening window opened at 1.31e-05 seconds and closed at 1.34e-05 seconds, and had a time resolution of 1e-09 seconds. That results in 301 time bins "digitized". The DIRSIG .BIN file also includes the passive flux (Sun, Moon, etc.) as the first "band" in the cube. This results in 302 "bands" total.
- The various meta-data headers in the .BIN file account for 777 bytes at the front of the file.
- The spatial/temporal data is "band interleaved by pixel".
The following is what band #250 looks like, which corresponds to a range about half way down the tree. At this range, we are mostly seeing returns from around the "waist" of the tree.
Below is a temporal plot of a pixel in the cube, showing the waveform profile created by the various leaves and branches within the IFOV of the pixel. Note that some of that shape is from direct returns off the structure of the tree being imaged and some portion is most likely multiple-bounce returns that were scattered by or transmitted through other leaves.
The goal of this article was to show how the existing outputs of DIRSIG could be used to approximate a waveform LIDAR (wLIDAR) system. What is currently missing from the DIRSIG simulation is the impulse response of the receiving hardware (detector, digitizer, etc.), but for now that could be incorporated by users reading in the data an performing the convolution themselves. Until widely accepted visualization tools for wLIDAR are available, we showed a simple trick that allows users to visualize the data using multi- or hyper-spectral image approaches in ENVI (or an ENVI compatible image viewer like the one provided with DIRSIG and used here).
Friday, October 21, 2011
Primitives
Like most ray tracing environments, DIRSIG offers a number of convenient primitive objects to use in place of facetized geometry. Aside from offering a quick way to construct a (simple) scene, primitives have mathematically defined surfaces so there is no reason to worry about edges between facets. In contrast to vertex normal interpolation which helps smooth the appearance of facetized objects, primitives offer true, smooth geometry which can be convenient for working out precise radiometry problems.
We've already made some of these primitive objects available under the old object database (ODB) inputs, which has been shown in the PrimitiveObjects1 demo. These objects are shown below.

The primitives shown are a box, a sphere, a cylinder, a ground plane, a disk, and a two material disk (introduced to quickly model a Secchi disk for virtually measuring turbidity).
We've now updated the "glist" format to support these primitives and to provide previously unavailable primitives that we have used over the years in support of various projects. Aside from the cleaner XML interface offered by the glist format, the update allows the user to use primitives as instances -- allowing for scaling and rotating just like facetized objects. The new primitives are shown below and will be in a PrimitiveObjects2 demo in the next release.

The new scene demonstrates some of the old primitives under various instance transformations, shows some new options (like the ability to uncap the cylinder), and gives examples of some of the new primitives. The new primitives include curved frusta (useful for modeling ramps and piles), a cone (a special case of the curved frustum), a checkerboard surface (useful as a ground plane and allows each check to be indexed and individually painted), and a sinusoid surface and volume (with customizable amplitude and phase, along with orientation relative to the bounding box shape)
We've already made some of these primitive objects available under the old object database (ODB) inputs, which has been shown in the PrimitiveObjects1 demo. These objects are shown below.

The primitives shown are a box, a sphere, a cylinder, a ground plane, a disk, and a two material disk (introduced to quickly model a Secchi disk for virtually measuring turbidity).
We've now updated the "glist" format to support these primitives and to provide previously unavailable primitives that we have used over the years in support of various projects. Aside from the cleaner XML interface offered by the glist format, the update allows the user to use primitives as instances -- allowing for scaling and rotating just like facetized objects. The new primitives are shown below and will be in a PrimitiveObjects2 demo in the next release.

The new scene demonstrates some of the old primitives under various instance transformations, shows some new options (like the ability to uncap the cylinder), and gives examples of some of the new primitives. The new primitives include curved frusta (useful for modeling ramps and piles), a cone (a special case of the curved frustum), a checkerboard surface (useful as a ground plane and allows each check to be indexed and individually painted), and a sinusoid surface and volume (with customizable amplitude and phase, along with orientation relative to the bounding box shape)
Labels:
demos,
primitives,
scenes
Tuesday, October 04, 2011
Data-driven focal planes and modeling Bayer Pattern CFAs
One of the new features that will be in the upcoming DIRSIG 4.4.2 release is something that we have been calling "data-driven focal planes". This mechanism had been on the drawing board for many years and we finally had a reason to implement it on our contract to help model the Landsat Data Continuity Mission (LDCM) sensors, or what many of you will come to know as Landsat 8 when it is launched in December 2012. The concept of the "data-driven" focal plane was to provide an alternative to the parameterized detector array geometry, where you specify the focal length, the number of pixels, the pixel pitch and pixel spacings. Instead a "data-driven" focal plane uses a "database" where each record describes both the geometric and radiometric properties of a single pixel. The key feature is that the geometric and optical properties are described at the front of the aperture. This allows the model to ingest optical predictions from complex optical model packages like Code V, Oslo, etc. or to use measurements captured during calibration of real hardware.
On the LDCM project, we are using measurements of the pixels projected through the entire optical system. The geometric measurements capture all of the distortions imparted by the optical path and any alignment present in the assembly of the focal plane models (we should emphasize that both the reflective and thermal instruments are excellent instruments with minimal distortions and alignment errors). In addition to the geometric location of each pixel, the calibration procedures captured many key radiometric features including variations in the spectral response, gain, and noise across the focal planes. This new data-driven mechanism allows as much (or as little) data to be directly described to DIRSIG on a per-pixel basis.
As valuable as this feature is for assisting in the creation of very precise simulations of actual instruments, the mechanism is also useful for modeling Color Filter Arrays (CFAs). There have been frequent requests over the years for the ability to model a Bayer Pattern focal plane. The Bayer pattern was developed as a method to capture red, green and blue imagery using a single array. The technique would fall under the modern definition of "compressive sensing" because the key idea was that rather than each pixel trying to capture all three colors, each pixel would capture a single color and the remaining two colors would be interpolated from adjacent pixels capturing the other colors (see images below, courtesy of Wikipedia):


Although the Bayer pattern is just one of many CFA patterns that have been developed over the years, it is one of the most popular and is featured in many consumer imaging systems including most point-and-shoot cameras, mobile phone cameras, etc. The data-driven focal plane mechanism provides an easy way to model any CFA focal plane because it allows the user to specify the spectral response of every pixel.
Making the Pixel Database
The first thing we need is a pixel database that describes (for each pixel):
The first two columns are the X and Y coordinates of the pixel, which were included for human bookkeeping purposes only (later we will instruct the DIRSIG model to ignore these two fields). The next two columns are the X and Y angles of the pixel pointing direction, which were computed using from the arctangent of the focal length and the physical location of the pixel. The next two columns are the X and Y IFOVs, which were computed from the arctangent of the focal length and the pixel size. The last column is the index of the spectral response curve to use for this pixel.
Importing the Filter Responses
The image below shows the red, green and blue pixels that were imported into the platform model using one of the various import mechanisms available. The channel indexes in the pixel database files refer to the curves in this list starting at 0. Hence, 0 maps to red, 1 to green and 2 to blue. Referring back to the pixel database, you can see that the first row of pixels is a Red/Green row (with channel indexes alternating between 0 and 1) and the last row is a Blue/Green row (with channel indexes alternating between 1 and 2):

Using Attribute Fields
Although the pixel X/Y coordinates in our pixel file are not going to be used by the model, the pixel database supports a user-defined number of "attribute" columns before the geometric and radiometric description begins (pixel angles, pixel IFOVs, etc.). When we supply the pixel database to DIRSIG, we need to tell it that there are "2" attribute fields in our file so it can correctly skip them and extract the geometric and radiometric description for the pixel. You might be asking yourself "If DIRSIG is going to skip them, what is the point in including them at all?" The answer to that question is that DIRSIG allows you to use those fields to sub-select some set of pixels from the file. The utility of this selection mechanism is beyond the scope of this article, but one example is how we have been modeling the LDCM focal planes. The LDCM pixel database includes attribute fields that indicate which band, which focal plane model and which "set" (the LDCM focal planes have backup pixels) the pixel belongs to. This has allowed us to simulate using the backup set of pixels for a given focal plane module using a simple run-time selection rule.
Example Scene
We created a special scene that would demonstrate the collection behavior of this type of sensor. The image below (click to see the larger version) shows the scene imaged with a true RGB, 3 focal plane camera (separate focal planes for red, green and blue). The sharp edges of the high contrast black and white text and color panels will stress the intrapolation scheme used to estimate the missing colors in pixels near these edges when imaged with the Bayer pattern focal plane.

Raw Bayer Pattern Image
The image below (click to see the larger version) is the raw radiance image from the Bayer pattern focal plane. Note that that it is not a color image at this point because the image contains red, green and blue data mosaiced within the single band image. The zoom of the center area containing the color panels makes the filter pattern of the pixels apparent. To turn this into a real color image, an algorithm to demosaic the color information from neighboring pixels must be applied to this raw data.

Demosaicing the Bayer Pattern Image
To demosaic the color information and create an RGB image, a simple program was written. It implements a very simple bi-linear interpolation approach to estimate the other colors in a given pixel (a good survey of demosaic algorithms for Bayer Pattern focal planes can be found here). The resulting RGB image is shown below:

If you zoom into the high contrast edges of the letters you can see the artifacts from the demosaicing process. A better algorithm would make a nicer image, but you get the point.

Summary
The goal of this article was to introduce you to the new data-driven focal plane mechanism that will appear in DIRSIG 4.4.2 and to demonstrate it with a color filter array focal plane example. Note that although this example focused on the 3-color Bayer pattern, any pattern with any number of filters can be modeled using this approach. This example will appear in DIRSIG 4.4.2 as a new demonstration.
On the LDCM project, we are using measurements of the pixels projected through the entire optical system. The geometric measurements capture all of the distortions imparted by the optical path and any alignment present in the assembly of the focal plane models (we should emphasize that both the reflective and thermal instruments are excellent instruments with minimal distortions and alignment errors). In addition to the geometric location of each pixel, the calibration procedures captured many key radiometric features including variations in the spectral response, gain, and noise across the focal planes. This new data-driven mechanism allows as much (or as little) data to be directly described to DIRSIG on a per-pixel basis.
As valuable as this feature is for assisting in the creation of very precise simulations of actual instruments, the mechanism is also useful for modeling Color Filter Arrays (CFAs). There have been frequent requests over the years for the ability to model a Bayer Pattern focal plane. The Bayer pattern was developed as a method to capture red, green and blue imagery using a single array. The technique would fall under the modern definition of "compressive sensing" because the key idea was that rather than each pixel trying to capture all three colors, each pixel would capture a single color and the remaining two colors would be interpolated from adjacent pixels capturing the other colors (see images below, courtesy of Wikipedia):
Although the Bayer pattern is just one of many CFA patterns that have been developed over the years, it is one of the most popular and is featured in many consumer imaging systems including most point-and-shoot cameras, mobile phone cameras, etc. The data-driven focal plane mechanism provides an easy way to model any CFA focal plane because it allows the user to specify the spectral response of every pixel.
Making the Pixel Database
The first thing we need is a pixel database that describes (for each pixel):
- The pointing direction of pixel as an X/Y angle relative to the optical axis
- The angular instantaneous field-of-view (IFOV) in the X/Y dimensions
- The index of the spectral response to use in the channel response list
1 0 -0.0637136 -0.0479632 0.0002 0.0002 1 2 0 -0.0635145 -0.0479632 0.0002 0.0002 0 3 0 -0.0633153 -0.0479632 0.0002 0.0002 1 4 0 -0.0631161 -0.0479632 0.0002 0.0002 0 ... 636 479 0.0631161 0.0477636 0.0002 0.0002 1 637 479 0.0633153 0.0477636 0.0002 0.0002 2 638 479 0.0635145 0.0477636 0.0002 0.0002 1 639 479 0.0637136 0.0477636 0.0002 0.0002 2
The first two columns are the X and Y coordinates of the pixel, which were included for human bookkeeping purposes only (later we will instruct the DIRSIG model to ignore these two fields). The next two columns are the X and Y angles of the pixel pointing direction, which were computed using from the arctangent of the focal length and the physical location of the pixel. The next two columns are the X and Y IFOVs, which were computed from the arctangent of the focal length and the pixel size. The last column is the index of the spectral response curve to use for this pixel.
Importing the Filter Responses
The image below shows the red, green and blue pixels that were imported into the platform model using one of the various import mechanisms available. The channel indexes in the pixel database files refer to the curves in this list starting at 0. Hence, 0 maps to red, 1 to green and 2 to blue. Referring back to the pixel database, you can see that the first row of pixels is a Red/Green row (with channel indexes alternating between 0 and 1) and the last row is a Blue/Green row (with channel indexes alternating between 1 and 2):

Using Attribute Fields
Although the pixel X/Y coordinates in our pixel file are not going to be used by the model, the pixel database supports a user-defined number of "attribute" columns before the geometric and radiometric description begins (pixel angles, pixel IFOVs, etc.). When we supply the pixel database to DIRSIG, we need to tell it that there are "2" attribute fields in our file so it can correctly skip them and extract the geometric and radiometric description for the pixel. You might be asking yourself "If DIRSIG is going to skip them, what is the point in including them at all?" The answer to that question is that DIRSIG allows you to use those fields to sub-select some set of pixels from the file. The utility of this selection mechanism is beyond the scope of this article, but one example is how we have been modeling the LDCM focal planes. The LDCM pixel database includes attribute fields that indicate which band, which focal plane model and which "set" (the LDCM focal planes have backup pixels) the pixel belongs to. This has allowed us to simulate using the backup set of pixels for a given focal plane module using a simple run-time selection rule.
Example Scene
We created a special scene that would demonstrate the collection behavior of this type of sensor. The image below (click to see the larger version) shows the scene imaged with a true RGB, 3 focal plane camera (separate focal planes for red, green and blue). The sharp edges of the high contrast black and white text and color panels will stress the intrapolation scheme used to estimate the missing colors in pixels near these edges when imaged with the Bayer pattern focal plane.

Raw Bayer Pattern Image
The image below (click to see the larger version) is the raw radiance image from the Bayer pattern focal plane. Note that that it is not a color image at this point because the image contains red, green and blue data mosaiced within the single band image. The zoom of the center area containing the color panels makes the filter pattern of the pixels apparent. To turn this into a real color image, an algorithm to demosaic the color information from neighboring pixels must be applied to this raw data.

Demosaicing the Bayer Pattern Image
To demosaic the color information and create an RGB image, a simple program was written. It implements a very simple bi-linear interpolation approach to estimate the other colors in a given pixel (a good survey of demosaic algorithms for Bayer Pattern focal planes can be found here). The resulting RGB image is shown below:

If you zoom into the high contrast edges of the letters you can see the artifacts from the demosaicing process. A better algorithm would make a nicer image, but you get the point.

Summary
The goal of this article was to introduce you to the new data-driven focal plane mechanism that will appear in DIRSIG 4.4.2 and to demonstrate it with a color filter array focal plane example. Note that although this example focused on the 3-color Bayer pattern, any pattern with any number of filters can be modeled using this approach. This example will appear in DIRSIG 4.4.2 as a new demonstration.
Labels:
demos
Basic Training Nov 1-3, 2011 in Fairfax, VA
The next DIRSIG Basic Training course will be held at the Marriott Residence Inn at Fair Lakes in Fairfax, VA on November 1st - 3rd, 2011.
More information is available on the DIRSIG training webpage
More information is available on the DIRSIG training webpage
Labels:
training
Friday, September 30, 2011
Work in progress: Whole earth model
One of the fundamental modules in D5 supplies a model of the earth (or other, roughly ellipsoid planet) to the core representation of the DIRSIG universe. The distributed version of D5 will likely contain a simple, material-mapped sphere representation of the earth by default (to keep download sizes reasonable), with the option to obtain more detailed (and more correct) models.
To this end we've been working on an earth model based on the WGS84 reference ellipsoid and SRTM (Shuttle Radar Topography Mission) DEM data. Since this is a very large data set (the 500m data we're using currently is 4.7GB in its raw form) it is an ideal case to test some of our new large file handling routines and integrating them into geometry interactions.
We model the earth as a collection of triangle mesh patches representing cells (primarily hexagons) of a geodesic, specifically the ISEA aperture 4 resolution 7 grid (i.e. 163,842 index cells). Each patch can be loaded into memory independently, pre-optimized for rendering, giving us a way to handle the large data set smoothly. The resulting distribution of patches looks like:

The SRTM data is then sorted into index cells. The plot below shows a small subset of the DEM near the northwest shore of Lake Erie sorted into index cells:

Once sorted, we then generate a mesh within the index cell with approximately one triangle per DEM posting. The triangles are equal area, and with the exception of the 12 pentagons in the geodesic, each cell has the same number of triangles (this will facilitate further optimizations for GPU rendering). A single cell mesh will look something like this (lines represent facets, the points are the original SRTM data points):

We are currently in the process of formalizing this pipeline and incorporating the final result into the core model. Note that we don't expect users to want to routinely use the earth DEM as the basis for traditional scenes (there is not enough detail here for most purposes). Scenes can either be built on the earth model terrain or replace it entirely with their own. The earth DEM is primarily there to provide baseline geometry for background radiance (including important shadowing effects) and to provide data for large pixel footprints.
To this end we've been working on an earth model based on the WGS84 reference ellipsoid and SRTM (Shuttle Radar Topography Mission) DEM data. Since this is a very large data set (the 500m data we're using currently is 4.7GB in its raw form) it is an ideal case to test some of our new large file handling routines and integrating them into geometry interactions.
We model the earth as a collection of triangle mesh patches representing cells (primarily hexagons) of a geodesic, specifically the ISEA aperture 4 resolution 7 grid (i.e. 163,842 index cells). Each patch can be loaded into memory independently, pre-optimized for rendering, giving us a way to handle the large data set smoothly. The resulting distribution of patches looks like:

The SRTM data is then sorted into index cells. The plot below shows a small subset of the DEM near the northwest shore of Lake Erie sorted into index cells:

Once sorted, we then generate a mesh within the index cell with approximately one triangle per DEM posting. The triangles are equal area, and with the exception of the 12 pentagons in the geodesic, each cell has the same number of triangles (this will facilitate further optimizations for GPU rendering). A single cell mesh will look something like this (lines represent facets, the points are the original SRTM data points):

We are currently in the process of formalizing this pipeline and incorporating the final result into the core model. Note that we don't expect users to want to routinely use the earth DEM as the basis for traditional scenes (there is not enough detail here for most purposes). Scenes can either be built on the earth model terrain or replace it entirely with their own. The earth DEM is primarily there to provide baseline geometry for background radiance (including important shadowing effects) and to provide data for large pixel footprints.
Subscribe to:
Posts (Atom)




