|
|
|
Welcome to Chris Smemoe's C S 555 Project home page Description of the ProjectFor my project, I generate and render iso-surfaces for a three-dimensional grid. For transient data sets, I animate the iso-surface at each transient time step. How I do itStep 1: Read in gridded dataHere is an example of the file format I can read into this program: GRID3D
//File Header Step 2: Compute the iso-surfaces based on the current iso-value and the current framefunction isiContourVolume(grid, scalarindex, isovalues, numisovalues) Traverse all the voxel cells, generating triangles and point gradients using the marching cubes algorithm. For all grid vertices in the k-direction (z-layer)For all grid vertices in the j-direction (y-row)For all grid vertices in the i-direction (x-vertex) Step 3: Turn the iso-surfaces into polygons that can be raytracedStep 4: Raytrace or draw the polygons in wireframe mode (based on which option is selected) for the currently selected frame. If an animation is selected, perform steps 2-3 for each time frame.Sample CasesI ran 2 sample animation cases. Both cases show pollutant concentrations in a groundwater contaminant plume. Case 1: Data set 1 with a 1000 PPM Threshold ValueCase 2: Data set 2 with a 4000 PPM Threshold ValueGet the ProgramThis program requires Owenlook to run. If you don't have this GUI or its source code, tough luck! However, you can download the program and edit the source code so it fits your own GUI. Sorry, no documentation yet. This is a work in progress. Let me know if you have any problems or additions to the program. I'll update the code. A binary version of this program compiled for the DEC Alpha is included in this FREE package (in Unix-compressed format). smegraph.tar.Z [Click here to download] |