What Was New In Krakatoa v1.5.1
For the bullet points Change Log, see here.
Once again, let's start with the most visible changes.
Because the website was moved to a new address right after the 1.5.0 release, all Help buttons had to be updated to open the documentation pages on the site.
New History options can be found in the Global Render Values rollout - these allow you to pick a color value for Background, Color, Emission, Absorption and Density override based on values found in history records. In other words, if you have used a certain cool color a month or a year ago as a background and want to use it again, you can browse, find and pick it in no time. On related note, all history pickers including the file history in the Save Partitions and Preference rollouts now use dedicated caching and after a single longer update to generate the cache will open instantaneously from that point on. Also, all history buttons as well as the file and explore buttons now use icons instead of text.
A new Configure License Servers button and dialog were added to Preferences rollout to specify the FlexLM servers providing floating licenses (including Krakatoa and Deadline). It reads and writes the registry key pointing at the license server.
The right-click menu of the SAVE PARTICLES button now provides additional "Save Particles..." and "Explore Save Particles Path..." options when in Save Particles mode. These are duplicates of the features already available in the Save Particles rollout.
In the Channels rollout, the custom channel names now check for valid alphanumeric characters and filter out spaces and special characters. The [+] and [X] buttons have also been changed to icons.
A new Selection channel has been introduced to the list of channels to save and can be used to save selection and soft selection data to PRT files. See farther on this page for details on using Selection channels in MagmaFlow to affect Deformation Modifiers.
The defaults of the Age and LifeSpan channels were changed to int32 since int was not enough to hold large tick values, resulting in incorrect calculations in MagmaFlow.
The Render History records now contain ViewTM, ViewType and Camera entries. Double-clicking the ViewTM entry will set the current view to the saved view, while double-clicking the Camera (which is saved if the active view was a camera or light) will look for a camera or light with that name and set the current view to it if found.
The Save History option in the Presets and History rollout and the extended VFB controls in 3ds Max 2009 and higher is now sticky per scene (It used to reenable itself after closing and opening the UI to ensure the user would not forget it disabled).
Krakatoa v1.5.1 introduces the Krakatoa Schematic Flow interface as an alternative overview of all renderer settings and as a tool to analyze the data flow inside the system and figure out why the rendering results do not meet expectations. This new interface can be opened via a new MacroScript found in the Krakatoa category. It shows a node for each major operation performed by Krakatoa during rendering or saving particles and lets you right-click most nodes and turn them on/off or select relevant objects in the scene and so on. Also, nodes will turn red when some criteria are not met to warn you that the output might be unexpected, and help you debug your scene. Each node will show a description at the bottom of the dialog when selected.
This feature is experimental and will be extended significantly in future updates.
Some issues with the VFB Extensions when the Krakatoa GUI was not opened/initialized have been fixed. Now the Krakatoa GUI will be initialized automatically to ensure it is initialized whenever a function depends on it being there.
The Krakatoa MacroScript icons will be grayed out if Krakatoa was removed or did not start correctly.
The Switch Back To Previous Renderer icon will only be enabled if Krakatoa is the current renderer. If the current renderer is not Krakatoa, it will be grayed out.
Krakatoa now allows the overwriting of particle sequences that are listed in a PRT Loader but are set to Disabled in Renderer via the per-sequence flags.
The >> buttons have been replaced with arrow icons, and the right-clicking of these buttons has been fixed - now both left and right click open the menus.
The ability to paste particle file paths from the Windows Clipboard into the PRT Loader's file list has been added. You can copy paths from one PRT Loader and paste into another, copy paths from Windows Explorer or any other application and paste into a PRT Loader and so on. Any number of paths (one on each line in the clipboard) can be pasted, but only valid filenames of particle files that do not exist yet on the file list of the PRT Loader will be pasted. When multiple paths are being pasted, they will respect the Preferences settings for enabling in viewport and renderer.
A new Select Partitions To Load dialog has been introduced to the PRT Loader. It provides the ability to select specific partitions, select ranges with every Nth option, filter by name and specify the Enabled In View and Render state.
The PRT Volume was introduced in v1.5.0 and allowed the creation of particles based on a Level Set created internally from a reference mesh. One particle would be created in the center of each voxel calculated by the Level Set, but this meant that in order to produce many particles, it also required to calculate as many voxels.
Version 1.5.1 adds the ability to create more than one particle per voxel, either randomly distributed particles or a grid of NxNxN particles inside each voxel.
In addition, the PRT Volume MacroScript was changed to set the Viewport Spacing to 1/50 of the largest world space Bounding Box dimension of the source object. This way, a Sphere will always create the same number of particles regardless of its radius, and most other shapes will adapt the viewport count pretty well as their size changes.
In all previous versions, both the local partitioning and the One Job, Sequences As Tasks option on Deadline were implemented by calling the renderer in a MAXScript loop, once for each frame. This allowed for relatively precise feedback in the UI or the Deadline Slave Log, but caused some particle systems like Thinking Particles to update the current frame by starting from the first frame. This obviously resulted in exponentially longer frame times.
In v1.5.1, the local partitioning code and the Deadline code were replaced with a new, TP-frienly one which calls the renderer just once for the whole partition instead of once per frame. The only exception is made for Pickup frames which are still processed in a loop on Deadline, but in a single call when partitioning locally.
The outcome is faster and more stable partitioning with full support for all previous features. In addition, when partitioning locally, the Cancel button on the Render Progress dialog can be used to cancel the whole partitioning process.
The >Skip Existing Frames option is now a core feature of Krakatoa (in 1.5.0 and earlier it was a UI-level hack available in Local partitioning mode only). Now it affects regular sequence saving in workstation and slave mode as well as local and Deadline partitioning. It is exposed in both the Save Particles rollout and the Partitioning rollout. When checked, existing particle files will not be overwritten but skipped over, producing only the missing frames of a sequence.
The MagmaFlow node based editor was one of the most important new features in v1.5.0. Given the complexity of this Krakatoa component, it required a lot of bug fixes which make it more streamlined in v1.5.1.
The major new additions to MagmaFlow are the ability to get and set the Selection channel values which correspond to the selection and soft-selection values of mesh vertices in 3ds Max, as well as the new Curve Operator node which can be used to map an input value to a custom curve to produce a new output value of the same type. The curves can be saved as presets and reloaded from disk, flipped about different axes and tweaked in various ways.
Speaking of Selection channel, the Krakatoa Skin Wrap WSM now supports the Selection/Soft-Selection Weights channel, and the PRT Volume will acquire the vertex selection of the source mesh and propagates it into the particles Selection channel .
The Selection channel can then be used to define the Procedural Culling of particles via the new Krakatoa Delete modifier. The Krakatoa Delete Modifier supports both Binary Selection (deletes any particles with selection greater than zero) and Soft-Selection (deleting gradually particles with Selection channel values between 0 and 1 based on the ID channel or Index channel if the ID channel is not available).
Along with the new features, a lot of workflow improvements have been made, including the ability to auto-connect all three inputs of a ToVector to a float input automatically, shortcuts for disconnecting two selected nodes, a new SHIFT+F shortcut for adding a ToFloat Operator used often to convert Integer inputs like Age and LifeSpan to Float values etc.
The Channels lists in the Channel Input and in the Output Node now provide a large number of sorting options in addition to the original order which was based mainly on the source type (PFlow, FumeFX, RealFlow etc.). The most advanced sorting mode is "Usage Frequency" which keeps track of the number of times each channel is being selected (this is done separately for Intput and Output nodes) and sorts the list with the most often used channels on top. After a while, the list will be personalized based on the user's typical workflows. The usage history data will be shared between all Krakatoa installations on the system using a global INI file in the user's local data folder, while the sorting mode itself will be stored separately for each 3ds Max version in the local plugins configuration folder.
To expand the MagmaFlow functionality, the Krakatoa Installer and Startup script have been updated to install some standard BlackOp compound operators into a Standard folder that will appear as a new category in the Depot. In the future, more and more such BlackOps will ship with Krakatoa, for now only two have been provided as a proof of concept.