6.5 Changes
November 4, 2000
This is a list of the changes in the LightWave 6.5 patch that affect the SDK. In most
cases, the changes won't require you to rewrite or recompile your existing code. The most
significant exception is for variant parameters, which have been updated to support
parameters modulated by textures.
lwenvel.h
lwfilter.h
- New buffers (LWBUF_REFL_RED, LWBUF_REFL_GREEN and LWBUF_REFL_BLUE)
have been added to the list of buffers available to image
filters and pixel filters. These contain the RGB
levels for reflections calculated by raytracing and environment mapping.
lwimage.h
- LWIMAGELIST_GLOBAL (Image List) has been
incremented to "LW Image List 3".
- Added LWImageList functions: hasAlpha, alpha, alphaSpot, evaluate.
lwio.h
- Added File I/O type LWIO_BINARY_IFF. This type
supports 4-byte chunk sizes for block reading and writing of IFF files.
lwmeshedt.h
- LWMESHEDIT_VERSION (MeshDataEdit) has been
incremented to 4.
- Added MeshEditOp functions pointVPGet, pointVEval, pntVPMap.
These are for per-polygon vertex mapping.
- The second argument to initUV is now float * rather than float[2] so that initUV
can be used to initialize per-polygon UVs.
lwmeshes.h
- Added vertex map types for color vmaps: LWVMAP_RGB and LWVMAP_RGBA.
- Added LWMeshInfo function pntVPGet for per-polygon
vertex mapping.
lwobjimp.h
- LWOBJECTIMPORT_VERSION (ObjectLoader) has
been incremented to 3.
- Added LWObjectImport function vmapPDV for per-polygon vertex mapping.
- The second argument to pivot and the third argument to vmapVal are now
const.
lwrender.h
- New illuminate special item types LWITEM_RADIOSITY
and LWITEM_CAUSTICS allow callers of illuminate to get information about
global illumination at a spot.
- LWOBJECTINFO_GLOBAL (Object Info) has been
incremented to "LW Object Info 3".
- The texture IDs of the displacement and clip maps of each object can now be obtained
using the new dispMap and clipMap Object Info functions.
- LWINTERFACEINFO_GLOBAL (Interface Info) has
been incremented to "LW Interface Info 2"
- New Interface Info function schemaPos returns the positions of items in
schematic viewports. (Use the new SchematicPosition command to set them.)
- New Interface Info field dynaUpdate contains Layout's Dynamic Update setting,
which can be LWDYNUP_OFF, LWDYNUP_DELAYED or LWDYNUP_INTERACTIVE.
- Added a Time Info global that returns the frame and
time for the image currently being rendered.
lwserver.h
- ServerUserName has been replaced by ServerTagInfo, which among
other things allows plug-ins to specify how they should be added to LightWave's menu
system.
lwshelf.h
lwsurf.h
- LWSURFACEFUNCS_GLOBAL (Surface Functions)
incremented to "Surface Functions 2".
- Added surface channel SURF_VCOL for color vertex maps.
- Added Surface Functions routines getColorVMap and setColorVMap.
lwtexture.h
- LWTEXTURE_VERSION (ProceduralTextureHandler)
has been incremented to 5.
- Texture class plug-ins can now return RGBA levels, in support of which added
LWTextureAccess field txRGBA[4], LWTextureHandler flag LWTEXF_SELF_COLOR
and LWTextureAccess flag LWTXEF_COLOR.
lwtxtr.h
- New LWTxtrParamDesc flag LWGF_AUTOSIZE for
gradient textures that can automatically adjust their min and max.
lwtxtred.h
- LWTXTREDFUNCS_GLOBAL (Texture Editor) has
been incremented to "Texture Editor 2".
- New callback type LW_GradAutoSizeFunc for gradient autosizing.
- New Texture Editor functions for supporting multiselection (selectAdd, selectRem,
selectClr, selectFirst, selectNext) and automatic ranges for
gradient textures (setGradientAutoSize).
lwvparm.h
- New header (variant parameters were formerly defined
in lwenvel.h).
- Added LWVPDT texture data types.
- Added arguments (texture context, event callback, plug-in name and userdata) to the
LWVParmFuncs create function.
- Added a micropolygon argument to getVal for texture evaluation.
- New functions getState, setState, editTex, initMP, getEnv
and getTex. getState and setState replace the hasEnv
and setEnvState functions, which have been removed. The new functions support
textures in addition to envelopes.
lwxpanel.h
Commands: Layout
Commands: Modeler
- The revert command reloads an existing object file.
Miscellaneous
- When items are moved, rotated, or scaled, using either the mouse or the numeric fields,
the appropriate position, rotation, or scale commands are now added to the command
history, which in turn generates events for master
plug-ins.
- The newTime callbacks of shaders, volumetrics, and pixel
filters are now called only after all geometry has been finalized. This fixes a
problem that occurs when plug-ins of one of those classes depend on the results of displacement plug-ins.
- There can now be any number of custom object plug-ins
per object, and they are added using a server pane rather than a popup.
- RGB and alpha image savers are now recorded in scene
files by name rather than by index, preventing problems caused by different machines
having different saver lists. Image saver indices in existing scene files will continue to
work as before.
- When the newTime functions of shaders, environment plug-ins, volumetric
plug-ins and lights, pixel filters, custom object and displacement
plug-ins are called, inverse kinematics have already been computed. Therefore, the Item Info param function now simply returns
existing vectors in such cases (assuming the time argument matches the current time),
allowing those plug-ins to properly account for IK.
- When a subpatch object is being deformed and its Subdivision Order is later than the
deformation, the interior patch points are no longer deformed. In particular, the evaluate
functions of displacement plug-ins will no longer be
called for the patch points.
|