Navigation: Scripting Reference Manual > Data Structures > T_MPCADVANCEDRAYTRACE

 

T_MPCADVANCEDRAYTRACE

 

Contact Us: fredsupport@photonengr.com

 

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:

 

“CPU”

Deletes any existing rays in the CPU ray buffer, generates new rays from all traceable sources, performs a GPU raytrace.

“Exist”

If rays exist in the CPU ray buffer, a GPU raytrace is performed with the existing rays.  If no rays exist in the CPU ray buffer, the rays from all traceable sources are generated and then raytraced on the GPU.

“GPU”

Rays from supported source definitions are generated and raytraced entirely on the GPU.

“Render”

Performs a raytrace render of the current 3D view.

 

 

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:

 

“User”

Value of randomNumberSeed will be supplied by the user manually.

“Auto”

A new random number seed will be generated automatically for each raytrace.

“Preference”

Defers to the random number seed preference found on the Miscellaneous tab of the Preferences dialog.  If the option is checked, random number seeding behaves the same as “Auto”.  If the preference is unchecked, a random number seed value of 0 is used for each raytrace.

 

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

MPCAdvancedRaytrace

 

See Also

MPCRaytrace

MPCAdvancedRaytrace

MPCInitAdvancedRaytrace

 

 

 

 

 

Copyright © Photon Engineering, LLC