# Global & thread-local settings

In addition to the processor settings that are connected to the actual processing objects, there are also global settings and thread-local settings.

These settings contain advanced parameters and affect all processing done while the library remains loaded.

# Global settings

Global settings apply to all processes spawned from a specific Simplygon singeleton instance. Most of these settings are also availible through serialized pipelines, but some are limited to API usage

# Pipeline-accessible settings

# DefaultTangentCalculatorType

Enum - Describes what type of tangent calculation will be used in all Simplygon processing

# AllowDirectX

Boolean - Determines whether to allow intarnal DirectX usage. Disabling this may silently disable some features.

# AllowGPUAcceleration

Boolean - Deterines if the GPU is allowed to be used in processing calculations, currently primarily affects visibility related algorithms.

# AllowTextureSamplingInterpolation

Boolean - Determines whether to interpolate texture sampling or to use nearest neighbor.

# AllowShadingNetworkCaching

Boolean - Makes casting run much faster for complex material networks, but may break exotic usecases where the shading network is somehow modified while running.

# AutomaticGuidGeneration

Boolean - If true, all classes using guid identifiers will have unique ids generated at contruction. Otherwise, they will need to be user set.

# CacheToDisk

Boolean - Causes some data to be offloaded to disk while processing instead of being kept in memory. Limited effect.

# PreventDirectXThreadingOptimizations

Boolean - If true, sets the D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS flag in internal DirectX initializations.

# LogicalCoreLimit

Integer - Determines the max number of cores Simplygon will utilize when processing.

# MaskFPExceptions

Boolean - When true, the floating point exception mask is overridden by Simplygon processes internally, silencing non-critical floating point exceptions. If this is turned off, many processings will start throwing exceptions regularly.

# ValidRealThreadhold

Float - Sets the upper bound of what is considered a "valid" real, values above this will be capped in the processors to avoid overflows.

# ValidateProcessing

Boolean - If this is true, Simplygon will run extra testing internally to find any bad data or bad results that might happen. This is for debugging purposes and will slow down the processing time significantly.

# ValidateProcessingAssertOnError

Boolean - If this is true, Simplygon will abort if the ValidateProcessing found something wrong.

# ValidateProcessingDebugLevel

Integer - This value can be 0, 1 or 2. 0 will run the least amount of checks, and 2 will run the most amount of checks (and thus be the slowest of them all).

# ValidateProcessingOutputDirectory

String - The directory where Simplygon will store output files from the ValidateProcessing.

# API settings

# EnableLog

Boolean - Controls whether or not Simplygon will do any logging.

# LogToFile

Boolean - Whether to log output text to file, or stdout if false.

# FlushLogPerRow

Boolean - Whether to flush the log per row or not.

# LogOutputToTraceWindow

Boolean - Outputs the log to the debug terminal

# Thread-local settings

Thread-local settings are set in the same way as global settings, but only apply to the current thread. These are not saved in pipelines.

# LogFileName

String - The path to the log file, if enabled in GlobalSettings.

# Example - How to set global & thread-local settings

The following example shows how to set global and thread-local settings.