Raster Services Scene Objects Globals Table of Contents

Scene Info

Availability  LightWave® 6.0
Component  Layout
Header  lwrender.h

The scene info global returns information about the current scene. This information is read-only and reflects the state of the scene at the time the global function is called. You can set these parameters using commands.

Beginning with LightWave® 9, certain portions of each scene camera's render settings can be re-directed to use settings from a "global" camera. This global camera contains settings for resolution, motion blur, and mask values that can be shared by one or more cameras in the scene. The values reported in the Scene Info global for resolution and motion blur may be the values contained by the global camera, if the selected camara has had its settings for that area redirected (see the Camera Info global for information about querying the state of these redirects). For example, if the global camera has a frame size setting that is different than the selected camera's frame size, the values below for frameWidth and frameHeight may be different for the same camera depending upon the state of the "Use Global" flag for these settings.

Global Call

   LWSceneInfo *sceneinfo;
   sceneinfo = global( LWSCENEINFO_GLOBAL, GFUSE_TRANSIENT );
The global function returns a pointer to an LWSceneInfo.
   typedef struct st_LWSceneInfo {
      const char *name;
      const char *filename;
      int         numPoints;
      int         numPolygons;
      int         renderType;
      int         renderOpts;
      LWFrame     frameStart;
      LWFrame     frameEnd;
      LWFrame     frameStep;
      double      framesPerSecond;
      int         frameWidth;
      int         frameHeight;
      double      pixelAspect;
      int         minSamplesPerPixel;
      int         maxSamplesPerPixel;
      int         limitedRegion[4];
      int         recursionDepth;
      LWItemID   (*renderCamera) (LWTime);
      int         numThreads;
      const char  *animFilename;
      const char  *RGBPrefix;
      const char  *alphaPrefix;
      int         antialiasing;
      int         enhancedAA;
      int         adaptiveSampling;
      float         adaptiveThreshold;
      int         filter;
      int         dblSidedAreaLights;
      int         loadInProgress;
      int         radiosityType;
      int         radiosityIndirectBounceCount;
      int         radiosityRaysPerEvaluation1;
      int         radiosityRaysPerEvaluation2;
      double      radiosityIntensity;
      double      radiosityAngularTolerance;
      double      radiosityMinimumPixelSpacing;
      double      radiosityMaximumPixelSpacing;
      double      radiosityMultiplier;
      const char  *radiosityFileName;
      double      radiosityMinimumPixelSpacing;
      double      causticsIntensity;
      int         causticsAccuracy;
      int         causticsSoftness;
      int         radiosityFlags;
      double      dynamicsRangeMin;
      double      dynamicsRangeMax;
      double      saturation;
      int         pixelFilterForceMT;
      int         has_multithreaded_filters;
      int         useZminmax;
      double      zmin;
      double      zmax;
      int         rendermode;
      int         calculateallnormals;
   } LWSceneInfo;
name
User's name for the scene.

filename
Filename of the scene file.

numPoints, numPolygons
Total number of points and polygons for all the objects in the scene.

renderType
The render type, which can be one of the following.
LWRTYPE_WIRE
LWRTYPE_QUICK
LWRTYPE_REALISTIC

renderOpts
This is a combination of bits for different rendering options. The bit flags are
LWROPT_SHADOWTRACE
LWROPT_REFLECTTRACE
LWROPT_REFRACTTRACE
LWROPT_FIELDS
LWROPT_EVENFIELDS
LWROPT_MOTIONBLUR
LWROPT_DEPTHOFFIELD
LWROPT_LIMITEDREGION
LWROPT_PARTICLEBLUR
LWROPT_ENHANCEDAA
LWROPT_SAVEANIM
LWROPT_SAVERGB
LWROPT_SAVEALPHA
LWROPT_ZBUFFERAA
LWROPT_RTTRANSPARENCIES
LWROPT_RADIOSITY
LWROPT_CAUSTICS
LWROPT_OCCLUSION
LWROPT_RENDERLINES
LWROPT_INTERPOLATED
LWROPT_BLURBACKGROUND
LWROPT_USETRANSPARENCY
LWROPT_VOLUMETRICRADIOSITY
LWROPT_USEAMBIENT
LWROPT_DIRECTIONALRAYS
LWROPT_LIMITDYNAMICRANGE
LWROPT_CACHERADIOSITY
LWROPT_USEGRADIENTS
LWROPT_USEBEHINDTEST
LWROPT_CAUSTICSCACHE
LWROPT_EYECAMERA
LWROPT_UNPREMULTIPLIEDALPHA
LWROPT_EVENFIELDS is set only if field rendering is on and the first line of the output image is from the field that comes first in time.

frameStart, frameEnd
The numbers of the first and last frame defined for the scene. These are the rendering limits, not to be confused with the limits set by the user for previews (which you can get from the interface info global).

frameStep
The step size, in frames, during rendering (the user setting for the Frame Step).

framesPerSecond
Number of frames per playback second. This will ordinarily be 24 for film, 30 for NTSC video and 25 for PAL video. Note that this is the number of frames, not fields.

frameWidth, frameHeight
Rendered image size in pixels.

pixelAspect
The aspect ratio of the pixels in the image, expressed as width/height. Values greater than 1.0 mean short wide pixels and values less than 1.0 mean tall thin pixels.

minSamplesPerPixel, maxSamplesPerPixel
Limits on the number of samples per pixel in the final image. Because of different rendering techniques and adaptive sampling it is impossible to compute a precise number of antialiasing samples at any pixel, but this gives a range for the current rendering options.

limitedRegion
The extents of the limited region area, in pixels. The extents are given in the order x0, y0, x1, y1.

recursionDepth
The maximum recursion depth for raytracing.

camID = renderCamera( time )
Returns the item ID of the camera that will render the frame at the specified time.

numThreads
The number of threads of execution that will be used during rendering.

animFilename
The name of the current animation file.

RGBPrefix
The current RGB file saving prefix

alphaPrefix
The current RGB file saving prefix

antialiasing (rev.4+)
Current antialiasing setting, where zero (0) is off, or a value between 1 and 4 to indicate increasing antialiasing types.
LW8.2: current antialiasing setting 0=off, 1-lowest, increasing for higher values (currently up to 4=extreme), 100 to 114; use PLD (with level 1 being 100 and level 15 being 114)

enhancedAA (rev.4+)
Boolean value that indicates if Enhanced AA is enabled. 1=enabled, 0=disabled

adaptiveSampling (rev.4+)
Boolean value that indicates if Adaptive Sampling is enabled. 1=enabled, 0=disabled

adaptiveThreshold (rev.4+)
This contains the adaptive sampling threshold and is only valid when adaptiveSampling is enabled.

filter (rev.4+)
Current Soft Filter setting. A value of zero (0) indicates no filter, while a value of one (1) indicate Soft Filter is enabled.
LW8.2+:
bit 0:
  • 0=no filter
  • 1=soft filter
bits 1-5: indicate reconstruction filter:
  • 1-3=box(std,sharp,soft)
  • 4-6=Gaussian(std,sharp,soft)
  • 7-9=Mitchell(std,sharp,soft)
  • 10-12=Lanczos(std,sharp,soft)

dblSidedAreaLights (rev.4+)
Current setting for double sided area lights. on/off.

loadInProgress (rev.5+)
A value that indicates whether or not a scene load is currently in progress. Zero (0) means no scene loading is taking place, 1 means a scene load (fresh) is occuring, and 2 means that load-from-scene is bringing in new elements to the existing scene.

radiosityType (rev.5+)
This member can hold one of several values.
LWRT_BackDrop
Throws rays in random distribution, if miss, used backdrop color.
LWRT_MonteCarlo
Throws rays in a random distribution.
LWRT_FinalGather
Final Gather implementation.

radiosityIndirectBounceCount (rev.5+)
Number of radiosity bounces.

radiosityRaysPerEvaluation1 (rev.5+)
RPE, number of primary rays cast per evaluation point. These are the rays cast by each primary evaluation point.

radiosityRaysPerEvaluation2 (rev.5+)
SBR, number of secondary rays cast per primary ray. These inform the primary evaluation point with further shading details.

radiosityIntensity (rev.5+)
Scales the intensity of the radiosity solution.

radiosityAngularTolerance (rev.5+)
Defines the density of placement of radiosity samples for curved surfaces.

radiosityMinimumPixelSpacing (rev.5+)
Min.PS, minimum spacing of radiosity samples between output resolution pixels.

radiosityMaximumPixelSpacing (rev.5+)
Max.PS, maximum spacing of radiosity samples between output resolution pixels.

radiosityMultiplier (rev.5+)
Scales the output resolution of the camera internally to compute the GI at lower/higher resolution.

radiosityFileName (rev.5+)
Location on the disk where the radiosity cache file is stored.

causticsIntensity (rev.6+)
Scales the intensity of the caustic illumination.

causticsAccuracy (rev.6+)
The accuracy of the caustic illumination.

causticsSoftness (rev.6+)
The softness of the caustic illumination.

radiosityFlags (rev.6+)
This is a combination of bits for different radiosity display flags. The bit flags are
LWRDFLG_SHOW_NODES
LWRDFLG_SHOW_CELLS
LWRDFLG_SHOW_COLOR_CELLS
LWRDFLG_SHOW_SAMPLES
LWRDFLG_SHOW_MISSING_PREPROCESS_SAMPLES
LWRDFLG_SHOW_MISSING_RENDER_SAMPLES
LWRDFLG_SHOW_SECOND_BOUNCE
LWRDFLG_SHOW_BEHIND
LWRDFLG_USE_BUMPS

dynamicsRangeMin (rev.6+)
Dynamic range minimum value, typically 0.

dynamicsRangeMax (rev.6+)
Dynamic range maximum value, typically 1.

saturation (rev.6+)
Color saturation of the rendered frame.

pixelFilterForceMT (rev.6+)
Defaults to 0 to use the pixel filter flags to determine multi-threaded compatibility. Set to 1 to force pixel filters to render multi-threaded.

has_multithreaded_filters (rev.6+)
All active pixel filters are capable of multi-threading.

useZminmax (rev.6+)
The z buffer has been pre-normalized to the following minimum and maximum values.

zmin (rev.6+)
Pre-normalized minimum z value.

zmax (rev.6+)
Pre-normalized maximum z value.

rendermode (rev.6+)
Incicates which render mode the render was started in
lwrm_None
lwrm_SceneBake
lwrm_Scene
lwrm_FrameBake
lwrm_Frame
lwrm_Inspire
lwrm_SelectedObject

calculateallnormals (rev.6+)
This flag returns the state of the CalculateAllNormals command that forces the calculation of normals, in layout or while rendering.
enableLenseFlares (rev.7+)
This flag returns the state of the lense flare enable boolean.
lenseFlareIntensity (rev.7+)
This return the value of the lense flare intensity at the current time.

Example

This code fragment calculates the running time and frame aspect.

   #include <lwserver.h>
   #include <lwrender.h>

   LWSceneInfo *lwsi;
   double duration, frameAspect;

   lwsi = global( LWSCENEINFO_GLOBAL, GFUSE_TRANSIENT );

   if ( lwsi ) {
      duration = ( lwsi->frameEnd - lwsi->frameStart + 1 )
         / lwsi->framesPerSecond;
      frameAspect = lwsi->pixelAspect * lwsi->frameWidth
         / lwsi->frameHeight;
   }