TOC PREV NEXT INDEX

data_surface_reduction

Synopsis

adjust_slice_spacing takes a 3D uniform field, changes the spacing of the specified axis and converts it into a 3D rectilinear field. This macro can be used to irregularly space the uniform output of Read_Img2vol.

Input Port

ui_parent

in Mesh

Parameters

Reduction Target

UIslider

Initial Surface Tolerance

UIfield

Surface Tolerance Increment

UIfield

Max Iterations

UIfield

Data Dependence

UIoptionMenu

Weight

UIslider

Preserve Edges

UItoggle

Final Reduction

UIlabel

Dynamic

UItoggle

reduce

uibutton

Output Port

out Mesh

Mesh+Node_Data

Description

Data_surface_reduction is a surface reduction macro which supports data dependent simplification. The algorithm is optimized for fast surface simplification suitable for an interactive visualization environment.
For example, extracting isosurfaces from a data set in order to detect essential features, can produce a large number of very small triangles, which are too many to be rendered efficiently on a PC desktop or distributed across a low bandwidth Internet (using VRML). Surface reduction generates a simplified version of the original isosurface by selectively removing typically 80% of the triangles. The goal is to get a coarse representation of the surface in areas of low curvature (flat surface) and a finer representation in more wrinkled parts of the surface. The data_surface_reduction macro can make interactive visualization practicable.
An iterative method is used to remove nodes that are within a given distance from the average plane that passes through the neighboring nodes. The user can specify parameters that allow trade off between performance and quality.

Data_surface_reduction incorporates a data-dependent simplification method. This means that the data itself can be used as the simplification criteria. If data is attached to the surface, purely geometric criteria are not sufficient to get an appropriate representation without losing essential information. "Color changes" can thus be protected against simplification, even, if the geometry should normally be simplified. If a model is not uniformly "colored", the simplified model will keep nodes with different colors even if these facets should normally be removed according to geometry criterion. In this way a much better representation of data mapped on to the surface can be retained.

Input

ui_parent
Connects the module to a user interface. By default, this input port is connected to the default user interface object in the application in which the module is instanced.

in

The mesh should contain one tri or polytri cell_set. If there is node_data it will be mapped to the output. Node_Data is also required for data dependent reduction. For best performance there should be no repetition of nodes or triangles of zero area.

Parameters

Initial Surfure Tolerance
Initial surface tolerance is the initial distance between he simplified and original mesh allowed. Nodes with distances less than this value will be removed on the first iteration. Value is a fraction of the longest side of the bounding box containing the surface. Generally this value and Surface Tolerance Increment are set to the same value (order of 0.001). Better quality reduction is achieved by using small tolerance values and more iterations and visa versa for faster execution.
Surface Tolerance Increment
After each iteration the surface tolerance will be increased by this amount. During the next iteration nodes will be removed if their distance to the average plane is less than the new surface tolerance. Value is a fraction of the longest side of the bounding box containing the surface.
Reduction Target
Percentage of nodes that the method will attempt to remove before stopping. Reductions of around 80% will give significant performance improvement in a viewer without losing any significant detail in the model.
Max Iterations
Maximum number of iterations that will be performed. During each iteration all the nodes are tested against the current surface tolerance, those with a smaller value are removed. The surface tolerance is increased after each iteration. This value controls the maximum time that the algorithm will run for.
Data Dependence
By applying data-dependent simplification, the data will also be used as part of the simplification criteria. If data is attached to the surface, purely geometry criteria is not sufficient to get an appropriate representation without loosing essential information, especially at high values of reduction. This generally occurs when the size of the final triangles is greater than the size of the data features.
The DataReduceTriCells method can take the surface data into account by calculating an error criteria for the data at each node that is then combined with the geometric error (see Weight). Two methods of calculating the data criteria have been implemented, the first based on a data gradient approximation, the other on a data curvature approximation. Only the first data component of the input is used in calculating the data dependent criteria.
Weight
Data dependence weight (0->1) between data and geometric criteria. Weights closer to 1 will put the emphasis on surface simplification based on the mapped data, while a weight closer to 0 will use the standard geometry criteria.

Preserve Edges
The method will attempt to preserve sharp edges. This is useful for preserving the shape of models as generated by CAD software.
Final Reduction
This is the percentage of nodes that the algorithm was able to remove. The Reduction Target may not always attainable but also each iteration must be completed before the algorithm stops and the Final Reduction may therefore be greater than the Reduction Target.

Dynamic
Change behavior from "Manual" to "Dynamic". In "Dynamic" mode the method will execute like any other module, when a input or parameter changes, otherwise pressing the Reduce button is required to force the method to execute.

Reduce
Force the method to execute when in "Manual" mode.

Output Port

out
Mesh containing the decimated mesh as a single tri cell_set. If Node_Data was present it will be created and the Node_data mapped to the remaining nodes.

Utility Macros

DataSurfRedUI, DataSurfaceReduction

Example

Libraries.Examples.Visualization.Reduct_AltObject
v/dv_examp/reduct1.v

Libraries.Examples.Visualization.Reduct_DataSurfaceReduction
v/dv_examp/reduct2.v

Libraries.Examples.Visualization.Reduct_Compare

v/dv_examp/reduct3.v

File

v/reduct.v

Acknowledgements

This development was partly supported by the European Community in the ESPRIT Project CONTENTS(EP 29732).

See also related modules



TOC PREV NEXT INDEX