Krakatoa Build 0.9.13 is now available.
To install, download and unzip krakatoa0913.zip (attached to this thread.) Uninstall any previous Krakatoa builds, then run the krakatoa.0.9.13.msi installer.
Release notes follow.
Note on icons:
The MacroScript icons are still not being installed automatically. To install them manually, copy the content of the \Icons folder found in your installation directory to the \Ui\Icons\ folder in your 3dsMax root directory.
All MacroScripts are located in the Krakatoa category of the Customize User Interface dialog. Currently there are 5 Macros/Icons:
*Krakatoa GUI Toggle
*Krakatoa Log Window Toggle
*Krakatoa Log Window Auto-Open
*Krakatoa Shadows Utility
*Krakatoa Particle Analyzer Utility (NEW)
Also remember that you can Ctrl+Drag the Render icon from the Main Toolbar to copy to any other toolbar if you want to create your own Krakatoa toolbar and feel the way to the main render icon is too long
NEW IN BETA 0.9.13
Changes from Beta Build 0.9.12 to 0.9.13 (as of March 26th, 2007)
NEW SORTING ROUTINES
- Standard - uses the standard single-threaded sorting function of C++. For reference only.
- Radix - uses more memory, but is the fastest method of all.
- FF Threaded - splits the sorting to N threads based on CPU count. Currently, only 1 and 2 CPUs are supported. With 1 CPU it behaves like Standard Sort. With 2 CPUs it sorts almost twice as fast as Standard Sort. With 4 should be as fast as Radix Sort, but with less memory requirements.
PRT LOADER
- Green - all files are available on the current frame
- Yellow - one or more files are missing
- Red - all files are missing on the current frame
- Press Update Graph to generate.
- Check >Auto to automatically redraw when changing Timing settings (WARNING! COULD BE SLOW)
- The current frame will be shown on top of the graph as a dotted black line
- The graph will show good frames in green, frames with missing files in yellow and frames with all files missing in red.
PRT LOADERS ROLLOUT
- Particle Display Mode - lists the display mode of the PRT Loaders (small dots, large dots, lines)
- Missing Frames In Scene - lists the missing PRT frames in all sequences in all PRT Loaders based on the scene range.
- Missing Frames In Render - lists the missing PRT frames in all sequences in all PRT Loaders based on the render range.
PARTICLE ANALYZER UTILITY
MATTE OBJECTS
PARTITIONING
AMBIENT PARTICIPATING MEDIUM EXTINCTION
SOME KNOWN BUGS AND LIMITATIONS
Another workaround - if the Position controller of the culling volume is set to Bezier Position, the object will update correctly. (By default Max uses Position_XYZ which causes the problem.)
Ambient Participating Medium Extinction
One of the new additions to Krakatoa in 0.9.13 is the support for Ambient Participating Medium Extinction (APME or PME for short).
Historically speaking, the base feature has been in Krakatoa since the very beginning and we used it on Superman Returns last year.
It was just not exposed to the Krakatoa GUI as we were unsure what the best way to present it would be.
The current GUI is WIP and might change in the future, but here is a short description of what it does and how it works.
In short, the PME feature implements the physical effect of light energy being affected by the ambient medium it passes through, for example air or water. The typical case and the main reason PME was added to Krakatoa in first place was to simulate particles underwater.
In the case of Superman Returns, both the camera and the particles were submerged, so the calculation took the complete distance from the camera to each particle and calculated an extinction to the Red, Green and Blue channel based on measurements that are available in underwater photography books and online. Krakatoa provides a couple of presets based on such data.
To enable this basic type of PME, simply check the enable checkbutton in the Ambient PME Rollout. To specify an extinction, enter values in the Red, Green and Blue value spinners - these values define how much energy would be absorbed as light passes through the medium. This extinction is exponential, meaning that if 50% are absorbed after a meter, 50 more percent would be absorbed from the remaining energy after the next meter, then again 50 percent from the remaining light after the third meter and so on.
In order to visualize what is happening to a particle of a certain color at a certain distance based on the entered extinction, a gradient will be drawn in the GUI. The color swatch on the left is set by default to white, so assuming your particles are white and lighting is off, the gradient will show the exponential extinction of the Red, Green and Blue channels over distance. You can also enter the Start and the Distance of the range to be visualized - both spinners show User Units so you can enter the values in the system of your liking.
The color on the right shows the color a particle would have when seen through that amount of medium. If you would visualize the gradient at 100m distance and place particles at the same distance to the camera in the scene, the color the particles would render in should match the color of the right side of the gradient.
Note that high Red Extinction values cause more red color to be removed as light travels, so increasing the red value actually reduces the red in the color and turns particles green-blue. Typically, red color is lost underwater after very short distance, followed by the green color, which explains why the depths of the ocean are deep blue.
A more advanced mode we just added to Krakatoa last week allows you to define the volumes of the medium using regular geometry objects similar to the way Matte Objects are used. Instead of hiding particles though, these meshes will define a volume of medium. The object could be an open mesh like a plane - if for example you want to simulate particles underwater while the camera is above water, you could create a water surface using a plane with a noise modifier and specify the mesh as PME Volume by adding it to the corresponding Named Selection Set. Now if you would render particles that are below the surface, their color will be changed according to the Extinction settings. Use a preset from the GUI and the particles will turn blueish with increasing depth and increasing distance from camera.
You can also use closed volumes like spheres or other geometry to define the medium - Krakatoa will trace the path of light through each volume and take into account the combined influence of all volumes. NOTE that currently, different volumes cannot have unique PME settings, each volume defines just one medium. (something worth improving on in future versions)
You can copy the particle color from your material or the Main Controls rollout to the left color picker in the PME GUI if you want to know how your particles would change over distance. But you can also do the inverse operation - after specifying the source color , you could click the right color spinner and enter the color you would like to achieve at the given distance - Krakatoa will calculate the extinction values necessary to achieve that color!
Another thing to keep in mind is that the GUI only represents self-illuminated particles. The moment you enable Lighting, the particle illumination will change significantly because the light from the light source will ALSO be affected by the same exponential extinction and its color reaching every particle will depend on the distance the light has to traved through the medium.
This means that a white particle inside a water medium will be hit by light that has already lost a large part of its red component, then the reflected light would travel through even more water to reach the camera, so the effect would be much darker particles than without the PME effect. You might have to increase your light intensity to do "underwater renderings"...
You can use the Presets system to save your extinction settings to disk for future use, edit the values of existing presets (except for the built-in ones) and remove your own presets (again except the factory ones).
Some additional controls in the UI allow you to change all 3 extinction values simultaneously, which in practice allows you to quickly change the "depth" of the effect without changing the color as the relation between the three values would remain constant, and to align all values by copying the blue into the red and green channels thus producing a gray scale gradient.
Also note that the source and target colors and the percentage of change at the given distance will be written around the color gradient, giving you a numeric feedback of the changes as the extinction values themselves are not in a particular real-world unit but represent a mathematical construct to control an exponential function. The GUI was calibrated so that a value of 50.0 corresponds to 50% extinction after one meter, but all other values do not map to real world values. Also remember that the exponential function represent a limit - the extinction of a color would approach 0.0 but never really reach it, which means that the only way to get real 0 channel is to start with one... ;o) The GUI will try to avoid impossible values and would not allow you to pick a target color that cannot be calculated by reducing the source color.