TINMAN 3D / REALTIME TERRAIN
Software Development Kit - User Manual

enum CoordinatePrecision in Tinman.Terrain.Vertices.Formats

Enumeration of precision fixes for feeding 30-bit (texture) coordinate values into the GPU pipeline.

enum CoordinatePrecision  

Items

Float = 0

Coordinate values are clamped to 0 and MaxCoord, normalized to [0..1] (i.e. divided by MaxCoord) and written as 32-bit floating point values.

Remarks:

Assuming that 32-bit floating point precision is preserved in the GPU pipeline, the Float coordinate precision can be used for maps of a Size up to 8388609 (2^23+1).

FloatHigh = 1

Coordinate values are clamped to 0 and MaxCoord and the lower 15-bits are masked out. The higher 15-bits are then normalized to [0..1] (i.e. divided by MaxCoord) and written as 32-bit floating point values.

Remarks:

Assuming that the GPU pipeline is capable of preserving 15-bits of floating-point mantissa precision, maps up to MaxSize can be used (when used in conjunction with FloatLow).

FloatLow = 2

Coordinate values are clamped to 0 and MaxCoord and the higher 15-bits are masked out. The lower 15-bits are then normalized to [0..1] (i.e. divided by MaxCoord) and written as 32-bit floating point values.

Remarks:

Assuming that the GPU pipeline is capable of preserving 15-bits of floating-point precision, maps up to MaxSize can be used (when used in conjunction with FloatHigh).

Integer = 3

Coordinate values are clamped to 0 and MaxCoord and written as 32-bit integer values.

Remarks:

Full Integer precision may not be supported by the GPU resp. graphics API.