AWS Thinkbox Discussion Forums

Krakatoa beta 13 is now available

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 :wink:

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


  • Three sorting methods are now available next to the Render Button.
    • 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.
  • The FF Threaded sort was fixed to perform faster when particles are already sorted (bug in 0.9.12)
  • The same routines are used for both the Light and Final Pass. Even more speedup expected in future build.
  • Some temp. performance stats will be printed to the MAXScript Listener after each pass (to be moved to the Log window later)

    PRT LOADER

  • Reordered and compressed the GUI. Note that older PRT Loaders from saved scenes will drop some settings because of new Parameter Block organization. The Rollouts can now be reordered in a multi-column Command Panel for easier access.
  • Added status lamp to Particle Count display to show when frames are missing:
    • 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
  • Counts now update dynamically when dragging the time slider
  • Added a particle count graph.
    • 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.
  • Added Cull By Volume option to not load particles inside or outside an arbitrary mesh volume. Both the Toggle and the Invert checkboxes are animatable.
  • Added Use Custom Range option which allows the user to define a validity interval and clamp any frames outside of it to the interval's limits. Missing frames inside the interval will still be reported and fail renders.
  • Added an option to the Preferences Rollout to define the default location the PRT Loader will browse for PRT files. If you have a dedicated server for PRT file sequences, you can set the path in Preferences and also tell the PRT Loader to Open the File Dialog at the Default Path.
  • Added an option to the Load Densities menu to override saved densities with 1.0. It is labeled "Use Global Density".

    PRT LOADERS ROLLOUT

  • Added three new options to the drop-down list:
    • 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.
  • Both modes take into account Frame Offset, Load Single Frame Only and Playback Graph settings, thus reporting the exact frames that are going to be affect the PRT Loaders. Krakatoa now has strict file checking when loading PRT files and will fail to render if any of the files is missing. These modes are meant as a tool to detect such problems.
  • Added drop-down list and Set Mode button to the Viewport Mass-Changing Utilities to switch the viewport display mode (dots/lines)

    PARTICLE ANALYZER UTILITY

  • External MacroScript which can draw graphs of particle counts per frame for all or only selected PRT Loaders, Geometry and PFlows.
  • All colors and some other settings like scale, memory limit etc. are customizable.
  • Optional export to HTML page.

    MATTE OBJECTS

  • Added better test for selection validity - PRT Loaders and PFlow Emitters now filtered out, added message boxes if the selection is not valid or the NSS name is empty.

    PARTITIONING

  • Added error traps and checks for 2.6 Deadline - if 2.6 or earlier is detected, the Tasks per Machine and Limit to CPU will be disabled
  • Added garbage collection after each render() call in the Local Saving - this fixed a memory leak that crashed Max 8 for some users. The only memory climbing should be caused by the actual particle systems. Generated 6 partitions of 10M particles each - memory usage went up from 1.46GB to 2.00GB and then back to 1.46GB for each partition.
  • Added the same fix to the Deadline Rendering code.
  • Added better error report handling on failed submission.
  • Removed the Manual Seed Increment / Remove Partition From Name buttons. Replaced with Generate Current Partition Locally to mirror the functionality of the Deadline submitter.

    AMBIENT PARTICIPATING MEDIUM EXTINCTION

  • Added new rollout with controls over PME for Red, Green and Blue channel
  • Added a gradient display to show the effect on a given custom color at a given distance.
  • Added Presets >> button with several ocean water presets from the Web and the ability to store, edit and remove custom named presets.
  • Added a Target Color swatch which allows the user to enter a desired color and the Extinction values are calculated automagically.
  • Added support for Mesh-Based Extinction using similar controls to the Matte Objects, except that the particles are not culled but affected by PME.

    SOME KNOWN BUGS AND LIMITATIONS

  • When adding/removing files in the PRT Loader, the Graph will not update even if set to >Auto
  • PME Named Selection Sets do not have callbacks for external changes to selection sets yet (Matte Objects do). So deleting a NSS via the MAX Gui does not update Krakatoa's display yet.
  • All raytraced operations incl. Matte, Culling in PRT Loader and Volume-Based PME show some problems (leaking particles) which are to be fixed.
  • The Culling Volume in PRT Loaders behaves incorrectly when moved with the transform gizmo in the viewport (possibly because of transform notifications between it and the Loader's node). Until fixed, consider animating the object first, then assigning it as the culling volume to the PRT loader. You can also use the X button to remove it, then pick again when done keyframing.
    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.)
  • Small Dots mode does not Z-Buffer correctly in DirectX and OpenGL. Consider using Large Dots when interaction with mesh objects is important, for example when placing culling volumes.
  • The PRT Loader seems to not draw correctly in all 4 viewports when in Software Z-Buffer mode. It appears to redraw only the 4th viewport.
  • 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.
    Privacy | Site terms | Cookie preferences