Description Data structure that allows configuration of an MPCAdvancedRaytrace.
Definition Type T_MPCADVANCEDRAYTRACE action As String bufferTraceRayCopy As Boolean doublePrecision As Boolean forceMonteCarlo As Boolean log As Boolean logFile As String maxSplitDepth As Long maxSplitDepthDelta As Long maxEventsPerPath As Long minimumRayDistanceFactor As Single rayBufSize As Long rayPaths As Boolean raySurfIntersectTolFactor As Single randomNumberSeed As Huge_ randomNumberSeedGeneration As String reinitialize As Boolean reloadDoc As Boolean renderFile As String sourceTraceRayCopy As Boolean suppressFacetData As Boolean suppressSurfPowers As Boolean
Structure Members action Determines whether the raytrace uses the Trace CPU Rays, Trace GPU Rays, or Trace Render mode. Options are:
bufferTraceRayCopy When True, CPU generated or existing parent rays will return to the ray buffer at the end of the trace; note that for rays to return the action member needs to be "CPU" or "Exist". When False, no rays are returned to the ray buffer following the trace.
doublePrecision When True, the GPU raytrace and analyses will be performed with 64-bit precision. When False, the GPU raytrace and analyses will be performed with 32-bit precision. An important consideration when using the doublePrecision option is that most boards will incur a reduction in performance in 64-bit mode. Therefore, double precision mode should only be used for models where the extra precision is determined to be necessary in order to achieve accurate results.
forceMonteCarlo As Boolean When True, the Parent Ray Specifier setting on the Raytrace Properties will be ignored and the GPU raytrace will be forced to use Monte-Carlo mode. Note that this does not modify the Raytrace Properties of the FRED document. This can be useful when debugging or testing a model on the GPUs.
log When True, MPC activity will be logged to a text output file.
logFile Full file path location where the MPC logfile will be written.
maxEventsPerPath When accumulating raytrace path data, paths with total event counts larger than this value will not be tracked. “Overflow” paths, with total event counts larger than this value, will not be available for processing in the Raytrace Paths table or Stray Light Report.
maxSplitDepth Specifies the total allowed ancestry levels (specular + scatter) to be supported by the GPU device during a split-mode raytrace. FRED will compute this value based upon the existing ray trace controls, and the value is shown as read-only with the MPC Advanced Trace dialog in the GUI. Whilst this member is available for modification via script, it is suggested to change the maxSplitDepth in increments via the maxSplitDepthDelta member instead.
This value takes precedence over the maximum supported ancestry level depth specified on the Raytrace Properties in the FRED model. Unlike the CPU raytrace, where memory allocation is dynamic and can expand as needed to accommodate growing ray counts due to ray splitting, the memory required for a GPU raytrace must be allocated at the start of the raytrace. This setting facilitates the allocation of the GPU memory needed to support increasing ray counts in a split-mode raytrace. If the raytrace properties in the model use the Monte-Carlo parent ray specification, or the forceMonteCarlo option is set to True in the T_MPCADVANCEDRAYTRACE data structure, then this member is not applicable.
maxSplitDepthDelta Specifies an increment / decrement to the maxSplitDepth member. The total allowed ancestry levels (specular + scatter) to be supported by the GPU device during a split-mode raytrace is the maxSplitDepth + maxSplitDepthDelta. The default value is 0.
minimumRayDistanceFactor Specifies a multiplier to the default minimum intersection distance for which a ray must propagate in order to achieve a ray intersection distinct from the previous ray intersection. The default value is 1 and in general we do not recommend changing the value from its default setting.
rayBufSize Maximum number of rays that are simultaneously stored and traced in the GPU ray buffer. This should typically be a value between 1 million and 10 million. Note that this does not restrict the total number of rays that can be traced on the GPU.
rayPaths When True, raytrace paths will be tracked on the GPU as long as the raytrace properties of the model use the Monte-Carlo mode. If ray-splitting is allowed by the raytrace properties, raytrace paths will not be tracked regardless of this setting.
raySurfIntersectTolFactor Specifies a multiplier to the default ray/surface intersection precision tolerance. The default value is 1 and in general we do not recommend changing the value from its default setting.
randomNumberSeedGeneration As String Specifies random number seed generation on the GPU. Options are:
randomNumberSeed As UHuge_ User-specified random number seed to be used by the GPU. Only applies when the randomNumberSeedGeneration member is “User”. If the seed value being provided is larger than 263, the value must be supplied with the UH designation at the end of the number (i.e. 15597116775934437842uh). There is no harm in always providing the seed value with the UH designation, though it is not always required. An overflow error will occur if a seed value larger than 263 is provided without the UH designation.
reinitialize As Boolean Optional override that forces the GPU to be re-initialized prior to performing any requested actions. Under normal operation, this option should never need to be applied.
reloadDoc As Boolean Optional override that forces the FRED document to be reloaded into the GPU prior to performing any raytracing. Under normal operation, this option should never need to be applied.
renderFile As String Full file path specification of the rendered bitmap image file generated when action = “render”.
sourceTraceRayCopy When True, GPU generated parent rays will return to the ray buffer at the end of the trace; note that for rays to return the action member needs to be "GPU". When False, no rays are returned to the ray buffer following the trace.
suppressFacetData As Boolean If True, data collection related to the data collector surface and visualization feature is suppressed during the GPU raytrace, which may provide additional raytrace speed improvements due to the reduced computational workload.
suppressSurfPowers As Boolean If True, data collection related to the surface incident/absorbed power analysis feature is suppressed during the GPU raytrace, which may provide additional raytrace speed improvements due to the reduced computational workload. If True, the Analyses > Surface Incident/Absorbed Power report will not report values associated with the GPU raytrace.
Used as Parameter in
See Also
|