The following pages will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2009. For details on each feature, please follow the links to the respective documentation pages.
New additions to MAXScript in 3ds Max 2009 are marked with
This new interface exposes all settings of the Steering Wheel viewport navigation system.
This new interface exposes all settings of the View Cube viewport navigation system.
New property added to the existing IViewportShadingMgr Interface to set the maximum number of active lights in the viewports.
Two more properties and five methods were available but not documented in 3ds Max 2008 and have now been included. They are marked with .
Accessing Active Viewport Info, Type, and Transforms
New index: optional keyword parameter added to viewport.getType() and viewport.getCamera() to query viewports by index instead of the active one.
New method viewport.getID()added to returns the ID of an indexed viewport. When a viewport is maximized, its index will be 1 but its ID will be the viewport's index when not maximized.
CompositeTextureMap : TextureMap
The Composite Map has been completely reimplemented, while still providing backwards compatibility with old scenes containing the previous version of the map.
Color_Correction : TextureMap
The new Color_Correction TextureMap provides means to alter the color information of an incoming texture map by modifying its Brightness, Contrast, Saturation, Exposure, Gain, Gamma, Color Channels and so on.
Unwrap_UVW Spline Mapping
New properties and methods have been added to the Unwrap_UVW modifiers, exposing the new Spline Mapping functionality.
Image Viewer DisplayNotifications
Two new notifications added to the General Event Callbacks: #preImageViewerDisplay and #postImageViewerDisplay
This new interface is returned as notification parameter of the above callbacks before or after a Rendered Frame Window or Image Viewer is opened and can be used to customize the custom User Interface panels.
Rollout Adding and Removing
A new optional keyword border: has been added to the existing addRollout() method to allow for borderless rollouts in the Image Viewer.
This new interface provides access to the new Render Region rubberband gizmo in the Rendered Image Window and in the Viewport.
Controlling the Renderer
A new optional keyword pos: has been added to the render() method to allow the opening of the Rendered Frame Window (also known as Virtual Frame Buffer) at a particular location of the screen or at the last known position (the new default behavior).
Viewport Index, Lock Button and Render Presets
New properties have been added to expose the Lock Button, Viewport Index list and Last Used Render Presets list at the bottom of the Render Scene Dialog.
mental ray renderer > Rendering Algorithms Rollout > Raytrace Acceleration
A new BSP2 option has been added to the existing .RaytraceMethod property, the old Grid and Large BSP options have been removed.
mental ray renderer > Rendering Algorithms Rollout > Trace Depth
Two new.ReflectionsEnable and .RefractionsEnable properties have been added to the mental ray renderer to enable and disable trancing of reflections and refractions.
mental ray renderer > Rendering Algorithms Rollout > Subset Pixel Rendering
The new.enable_subset_pixel_rendering property has been added to mental ray renderer to enable and disable the rendering of changed objects only.
mental ray renderer > Translator Options Rollout > Geometry Caching
The new.Enable_Geometry_Cache, .isGeometryCacheEmpty and .LockGeometryCache properties have been added to the mental ray renderer to control the caching of geometry between iterative renders.
This new interface exposes properties and methods related to managing Final Gather Presets, Final Gather Maps and the clearing of the Mesh Cache.
mr_Proxy : GeometryClass
This new geometry object allows the creation of proxy files on disk which can be loaded by mental ray at render time. This lets you replace very complex geometry with simple stand-ins and load their actual geometry ony when rendering.
mr_Sky : light
Several new properties have been added to the existing mental ray Sky light.
Photometric Light Classes
The Photometric Lights have been rewritten to allow easier creation, conversion between all types and more Area Light shapes.
Photometric Lights Common Properties, Operators, and Methods
All Photometric Lights share the same set of properties and methods. The list of properties has been updated and has also been redesigned to reflect the order the related controls appear in the User Interface.
DaylightAssemblyHead : Helper
New properties and methods related to weather file handling have been added to the Daylight Assembly Head helper.
HairEffect : RenderEffect
New properties have been added to the Hair RenderEffect, exposing the tile memory usage and transparency depth parameters and the Global Illumination/Skylight options.
Lighting_Analysis_Overlay : RenderEffect
This new Render Effect allows the generation of lighting analysis data in screen or world space.
Lighting_Analysis_Data : RenderElement
This new Render Element can be used to output the lighting analysis data to an image file.
LightMeter : Helper
This new Helper can be used to define lighting analysis grids in world space to be used in conjunction with the Lighting Analysis Overlay RenderEffect.
This new Interface provides tools to perform lighting calculations and CSV file data export using any number of active LightMeter Helpers in the scene.
These two new Interfaces provide access to the functionality and the User Interface of the Daylight Simulation Utility.
This new interface can be used to set up the PseudoColor range and type (Linear or Logarithmic).
This new interface exposes a method for converting RGB data into Illumination data by taking into account the different contribution of the three channels.
An optional keyword argument style_sunkenedge: has been added to the existing Label control to display a half-sunken border around it.
An optional keyword argument border: has been added to the existing Button controls to control the display of the border around them. When set to false, the button will appear as one with the UI background. This keyword is NOT available in the pickbutton control.
An optional keyword argument tooltip: and a .tooltip propery have been added to the existing Checkbox and Dropdownlist controls to get and set a tooltip string. Also note that 3ds Max 2009 will now automatically split long tooltips into multiple lines.
Using Bsearch For Fast Table Lookup
The new bsearch() method is used to efficiently find an item in a sorted array.
This new Interface exposes a method to send emails via MAXScript.
The Macro Recorder
The performance of the Macro Recorder when selecting a large number of objects has been improved significantly.
Accessing the Last Rendered Image
An option was added to the getLastRenderedImage() method to copy the image or reference the same bitmap value as the renderer.
General Event Callback Mechanism
Two options were added to the callbacks.show() method to show callbacks by type and/or by ID.
Two properties of the batchRenderViewOps interface were hooked up to incorrect methods internally, making it impossible to access the scene state name and the enabled property. These have been fixed.
Documentation Changes in 3ds Max 2009
New in MAXScript