Rhino 5 - Extensions

Extensions are applied to geometry to change how it is rendered. In some cases, an extension will modify its geometry, while in others, it will replace it entirely. The extensions currently available in this window are:

To create a new extension, right-click and choose the type of extension you wish to create. To assign an extension, select the desired geometry, and use right-click > Assign to Selected, or use the Extensions list found in the Object Properties panel. To edit the parameters for an extension, double-click it to open it in the Extension Editor (shown here editing a Maxwell Grass extension):

The Extension Editor works much like the Material Editor: to edit a given extension, select it in the Extensions list. Following is information about the various extensions.

Maxwell Grass

Maxwell Grass is a modifier – it adds grass blades to assigned geometry. There is not a great deal to say about it here, which is not covered in the main Maxwell Grass documentation.

Maxwell Sea

As of plugin version 3.0.3, there are two ways of using the Maxwell Sea Extension: by directly assigning a Maxwell Sea Extension to arbitrary geometry, or by using the Maxwell_CreateMaxwellSea command (also available from the Functions toolbar):



In the first case, the assigned geometry will be replaced at render-time by a sea surface generated using Next Limit RealFlow technology, with the extent of that sea surface being determined by the axis-aligned bounding box of the object. As a result, it should generally be assigned to a simple box, and not a plane.

The Maxwell_CreateMaxwellSea command, on the other hand, prompts for Size X, Y, and Z (in meters), as well as a Type, which may be set to either PointCloud or Mesh. Upon completion of the command, a new Maxwell Sea Extension will be added to the Extensions window, and assigned to an instance of a block definition created to represent the sea surface. This block definition will contain either a point cloud or a mesh, as according to the Type selected, this being generated by the MaxwellSea.mxx extension, on behalf of the plugin, according to the parameters defined in the Maxwell Sea Extension:



As opposed to the previously-described direct-assignment method, the resulting block instance may be transformed (hence the reason it is represented using a block) and copied as desired, with changes being shown in real time in Maxwell FIRE. Changes made to the Maxwell Sea parameters themselves may be updated as desired using the Update function, found in the Maxwell Sea Extension user interface:


Using this function will update the sea surface, both in Maxwell FIRE, and in the block definition in Rhino; it is explicit, rather than real-time, since it can be quite expensive to generate the representation. Should you wish to switch the block definition from the Mesh type to the PointCloud type, or vice versa (the point cloud is much lighter weight, in terms of viewport performance, and is also the only supported option, in the case that Maxwell is not properly licensed on the machine), you can use the Maxwell_SetMaxwellSeaDisplay command, which is also available by right clicking the sea button in the Functions toolbar (the macro in this button is set up to toggle the Type for selected objects).

For information pertaining to the actual Maxwell Sea parameters, please see the main Maxwell Sea documentation.

Animation

Since there is no concept of time in Rhino, it is not possible to automatically make use of the Reference Time parameter in Maxwell Sea; rather it is necessary to animate the scene via script, taking the opportunity at the export of each frame, to set the Maxwell Sea Reference Time value as desired. Here is a macro that will render 100 frames, animating the sea at 25 frames per second:

_NoEcho
_-RunScript (
  Rhino.Command("_Maxwell_BeginAnimation")
  For i = 1 to 100
    'Rhino.Command "_ViewFrameNumber " & i
    'Rhino.Command "_BongoSetCurrentTick " & i
    Rhino.Command "_Maxwell_SetMaxwellSeaReferenceTime " & i/25
    Rhino.Command "_Maxwell_RenderToMxs"
  Next
  Rhino.Command("_Maxwell_EndAnimation")
)

If you paste this into Rhino's Macro Editor and run it (or put it in the Command of a toolbar button), it will export a 4-second animation with the sea animated to match the frame rate. As shown in the commented-out (i.e. green) lines, it is also possible to combine this with animations created using Rhino's Animation Tools or Bongo; it is simply necessary in those cases to set the current frame (assuming that enough frames have been defined, using e.g. SetTurnTableAnimation) before exporting each MXS:

Maxwell Volumetric

The Maxwell Volumetric Extension replaces its assigned object with a volume containing a simulation of participating media; it is the host object's axis-aligned bounding box which will define the volume. If an object has both Maxwell Sea and Maxwell Volumetric extensions assigned, it is the Maxwell Sea extension that will be exported. For information on its actual parameters, please see the main Maxwell Volumetric documentation.


Maxwell Scatter

The Maxwell Scatter extension is a modifier. It is applied to any object and distributes an mxs file over its surface. Check the Maxwell documentation related for more information: Maxwell Scatter