9.5 Changes Table of Contents

9.6 Changes

November 15, 2008

This is a list of the changes in the LightWave® 9.6 release that affect the SDK.

lwpanel.h

  • A new DISTSLIDER_CTL control has been added.
  • The CTL_MOUSEBUTTON controller attribute has been added which contains the mouse buttons which are pressed, to complement the CTL_MOUSEX and CTL_MOUSEY attributes.

lwrender.h

  • Functions have been added to LWBoneInfo to support the new bulging and displacement parameters. This brings the version number of the global up to 5.
  • The LWSceneInfo global has been expanded to include new radiosity flags, and hence has its version number increased to 6.
  • New raytracing functions (LWRayTraceDataFunc and LWRayTraceShadeFunc) were added to the Rendering Functions. See the raytracing functions page for a description of these.
  • The itemColorRgba function in LWInterfaceInfo has been expanded to include a state parameter, which indicates the state of the item for which to obtain the color. Previously only the color of the item in its current state could be returned. This has necessitated increasing the version number of the LWInterfaceInfo global to 7.

lwcustobj.h

  • To support part selection for gizmos, the LWCustomObjAccess structure has been expanded to include setPart.

lwgizmo.h

  • The gizmo interface has been changed by the inclusion of a parts array in pickItems. The version number of the interface has been bumped to 3.

lwmeshedt.h

  • The st_MeshEditOp interface has been expanded to include routines to create/destroy/manipulate vertex maps. The version number of the interface has been bumped to 6.

lwfilter.h

  • Some more buffers have been added. Some of the new buffers are computed from other buffers, and therefore require those other buffers to be available. Furthermore, as there aren't any bits left to represent those buffers for the flags() callback, requesting access to the new buffers is done by requesting the needed combination of other buffers. To avoid confusion, the buffer flags (LWBUFF_*, which are bitmasks, returned from the flags() callback) have now been separated from the buffer types (LWBUF_*, which are indices, passed to getLine(), getVal(), and setVal()).

lwextrend.h

  • A new class of plugins has been added, used to implement an external renderer. External renderers replace the built-in LightWave® renderer.

Commands: Layout

  • The ParentInPlace command now takes an optional argument to set the state, instead of toggle.
  • The ClearSelected command now takes an optional argument to partially or completely supress the confirmation dialog.
  • The DirtyMotion command has been added, which marks the motion of the currently selected item as needing re-evaluation.
  • A new EnableMC toggle command has been added to complement the EnableIK command. It disables motion controllers.

LScript 2.13.1

  • The Shader Access data member polNum is now deprecated. This data member reports polygon index values in a zero-based format which is incongruent with LScript's 1-based idiom.
  • A new Shader Access data member called polIndex has been added to replace the deprecated polNum. This new data member reports the polygon index value using a 1-based format.
  • Added the following new data members to the Scene Object Agent:
    • doublesidedarealights (true/false)
    • loadinprogress (true/false)
    • radiositytype
      • Contains one of the following three values:
        • LWRT_BACKDROP
        • LWRT_MONTECARLO
        • LWRT_FINALGATHER
    • radiosityindirectbouncecount (int)
    • radiosityraysperevaluation1 (int)
    • radiosityraysperevaluation2 (int)
    • radiosityintensity (double)
    • radiosityangulartolerance (double)
    • radiosityminimumpixelspacing (double)
    • radiositymaximumpixelspacing (double)
    • radiositymultiplier (double)
    • radiosityfilename (string)
    • causticsintensity (double)
    • causticsaccuracy (int)
    • causticssoftness (int)
    • radiosityflags[9]
      • Each entry is a Boolean true/false that corresponds to one of the following radiosity flags:
        • 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
  • Expanded the SceneInfo.renderopts[] array by 3 to accommodate the USEGRADIENTS (28), USEBEHINDTEST (29), and CAUSTICSCACHE (30) flags.
  • Added the LWRT_BACKDROP, LWRT_MONTECARLO and LWRT_FINALGATHER constants to the environment for use with the SceneInfo.radiositytype value.
  • Added the Layout RadiosityFlags() command. This command is used to set one or more radiosity flag values. These values are passed to the command, logically or'ing multiple flags to enable them. Any flag values not included in the resulting or'd value are disabled.
  • Added the following environment constants for use with the RadiosityFlags() command:
    • 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
  • Due to potential name conflicts, the following Procedural Texture (Shader) flags have been deprecated:
    • NORMAL
    • COLOR
    • LUMINOUS
    • DIFFUSE
    • SPECULAR
    • MIRROR
    • TRANSPARENT
    • ETA
    • ROUGHNESS
    • RAYTRACE
    They have been replaced with the following prefixed equivalents:
    • PT_NORMAL
    • PT_COLOR
    • PT_LUMINOUS
    • PT_DIFFUSE
    • PT_SPECULAR
    • PT_MIRROR
    • PT_TRANSPARENT
    • PT_ETA
    • PT_ROUGHNESS
    • PT_RAYTRACE
    New code should use the prefixed versions, and older code should migrate in preparation for the removal of the original flags in some later release.
  • The following new flags have been added to the Procedural Texture (Shader) class:
    • PT_TRANSLUCENT
    • PT_DIFFUSE_SHADE
    • PT_SPECULAR_SHADE
    • PT_REFRACT_SHADE
    • PT_REFLECT_SHADE
  • Due to potential name conflicts, the following Image Filter flags have been deprecated:
    • SPECIAL
    • LUMINOUS
    • DIFFUSE
    • SPECULAR
    • MIRROR
    • TRANS
    • RAWRED
    • RAWGREEN
    • RAWBLUE
    • SHADING
    • SHADOW
    • GEOMETRY
    • DEPTH
    • DIFFSHADE
    • SPECSHADE
    • MOTIONX
    • MOTIONY
    • REFLECTRED
    • REFLECTGREEN
    • REFLECTBLUE
    • RED
    • GREEN
    • BLUE
    • ALPHA
    They have been replaced with the following prefixed equivalents:
    • IF_SPECIAL
    • IF_LUMINOUS
    • IF_DIFFUSE
    • IF_SPECULAR
    • IF_MIRROR
    • IF_TRANS
    • IF_RAWRED
    • IF_RAWGREEN
    • IF_RAWBLUE
    • IF_SHADING
    • IF_SHADOW
    • IF_GEOMETRY
    • IF_DEPTH
    • IF_DIFFSHADE
    • IF_SPECSHADE
    • IF_MOTIONX
    • IF_MOTIONY
    • IF_REFLECTRED
    • IF_REFLECTGREEN
    • IF_REFLECTBLUE
    • IF_RED
    • IF_GREEN
    • IF_BLUE
    • IF_ALPHA
    New code should use the prefixed versions, and older code should migrate in preparation for the removal of the original flags in some later release.