AWS Thinkbox Discussion Forums

Krakatoa MX 2.0 Documentation Thread

This thread will be used to compile all the knowledge that should go into the documentation later this year.
We will copy the new builds information here so we can have a central location to find out all about the current state of the Beta.

[size=150]Krakatoa Atmospheric[/size]
The Krakatoa Atmospheric is a ray-marcher implemented using the 3ds Max atmospheric sub-system. As such, it will render in any renderer that supports the native atmospheric effects of 3ds Max.
PROS: It produces a render output very similar to the Voxel mode of Krakatoa, but it can be integrated directly into geometry renderers including the ability to cast and receive shadows and to appear in raytraced reflections without intermediate steps, multiple render passes or compositing tricks.
CONS: It is currently slower than Voxel mode and requires a lot more memory because all voxels have to be allocated at once.
To Use:
*With Scanline, VRay, Brazil or finalRender active (all except mental ray), open the Environment dialog and add a Krakatoa Atmospheric effect.
*Add one or more PRT objects to the list (PRT Loaders, PRT Volumes, PRT FumeFX, PRT Hair etc.)
*Create at least one light source in the scene
*Leave the defaults (but you can tweak the lighting/rendering density, emission and absorption similar to Krakatoa), plus the voxel size and the marching step (it is a ray marcher after all)
*Render - it is slower than Krakatoa Voxels right now, but it integrates with the geometry and can be seen in reflections etc. Most relevant channels like Color, Density, Emission and Absorption are supported.
*To render a reflection pass only, use the Reflection render element (“Visible to Camera” does not affect the atmospheric!)

[size=150]PRT Hair[/size]
This was originally designed to work with Hair Farm, but the current build also supports the Max Hair&Fur in the scene (globally - to exclude a hair object, just hide it). It also works with regular splines, so anything that can generate splines can be turned into particles. When using Hair Farm, you have to add a modifier to the stack to turn the hair to splines.

Several useful channels are generated automatically that can be used in a KCM to tweak the parameters of the hair - use PDV to explore them. In particular, the Density is automatically faded off along the strand so it appears to be thinner at the tip. There is a channel describing the normalized distance from the root of the strand that can be used to define a color gradient along the hair. The Normal and Tangent channels are also populated.

Two new Shaders were added to Krakatoa - Kajiya-Kai (simple hair) and King-Kong (based on the Marschner model used by WETA on King-Kong, the name will probably change). In the King-Kong Hair shader, be sure to increase the Diffuse Level above 0.0, otherwise you might get speculars only…

To Use:
*Create a PRT Hair object from the Krakatoa category in the Create>Geometry tab.
*If converting a spline or Hair Farm object, align the Pivot of the PRT Hair object to the Pivot of the Spline source, then pick the Spline as the Spline Node.
*If converting Hair&Fur, set the Pivot to 0,0,0 instead as it works globally in world space, then set the Radio Button to “Hair & Fur (Entire Scene)”
*The “Spacing” value controls the distribution of particles along the spline in generic units (default is 0.1).
*The “View Spacing” value controls the distribution of particles in the viewport (default is 1.0)
*The “View Hair Limit” value controls the number of hair strands/splines to be converted in the viewport (default is 1000).
*The “View Adaptive” group of controls allows adaptive distribution based on a specified camera - the farther the camera moves away,the less particles will be created.
*The “Enable” checkbox enables the feature.
*The “In Viewport” checkbox enables the feature in the viewports.
*The “None” button can be used to pick the reference camera. No Adaptive distribution will be performed unless a camera is picked.
*The “Pixel Spacing” value controls the distance between particles expressed as pixels in the rendered image. Default is 0.5, this means about two particles per pixel. Lower values produce more particles.
*The “Reference Position” group of controls is used for special camera mapping purposes.
*The “Enable” checkbox turns this option on and off. When enabled, a “ReferencePosition” channel will be allocated, containing the particles’ positions on the specified reference frame. PRT Hair will make sure that the SAME number of particles are generated on the current and the reference frames. This data can be then used to determine where the particle was on the reference frame and produce “sticky” camera mapping based on that frame, or to calculate the change in hair position via KCMs etc.
*The “Frame” value defines the frame to take the reference position data from.
*The “Display” drop-down list switches the viewport representation between Points (large dots) and Tangents (lines).

[size=150]PRT Creator[/size]
*Darcy will tell you more about this as it is still an early prototype and it requires some example scenes to demonstrate what it does.
*In short, it creates a bunch of particles you can distribute around using KCMs. The kick is that it supports some recursive operations to produce fractal-like (a.k.a. Spore or FractalFlame) designs.

[size=150]Bilinear Wide Filtering[/size]
*When rendering the lighting pass in Particle mode, there is a new Bilinear Wide filter which smooths out the shadows and reduces Moire effects.
*There are even more blurring lighting pass filters available that are currently not exposed to the UI, but could be set using MAXScript. Ask if you need to know.

[size=150]Raytrace Map Support[/size]
*This is an early prototype, but it gives you an idea how it might work when ready.
*Assign a Krakatoa Material to a PRT Volume (which has Normals!)
*Add a Raytrace map to the Emission slot. Enable the Emission checkbox. Enable Emission in Krakatoa.
*Add some Matte Objects to the scene. Optionally, assign a Spherical Environment Map to the Max Environment Map slot.
*Enable the >Use button to the left of the Emission Strength and reduce it by an order of magnitude to avoid blown out colors
*Render in Particle or Voxel mode - the matte objects and the environment map will be reflected in the particles according to their normals using regular 3ds Max Raytracing (as opposed to Env. Reflection map lookups).

[size=150]Magma 2.0 Prototype[/size]
Magma 2.0 is a complete rewrite (both C++ and MAXScript code) of the channel editing sub-system of Krakatoa. At its core, it is now cleaner and more scalable. At UI level, it solves the majority of problems reported in the “Love and Hate” thread here: viewtopic.php?f=62&t=5032
The flow is now stored in the modifier itself, including related controllers and properties. All data can be get and set via MAXScript, allowing for a fully ASCII-based interchange format. Nodes are stored as references and are name-independent. Copying and pasting is supported natively. kd-tree acceleration data, noise node data etc. can now be cached, resulting in better performance. Flows support multiple output nodes to branch the same data to multiple targets. Nodes can have more than one output socket, reducing the number of nodes to extract complex data. Input sockets can have default values, reducing the need for Input Value nodes to just animatable and exposable values. Multiple editors can be open at the same time.

To Use:
*Magma 2 is NOT available via the Icons/Menu yet because it is WIP and buggy, you have to add it manually. The old KCMs are still around and kicking for compatibility, but we are working on converting them automatically into new Magma Modifiers.
*Add a Magma Modifier to a PRT Volume and press the only button to open the Editor. Then add another Magma Modifier and open its Editor. Note that you now have both open at the same time! You can have arbitrary numbers of Editors open!
*Right-click in the view and add an Output node (defaults to Color).
*With the output selected selected, hit SHIFT+N to add a Normal channel input.
*Press the >AUTO button to update the colors in the viewport.
*Now right-click in the Editor and add ANOTHER Output node.
*Set it to PRTViewportVector channel.
*Now click its input socket and drag a wire out into the empty editor (a la Slate Material Editor). From the menu which pops up, select Arithmetic>Multiply, or just hit “A” and then “M” to add a Multiply node.
*SHIFT+Select the Normal input AND the Multiply node and hit SPACEBAR to connect the two.
*Note that the Multiply node has the second input socket green and defaulting to 1.0. Select the Multiply node and in the command panel, enter 10.0 for “Right Value”. You only need a Float input node if you want to keyframe the value, for static multipliers, you can use the defaults and save real estate.
RESULT: You now have the Normal channel data fed into the Color channel and multiplied by 10 into the PRTViewportVector channel, showing the normals as color and as a line using a single modifier.
*In the menu bar of the Editor, select Debug > Debug Mode - another dialog will pop up and display the first 100 particles of your PRT Volume according to their values flowing through the modifier. (Controls over which particles are shown a la PDV will be added later). Close the debug dialog.

*Now go to the second MagmaFlow Editor and add an Output node to it. Set to Position.
*Press Ctrl+R to disable automatic reordering (it is on by default right now)
*Hit “O” and “N” to create a NearestPoint node under the mouse cursor. Deselect it!
*Move the mouse to the left and hit SHIFT+P to create a Position node to the left of it.
*Hit “I” and “G” to create an InputGeometry node. Create a Plane object in the scene, select the InputGeometry and pick the Plane. (NOTE: Currently, it is a known limitation that only one node can be picked per input. Multiple nodes support are on the Wishlist).
*Move the mouse to the right of the NearestPoint and hit “O” and “Q” to create a “GeoQuery” node.
*Now select all 4 nodes (Position, Geometry, NearestPoint and GeoQuery) and hit SPACEBAR - because the input sockets of NearestPoint know what they need (Position and a Geometry input), they will be wired automatically to any matching nodes TO THE LEFT of the NearestPoint node (we sort the nodes and try to connect left-to-right by socket types). Similarly, GeoQuery needs a Geometry input, FaceIndex and BaryCoords, so it wires itself to the Geometry Input and the matching two outputs of the NearestPoint. ALL WITH ONE CLICK!
*Select the Position input and click “ToWorld” to insert a conversion node.
*Select the WIRE going out of the NearestPoint Position output and hit “T” and “W” to insert a Transform>FromWorld node. Note that selecting the wire itself now inserts the node into that wire, so it is easier to insert nodes into any wire even if it is not the first output socket.
*At this point, the particles would be moved to the nearest point on the Plane, and the GeoQuery is not connected to anything so it is darker and does nothing (but the flow still works!)

*Select the Plane object and add a Mesh Select to it. Go to Vertex SO level and select half the vertices. Add a TurnToMesh modifier on top - this passes through the vertex selection but exits the SO level so you can select other objects without losing the SO selection!
*Select the GeoQuery node in the MagmaFlow editor and double-click the Selection channel from the bottom list to move to the top - a second output socket will be exposed!
*Right-click the editor and add a new Output node. Switch to Selection channel. Connect the Selection output of GeoQuery to Selection Output.
*Drop a Krakatoa Delete modifier on the PRT Volume above your Magma Modifier - the particles near a selected vertex will be deleted!

*You can optimize the display of the larger nodes by selecting the NearestPoint and checking “Hide Unconnected Outputs” in the command panel - only the 3 used sockets will be shown, the unused sockets will be collapsed and moved to the title bar of the node. Note that you can still drag out from the collapsed sockets - the top-most will be accessed and if you create a new wire to another node, the socket will reappear expanded in the body of the node.
*You can toggle Ctrl+R to switch between manual and auto-reordered flows as often as you want. Pressing Ctrl+SHIFT+R will copy the auto-reordered positions into the manual order. Right now there is only one sorting method and it is quite rudimentary. More might come.
*You can also collapse branches like before - double-click the Selection Output node and all relevant nodes and wires will be hidden (incl. the GeoQuery node).

Other New Nodes and Behaviors:
*The PropertyQuery node together with an InputObject node can acquire any property accessible through MAXScript from a scene object. Some of the obvious properties will be listed automatically, but you can type your own expressions to get to anything, e.g you can type in “material.diffuse” in the text field and press Add… to expose a new output socket. The PropertyQuery node replaces completely the older Input Value > Connect To Track approach. To get object positions, rotations, base object property values, modifier properties etc., use this set of nodes.
*The NearestParticle and ParticleQuery nodes provides similar access to other particle objects in combination with an InputParticle node.
*The Convert>Breakout node can be used to extract the components of a vector. Together with a ToVector it can be used to reorder the components. e.g. XYZ --> XZY etc. Other than in Magma 1.x, here you get all 3 components from a single node since it can have more than one output socket.
*The Vector>MatrixMulVec node can be used to multiply a vector by a 3x3 matrix. It is mainly used for fractal generation in PRT Creator. More to come from Darcy.
*The Convert > QuatToVectors node is equivalent to FromQuat in Magma 1.x, but has 3 outputs for the 3 components.
*The Convert> VectorsToQuat can be used to convert 3 axes into a Quat value, equivalent to the ToQuat node in Magma 1.x.
*The Logic > [b]Mux /b node is not quite ready yet, but in the next update it will let you define the number of inputs. The last Integer input controls which of the other inputs will be sent to the output, e.g a value of 0 sends out the first socket, a value of 1 sends out the second etc.
*The Input>InputTexmap node is a new type of Input node that has input sockets - in old Magma 1.x, Input nodes had no input sockets. This node can be used to evaluate a texture at arbitrary points in object space or UV space. This is a prototype, we will be figuring out how to provide more inputs for arbitrary number of Map channels later. Also, if a channel is required and available in the incoming stream but not provided explicitly via an input socket, it should probably be used implicitly… (NOTE: Implicit channels support added in Beta 2)
*The System>Elbow node can be used to pass through any wire without modifying it. It is for guiding the flow of wires, is drawn much smaller and has exactly one input and one output socket. Right now, it is also used as a stand-in for missing nodes when converting KMF files from Magma 1.x, but the plan is not to have any nodes that cannot be converted… (NOTE: Drawn as round node in Beta 2+, Missing Node added in Beta 3 as stand-in for loading retired nodes from older Beta builds)
*The Function > Curve node is now edited in a large floating dialog and supports X-range scaling after the fact instead of being limited to the 0-1 domain. It is currently missing support for presets saving and loading and vertical mirroring. (NOTE: Fixed in Beta 3)

File Input and Output:
*This is also WIP, but some portions of it are quite usable already - the File>Open Flow… lets you select a Magma 1.x KMF file and will attempt to convert it to a Magma 2.0 flow. I expect a lot of errors in this area though, so please report any issues and post flows that don’t convert correctly. Specifically, Quat nodes are not converted correctly yet. (NOTE: Added in Beta 2, everything should work in Beta 4)
*The File>Save Flow… is not implemented yet. Instead, use the File>Export Flow As MAXScript… which saves the flow in the new MAXScript format (.MagmaScript extension). The code is pure MAXScript code describing the creation of the flow’s nodes. This same format can be loaded, merged, copied and pasted, shared via forums etc. Even the Undo/Redo buffer of the editor uses this format to store the intermediate editing steps. The format also stores the keyframes of any controllers assigned to InputValue nodes.
*Same applies to BLOP definitions - they are saved in nearly the same format as regular flows. Currently, BLOP definitions are not shown in the Depot yet - you can drop a BLOP node and use the LOAD button to pick a definition. Showing existing definitions in the Depot and the Menus is on the To Do list. (NOTE: Added in Beta 3)

*The PRT Creator has some messed up parameters (Random Seed empty, value appears in Icon Size field).
*The PRT Creator shows no icon.
*MagmaFlow 2.0 fails to import Quat-related nodes when loading Magma 1.x KMF files (fixed internally)
*MagmaFlow 2.0 handles Noise operators from KMF files incorrectly when the Noise is inside a BLOP (fixed internally)
*MagmaFlow 2.0 does not reset the Exposed controls when the flow is reset or a KMF or MagmaScript is loaded (fixed internally)
*MagmaFlow 2.0 does not load texture maps from KMF’s .MAT library (fixed internally)
*MagmaFlow 2.0 does not support implicit mapping channels in the InputTexmap node (fixed internally)
*MagmaFlow 2.0 can cause a MAXScript error under certain circumstances (fixed internally)
*3ds Max Environment Map as Background support (new in Krakatoa 2.0) is currently broken - maps using Screen coordinates are not rendered correctly, producing a single color. Also, the background map is only enabled when rendering Environment Reflection Maps. When fixed, Krakatoa 2.0 will support the rendering of particles over a background image for quick testing without the need for compositing in an external app.
*Raytrace Map reflections only work in Krakatoa Material’s Emission slot.
*Krakatoa Atmospheric does not receive shadows from geometry yet.
*Krakatoa Atmospheric dialog does not close automatically when the scene is reset (fixed internally).

[size=150]Magma 2[/size]
*UPD: The KCM icon/menu item now apply the MagmaModifier (Magma 2) instead of the old one. The old modifier is still there for backwards compatibility and can be added manually from the Modifiers list of 3ds Max.
*NEW: NearestParticlesAvg operator (to be renamed in next build to a shorter name) lets you sample the average value of channels of neighbor particles. For example you can calculate the average speed of N closest particles, or their Color, or their Position etc. Does not work on the current system yet (in other words you need two separate particle systems, one as source of channels, the one with the modifier as the target).
*NEW: Modulo operator
*NEW: Color swatches and Texture map preview options in InputVector and InputTexmap nodes (see View menu)
*NEW: Added options to show the node name and value at input sockets (see View menu)
*NEW: Default values now have user-definable type. E.g. for Add, you can select whether the second empty input socket’s default value is a Vector, Float or Int depending on what the first socket requires.
*NEW: You can now insert an unconnected node into an existing wire by selecting the wire, Ctrl+selecting the free node and hitting SPACE BAR.
*UPD: InputTexmap now supports both explicit and implicit inputs. Explicit can be provided by optional input sockets. Implicit work like in Magma 1.x using the incoming channels of the current object.
*UPD: Almost all aspects of existing KMF (MagmaFlow 1.x) files should now import correctly, including all operators, nested BLOPs, Exposed inputs etc. Only limitation right now is that the InputGeometry in Magma 2 supports just one scene node (scheduled to be fixed later), so importing a Geometry Input from KMF will not import all object references.
*UPD: Improved MagmaScript output to exclude internal properties not relevant to the flow rebuilding (e.g. sorting options etc.).
*UPD: Output Nodes can now be disabled like any other node. This will suppress their whole flow and produce no output channel data.
*UPD: Noise operators now have a Normalize option to output in the range -1 to +1.
*UPD: GeoQuery now supports a channel named Position to get the position from an indexed face and barycoords.
*UPD: InputGeometry has a new output socket to get the Vertex Count.
*UPD: InputParticles has a new output socket to get the Particle Count.
*UPD: Elbow node is now circular in shape.
*FIX: The Magma Debugger wasn’t passing all channels correctly, producing errors. It should work now. If not, it will show the actual MXS error message instead of “???”. Note that it still shows only the first 100 particles, controls to define the range TBD.
*FIX: SHIFT+Drag in MagmaFlow now disconnects all the node’s inputs and outputs, and preserves the highest connected sockets wire regardless of index. (so if input 2 was connected and input 1 wasn’t, the Input 2 wire will be preserved)
*FIX: The Exposed Controls will now be updated correctly when deleting a node, selecting Update… from the Exposure menu, or entering notes (Notes are once again available as tooltips of spinner arrows)
*FIX: Socket defaults will now be preserved when switching the Node Type. E.g. a Greater operator with second socket default of 42.0 will keep that value if switched to GreaterOrEqual. It used to lose it.
*FIX: Highlighting Errors was half-working previously, now it should be fixed by forcing a redraw of the viewport to trigger a re-evaluation of the flow. First Output node never highlighted errors, also fixed.

[size=150]Krakatoa Atmospheric Effect[/size]
*FIX: Density Scaling was broken, producing wrong results. Rendering with Self-Illumination did not work right and so on.

[size=150]Krakatoa GUI[/size]
*NEW: New Main Controls buttons for PRT Hair, PRT Creator and PRT Source added to the block of source buttons. Also updated the VFB extensions and the Schematic Flow.
*NEW: Added Bilinear Filter 2, Bilinear Filter 4 and Bilinear Filter 8 (instead of the previous Bilinear Wide which used a Filter of 2). In theory, specifying the property as “BilinearX” will use X as the filter size. We feel 2,4 and 8 are all you need, let us know if that’s not the case. Expanding the UI is easy. No filtering for Bicubic yet.
*NEW: Option to export to Krakatoa SR. This is WIP and requires access to KSR which is not available yet. Ignore. Same applies to the Preferences dialog which has some controls that are hooked up and some that are not.
*FIX: Fixed the “Add All Partition Sequences” menu option in PRT Loader. It was broken before, now it adds all future Partitions set up in the Save Particles and Partitioning rollouts even before they have been actually saved. This allows you to send Partitioning Jobs (One Job Per Partition) and make a render job with a PRT Loader listing all future partitions to Deadline and make the latter frame-dependent on the former. Thus, when a frame has completely saved all partitions, the corresponding render task can render it.
*FIX: Fixed the default of King Kong Shader’s Diffuse value to be 100.0 instead of 0.0.
*UPD: Changed the wording of the Switch To/From dialogs and formatted them better. Also reformatted most of the Tooltip in the GUI to make them easier to read, mostly via new lines.

[size=150]PRT Objects[/size]
*NEW: PRT Hair now has a Density Falloff spinner which controls the exponent of the falloff. 0 is constant, 1 is linear, all other values produce exponential curves. See Krakatoa SR Video 1 for details: thinkboxsoftware.com/news/20 … art-1.html
*UPD: The Random Seed of PRT Volume can now be keyframed. This is useful when generating Jittered particles in a volume like a Frosted RealFlow to produce foam-like noise.
*FIX: FumeFX stream should now support FumeFX with no Smoke or Fire.
*FIX: Parameters of PRT Creator have been fixed (except for Icon Size which has no effect due to lack of icon)

[size=150]Particle Data Viewer[/size]
*NEW: Added >> before the names of channels in PRT Loaders if the channel is not coming from the file stream. For example, if you load a PRT sequence with Position, Velocity and ID, the PDV will also show Color and Density taken from the loader’s defaults (wirecolor and 1.0, respectively). These two channels will have >> next to their name so you know they did not come from the file. Same applies to channels created with KCMs on the stack.

[size=150]MAXScript Interface[/size]
*NEW: New method in FranticParticles interface:
FranticParticles.SaveParticleObjectsToFile Nodes Filename Channels
This saves the specified node(s) to the given PRT filename. The third argument should be the channels definition, but for now you should pass an empty array #() to save all channels found in the source streams. In future builds you will be able to specify which channels exactly you want saved.

[size=150]Rendering[/size]
*UPD: Rendering in Force Additive mode now skips the Sorting phase since A+B = B+A and the order of drawing does not matter. This speeds up pure additive rendering significantly.
*UPD: The overall rendering performance, esp. with billions of particles, has been improved by approx. 20% (up to 37% in some CPU configurations) by moving a portion of the code responsible for checking for invalid colors to the Drawing loop and optimizing the code used to reset the Lighting channel before lighting the particles.
*FIX: Rendering over 4 billion particles was previously impossible due to an unfortunate 32 bit int cast. This has been fixed, 7+ billion rendered successfully. More to come.

[size=150]Missing Features (ToDo List):[/size]
*Shadows from/on KRAtrmospherics are not supported yet. (FIXED in BETA 3)
*KRAtmospherics should perform adaptive sampling, right now the step is fixed. (FIXED in BETA 3)
*Global Overrides and Custom Render Elements need to be switched to Magma 2. They still use Magma 1.x. (FIXED in BETA 3)
*Magma 1.x KCMs need automatic conversion to Magma 2. (FIXED in BETA 3)
*Voxel Rendering should produce all Render Elements.
*PRT Creator needs scripted UI for fractal generation. (FIXED in BETA 3)
*There is a new MXS method for saving particles, so scripted tools for creating Proxies or resaving streams might emerge in the future. It is in the build, but no tools based on it have been provided yet.

[size=150]Known Bugs and Limitations:[/size]
*InputGeometry supports only one node right now. (FIXED in BETA 3)
*Not all MagmaFlow operations generate undo records.
*Changing the Domain (Range) of a Curve Control operator does not preserve the tangents correctly
*Curve Control Presets saving and loading and some flipping operations not supported yet. (FIXED in BETA 3)
*The PRT Creator shows no icon.
*3ds Max Environment Map as Background in Screen Coordinates still not working.
*Raytrace Map reflections only work in Krakatoa Material’s Emission slot; does not work in Magma InputTexmap yet.

[size=200]Krakatoa Beta 3 New Features, Updates and Fixes[/size]
Krakatoa v1.6.80.45569

[size=150]PRT Objects[/size]

  • NEW: PRT Cloner object (currently no own UI or icon, but exposed via a scripted PRT Cloner Manager utility) can be used to distribute any number of PRT objects (Clones) via a main distribution PRT object (Target). Each particle in the Target will be replaced with the particles of one Clone. Provides Density Scaling options, viewport percentage controls for acceleration, supports the passing of particle data channels from Target and Clones, respects the ShapeIndex channel used by Frost to select the Clone object per particle, respects the Scale and Orientation channels. Currently uses World Space positions from both Target and Clones, so all Clones must be at the origin to align correctly (to be fixed later). Accepts all PRT object classes incl. PRT Loader, PRT Volume, PRT Hair, PRT FumeFX, PRT Maker, PRT Source, as well as other PRT Cloners.
  • UPD: PRT Creator was renamed to PRT Maker (since “PRTC” is now short for “PRT Cloner”). A new PRT Maker Designer utility ships and is available from the Krakatoa menu. It lets you create design wedges using basic parameters, save individual frames of these designs to disk and merge saved designs into new animated wedges to produce new designs.

[size=150]Krakatoa Rendering[/size]

  • NEW: Reflection Strength control added to the Krakatoa GUI > Main Controls to adjust the intensity of the Environment Reflections without touching the bitmap loader.
  • UPD: Enabling the Background Color Global Override will now replace the Max Environment Map in the rendering, while allowing it to be reflected as Environment Reflection Map. When the Background Color override is not enabled, the background will be rendered (currently broken in Screen coordinates, but renders in all other modes incl. Spherical)
  • NEW: Krakatoa Atmospheric now has Min. and Max.Step properties and performs adaptive sampling. This should increase the quality in areas with quickly changing density while allowing larger steps in areas with constant density.
  • NEW: Krakatoa Atmospheric now receives shadows from geometry objects. To cast shadows from the Atmospheric, enable Atmosphere Shadows in the light source.

[size=150]Magma 2 New Features[/size]

  • UPD: InputGeometry now supports multiple nodes like in Magma 1.x, including when importing KMFs. Second output socket provides the number of the objects on the list. Geometry operators (IntersectRay, NearestPoint) have been modified to operate on multiple meshes and output the index of the mesh that was hit.
  • NEW: MeshQuery operatorgets Geometry and ObjIndex inputs and outputs the Face Count of the Geometry. (more outputs might be added in the future like Vertex Count, Surface, Volume etc.)
  • NEW: FaceQuery operator replaces GeoQuery. It gets Geometry, ObjIndex, FaceIndex and BaryCooords inputs and outputs face data like Position or Selection.
  • NEW: ParticleSumCount operator replaces NParticlesAvg. Takes Particles and Worldspace Position as Inputs, has Num.Neighbors and Falloff Power controls, and outputs MaxDistance, TotalWeight and the sum of any specified particle channels. To produce Average, divide the result by the TotalWeight output.
  • NEW: ParticleSumRadius operator takes Particles and Worldspace Position as Inputs, has Radius and Falloff Power controls, and outputs MaxDistance, TotalWeight and the sum of any specified particle channels. To produce Average, divide the result by the TotalWeight output. This is meant to be used to sample in a specified spherical region instead of using a fixed count.
  • NEW: Missing node in System category will be used to replace any node that the system does not know how to load, for example if an older Beta used NParticlesAvg, it will load as Missing and will have to be replaced with ParticleSumCount. The node will be shown in a lighter red than regular errors.
  • NEW: Added KMF/MagmaScript flows loading directly from inside the Editor similar to the lists in the old KCM UI. Double-click a flow to load, double-click [Custom Flow] to return to the last flow you worked on.

[size=150]Magma 2 Fixes and Improvements[/size]

  • FIX: InputTexmap, InputObject and some more nodes using object references were not saving them correctly when emitting MAXScript code.
  • UPD: Deselecting existing nodes before pasting from clipboard to make it easier to distinguish between old and new nodes.
  • FIX: Unconnected nodes are now correctly shown in darker color than connected ones, including inside of BLOPs.
  • FIX: Ctrl+0 wasn’t creating a Float InputValue of 0.0 as it should have.
  • FIX: The performance of the MagmaFlow editor with larger flows has been improved up to about 10 times. The coloring of outgoing wires according to the value type had to be disabled since finding out the type of the InputValue’s controller was causing a significant slowdown. The option to collapse unconnected sockets was also removed temporarily for performance reasons. Selecting a single node has been accelerated significantly. Various operations that caused multiple redraws of the flow have been optimized to redraw just once. Some operations changing just the wire color have been improved. A method for updating a single node has been implemented that further reduces the redraw time.
  • UPD: Curve Editor has the Presets feature back. You can now save and restore any number of curves.
  • UPD: Curve Editor has the Mirror About X option reenabled.
  • FIX: Inserting a node into the flow of a BLOP’s Input Socket’s wire was not handled properly.
  • FIX: The names of BLOP Input and Output sockets were not displayed correctly inside the BLOP when editing.
  • UPD: BLOPs saved to disk in the root folder or in folders one level deep will now show up again in the BLOP category. Uncollapsable Sub-Categories will be shown as delimiters. The B menu will display the sub-folders as sub-menus, allowing for 3-keystroke access to BLOPs stored in sub-folders.
  • FIX: The node name of the BLOP will now be proposed as Save File name when saving to disk. Used to be “Definition”.
  • FIX: The socket count of imported BLOPs from Magma 1.x KMFs was handled incorrectly, this has been fixed.
  • UPD: Added back the “Explore BLOP Folder” button to the BLOP UI.
  • UPD: Reimplemented the ability to manually flip the location of the Output socket (right or left). When importing Magma 1.x KMFs, the flipped sockets flag will now be respected (flows will look exactly as they were saved). No automatic flipping in the current Reorder code though.

[size=150]General Fixes and Improvements[/size]

  • UPD: Global Channel Overrides to use a new class that accepts the new Magma modifiers. Switched the system to use Magma 2.
  • UPD: Krakatoa CustomData Render Element to use Magma 2. Added code to prevent the creation of more than one Output node when in a Render Element.
  • UPD: “King-Kong Hair” mode - renamed to “Marschner”.
  • UPD: Added right-click menus to the Matte Objects Explorer to tweak object settings directly.
  • UPD: Added a REFRESH option, Layer Name display and updating of the Matte Objects rollout when changing in the Matte Objects Explorer.
  • UPD: New Krakatoa MX splash image included in the “About” dialog.
  • UPD: Krakatoa Geometry Lookup operator in PFlow now has an option “Update Only Once” to affect only new particles entering the event. It used to update on every step.

[size=150]Other Features[/size]

  • NEW: TP PDV node scripted operator for Thinking Particles 4 and higher can be used to expose arbitrary data to the Krakatoa Particle Data Viewer.

[size=150]Krakatoa SR Export[/size]

  • NEW: Added hashing to only export objects that have changed since the last export.
  • NEW: Added new spline export using a variation of the PRT format (to be updated again next week)

[size=200]Krakatoa MX 2.0 Beta 3 - Missing Features and Known Defects[/size]

[size=150]Known Defects[/size]

  • PRT Maker and PRT Cloner still waiting for new icons (NOTE: PRT Cloner will be moved to a modifier in next build, so no icon for it)
  • Render Elements not working in Voxel mode. (NOTE: Fixed internally for next build)
  • Regression in the performance of Well Distributed Jitter in PRT Volume due to work on Krakatoa SR (NOTE: Fixed for next build).
  • Magma 1.x BlackOps (*.KCB) files not supported (NOTE: Fixed internally for next build, LOAD BLOP… option will support loading of both 1.x and 2.x formats)
  • Magma BLOPs Reorder broken (NOTE: FIxed internally for next build)
  • Magma BLOPs “LOAD BLOP” does not preserve existing input connections (NOTE: Fixed internally for next build)
  • Magma BLOPs “LOAD BLOP” over existing definition does not load incoming socket names, keeps old ones. (NOTE: Fixed internally for next build)
  • Magma BLOPs Move up / Move down do not update the socket names in the tree until UPDATE is pressed. (NOTE: Fixed internally for next build)
  • Changing the Domain (Range) of a Curve Control operator does not preserve the tangents correctly. (NOTE: Fixed internally for next build)
  • Not all MagmaFlow operations generate undo records.
  • 3ds Max Environment Map as Background in Screen Coordinates still not working - shows upper left pixel.

[size=200]Krakatoa MX 2.0 Beta 4 New Features, Updates and Fixes[/size]
Krakatoa 1.6.80.45628

[size=150]New And Updated Features[/size]

  • New PRT Cloner Modifier replaces the PRT Cloner Object. This allows for easier stacking of cloning operations.
  • PRT Loader now has an option to perform true interpolation using the particle positions from neighbor frames, fixing the half-frame retiming discontinuity at cost of performance.
  • Krakatoa Delete Modifier now has an option to clear the selection to prevent it from affecting modifiers above it.
  • PRT Volume now has a World Space option. When enabled, the transforms and world space modifiers of the source geometry will affect the particle generation, but the transforms of the PRT Volume itself will be ignored. Useful for meshing FROST objects.
  • Magma 1.x BlackOps (*.KCB) files are now supported by Magma 2 when using the LOAD BLOP… option (they won’t appear in the Depot though).
  • BLOPs in Depot now show their Notes description on mouse roll-over. If no Notes were saved, the path to the file will be shown instead.
  • FaceQuery now supports the Normal channel and outputs the Smoothed Normal at the given barycentric coordinate as opposed to the Face Normals output by NearestPoint and IntersectRay.
  • New Preferences option: PRT Volume Viewport Spacing Factor. Higher values produce more particles, default is 50.0. This value is used to scale the viewport spacing based on the largest dimension of the source’s bounding box when creating via the VOL MacroScript or “Create PRT Volume…” Krakatoa Menu item.

[size=150]Bug Fixes[/size]

  • Render Elements now work in Voxel mode.
  • Fixed regression in the performance of Well Distributed Jitter in PRT Volume.
  • Reordering nodes inside a Magma BLOP has been fixed.
  • Loading a Magma BLOP using “LOAD BLOP…” button did not preserve existing input connections, now it does.
  • Loading a Magma BLOP over an existing definition did not load incoming socket names, now it does.
  • Magma BLOPs Move up / Move down did not update the socket names in the tree. Fixed.
  • Changing the Domain (Range) of a Curve Control operator did not preserve the tangents correctly, now it does.
  • Converting InputTexmap nodes from Magma 1.x KMF files or existing modifiers wasn’t preserving the Output type (Color/Mono/Perturb), now it does.

[size=200]Krakatoa MX 2.0 Beta 4 - Missing Features and Known Defects[/size]

  • The PRT Cloner OBJECT added in Beta 3 has been removed and replaced by a PRT Cloner MODIFIER, but the PRT Cloner Manager script has not been removed from the Krakatoa Menu. It will not work with the modifier and should be ignored. (NOTE: Fixed for next build).
  • PRT Cloner Modifier’s checkboxes for Viewport % and Limit not hooked up yet (default to checked).
  • PRT Maker Icon does not show the “PRT Maker” text yet.
  • PRT Maker does not have a Krakatoa Toolbar MacroScript yet. (NOTE: Fixed for next build).
  • PRT Maker is not shown in the Krakatoa Explorers > Scene Particle Systems browser. (NOTE: Fixed for next build).
  • PRT Maker and PRT Sources nodes in Krakatoa Schematic View don’t provide a right-click context menu yet. (NOTE: Fixed for next build).
  • Bad particles drawn when loading using PRT Loader in “Every Nth by ID” mode. (NOTE: Fixed for next build).
  • Not all MagmaFlow operations generate undo records.
  • 3ds Max Environment Map as Background in Screen Coordinates still not working - shows upper left pixel.

[size=200]Krakatoa MX 2.0 Beta 5 New Features, Updates and Fixes[/size]
[size=150]New Features[/size]

  • Added preliminary direct support for Phoenix FD particles. PFD is supported directly in the same manner as Particle Flow (no PRT object yet). It is enabled by the same option button as PRT FumeFX since we don’t expect many people to use both FumeFX and Phoenix FD at the same time, and we wanted to save some space in the UI. This might change in the future should a PRT Phoenix object be added.

[size=150]Updates[/size]

  • Krakatoa Material will now pass through the Wireframe color of a PRT object if no Color channel is available in the PRT object and the Scatter Color checkbox is unchecked in the Material. Previously, a default white color was used in this specific case.

[size=150]Bug Fixes[/size]

  • An Environment Map in Screen Space will now render correctly, finally allowing the quick compositing of Krakatoa particles over an existing bitmap background without the use of post applications.
  • The PRT Cloner script has been removed from the Krakatoa menu.
  • PRT Maker now has a dedicated icon and MacroScript.
  • PRT Maker and PRT Source are now listed in the Krakatoa Explorers>Scene Particle Systems.
  • PRT Maker and PRT Source now have right-click menus in Schematic Flow.
  • Incorrect particles drawn in “Every Nth by ID” loading mode issue has been fixed.
  • The MagmaFlow Command Panel wasn’t updating correctly after deleting a node. Fixed.
  • The PRT Objects were showing ??? for parameter names in TrackView, this has been fixed.

[size=200]Krakatoa MX 2.0 Beta 5 - Missing Features and Known Defects[/size]

[size=150]Known Defects[/size]

  • PRT Maker now has text in the viewport icon, but it is placed incorrectly at the center. (NOTE: Fixed for next build)
  • PRT Cloner Modifier’s checkboxes for Viewport % and Limit still not hooked up (default to checked).

[size=150]Missing Features[/size]

  • Magma 2: Conversion of Krakatoa CustomData Render Elements to Magma 2 format (NOTE: Fixed for next build)
  • Magma 2: Option to NOT convert KCMs and CustomData RE to Magma 2 format (NOTE: Fixed for next build)
  • Magma 2: Option to disable auto-renaming of the Magma modifier (NOTE: Fixed for next build)
  • Magma 2: Notes field to enter User Comments for the whole flow (NOTE: Fixed for next build)

[size=200]Krakatoa MX 2.0 Beta 6 (RC1) New Features, Updates and Fixes[/size]
Get the build from here.

[size=150]Startup[/size]

  • A message box will be displayed if the Helium plugin has not been installed correctly. Several scripts will not be loaded in that case to prevent errors, including some modifiers, Schematic Flow, MagmaFlow etc.
  • New installer splash screen based on a small fraction of the 7 billion particles rendering from Siggraph 2011.

[size=150]Magma Modifier and Editor[/size]

  • Added back Notes support at Magma level.
  • Added back the option not to rename the modifier
  • Added conversion of Krakatoa CustomData Render Elements to Magma2
  • Added System Preferences option to disable temporarily the conversion to Magma 2 (in order to preserve old scenes in 1.6.x format). Not sticky.
  • Exposed the Elbow Size as Display Option, defaulting to 35 instead of 60.
  • Fixed the update of PRT Loaders when changing Magma operators by resetting the viewport cache. Also sped up the ValueInput spinner updates by only updating the Modifier’s name when the Output node changes or the dialog closes.
  • Fixed Ctrl+P to work on Output nodes.
  • Made the Fist and Count options in Debugger sticky via INI file.
  • Added an option (Ctrl+Alt+V) to copy operators within the same flow while preserving input wires to nodes that are not copied.

[size=150]MagmaFlow Undo / Redo[/size]

  • Fixed Undo and Redo commands that could cause MXS error “no .count in undefined”.
  • Correctly initializing an undo record on opening the editor - in the past, first undo step was missing.
  • Updating the Undo/Redo buttons on opening the editor.
  • Skipping the modifier updates if there is no Undo/Redo record left.
  • Added Undo record for File>New
  • Added undo records to File>Open operations.

[size=150]Matte Object Explorer[/size]

  • Double clicking in the Matte Objects Explorer now selects the objects in the scene.
  • Added Select Highlighted option to rcmenu
  • Added Inverse Operations submenu to rcmenu to hide/freeze/make non-renderable.

[size=150]Krakatoa Atmospheric Effect[/size]

  • Made the Min.and Max. Step spinners “bump” each-other.
  • Fixed list of supported classes as sources, changed to check the baseobject class.

[size=150]PRT Maker Designer[/size]

  • Updated PRT Maker Designer to support new controls.
  • Added Bitmap thumbnail saving
  • Added Dynamic Explorer mode
  • Added Fractal Design Parameters Editor showing every value on the current frame. It is dockable to top and bottom of Max UI.
  • Added File, Scene and Object filters, double-clicking in Presets list opens the full viewport screenshot.

[size=150]VFB Extensions[/size]

  • Fixed the Hair/Maker/Source buttons which were missing change handlers.

[size=200]Krakatoa MX 2.0 Beta 6 - Missing Features and Known Defects[/size]

[size=150]Missing Features[/size]

  • InVolume object operator. Fixed for next build.
  • Krakatoa Atmospheric Effect should support PFlow, TP and Max Legacy Particles directly. Fixed for next build.

[size=150]Known Defects[/size]

  • Trying to drag a connection from the input socket of a BLOP Output node causes MXS error. Fixed for next build.
  • Trying to drag a connection from the output socket of a BLOP Input node can cause illegal connection. Fixed for next build.
  • Trying to delete a node connected to the BLOP Output node causes MXS error. Fixed for next build.
  • Collapsing branches inside a BLOP does not work (only current node collapsed). Fixed for next build.
  • Changing the AUTO-RENAME option in the Magma Editor does not update the checkbox in Modifier. Fixed for next build by removing the option from the Editor’s menu.
  • Startup script does not copy the shipping MagmaBLOP files from the installation folder. Fixed for next build.
  • PRT Loader icon twice as large as PRT Volume icon with the same size. Fixed for next build.
  • MagmaHolder Track name in TrackView shows as “??” Fixed for next build.
  • MagmaHolder Input Value Controllers are filtered as Global Tracks (Global Tracks must be visible for Controllers to be shown in TrackView).

[size=200]Krakatoa MX 2.0 Beta 7 (RC2) New Features, Updates and Fixes[/size]

[size=150]STARTUP AND LICENSING[/size]

  • Switched to Thinkbox license server, Krakatoa version 2 license.
  • Added automatic service discovery.
  • Changed BLOP copying from KCB to MagmaBLOP extension, several BLOPs are now included in the install.

[size=150]UI[/size]

  • Added Bilinear Filter spinners to Main UI and VFB Extensions.
  • Added change callback to Shadow Manager to update when lights are changed in the scene.
  • Adding Ctrl and SHIFT+Ctrl to []> icom rcmenu to dock to Primary and Secondary Floater.

[size=150]PRT OBJECTS[/size]

  • PRT Cloner Modifier was not respecting the Render context, always rendering the viewport particles. This has been fixed.
  • Tweaked the PRTCloner to work better, and pass through color information properly while setting the Scale. Also sets the scale relative to the source’s bounding box.
  • Fixed PRT Loader’s icon size being too large.
  • Fixed PRT Source’s name missing a space.

[size=150]MAGMA 2[/size]

  • New IsInVolume operator. While slower than the PRT Loader’s culling method, it is significantly better with screwy volumes like a Teapot.
  • Added ToCamera and FromCamera handling to KMF conversion
  • Added Missing Node handling in KMF conversion
  • Added Drop Shadows option to MagmaFlow, default to off.
  • Added Pan and Zoom history to Undo/Redo records.
  • Added exposure support to InputObject, InputGeometry and InputParticles nodes.
  • Added group and node ID/name around exposed object pick controls
  • Fixed dragging wire from BLOP Output node’s input socket.
  • Fixed connectivity update when node connected to BLOP Output is deleted
  • Fixed Collapsing of branches when inside a BLOP
  • Removed Auto Rename option from Editor since it is now in the Modifier UI.
  • Fixed Cancel Node Selection in Geometry Input.
  • Fixed drag creation from BLOPSocket node inside a BLOP.
  • Fixed MagmaFlow Exposure by adding node ID to the name of the controls.
  • Fixed Missing node hanging due to 0 inputs and 0 outputs.
  • Fixed a crash due to mistyped “undefined” check.
  • Fixed title bar update on Ins key
  • Fixed drawing order bug for ID 0
  • Fixed Undo from BLOP editing.
  • Fixed a potential crash when from socket index is undefined.
  • Fixed input default types mismatch when switching input types.
  • Fixed placement and selection of newly created Input nodes depending on whether only inputs or other nodes are selected.
  • Fixed ToCamera and FromCamera node transformations.

[size=150]KRAKATOA ATMOSPHERIC EFFECT[/size]

  • Fixed to work with all particle systems including Legacy Particles, PFlow and TP
  • Note that adding a PFlow PF_Source will actually add its Events instead. You can remove individual Events post-factum if you don’t want to render them.

[size=150]VFB EXTENSION[/size]

  • Expanded VFB Extensions width to 800 pixels.
  • Added Reflection Strength controls
  • Added Lock Viewport controls.
  • Added Background Color Override controls

[size=200]Krakatoa MX 2.0 Beta 8 (RC3) New Features, Updates and Fixes[/size]

[size=150]PRT Cloner[/size]

  • PRT Cloner node list was being sorted alphabetically, now it will preserve the order of adding nodes.
  • PRT Cloner was not using the ShapeIndex channel correctly, this has been fixed.

[size=150]Magma[/size]

  • Changed KCM MacroScript to allow inserting the modifier above the currently selected modifier on the stack. Previously, it was always added to the top of the stack.
  • Fixed the collapsed node width to match the uncollapsed node width.
  • Fixed the reorder function which was leaving too much space in column 2.
  • Fixed auto-reorder when entering BLOP for editing (sub-flow was not being reordered).
  • Set the EXIT BLOP EDITING rollout to a higher category to appear near the top of the panel.
  • Changed Default Types selector to appear for all operators, even when it makes no sense - it wasn’t showing up for some operators due to hard-coding the supported types. It will be up to the user to decide when to change the type and whether the change makes sense.
  • Added recursive BLOP controls exposure (inputs inside of nested BLOPs will show up correctly in the Command Panel if exposed)
  • Fixed InputParticle’ picked node storage to save file / undo file which was causing undo corruption.
  • Fixed the direct insertion of an operator into an existing BLOP insocket wire which was causing an error.
  • Added MakeCircle and XFormVbyNxT BLOP presets (used in the PRT Maker Video Tutorial)
  • Fixed path names of BLOPs in [B] menu - attempting to insert a BLOP from a sub-menu had issues due to backslash escape combinations, now storing path with forward slashes.
  • Added node description in info line when rolling over a node with Notes.

[size=150]Krakatoa Material and Raytracing[/size]

[size=150]Krakatoa Atmospheric Effect[/size]

  • Fixed KRAtmospheric effect to disable Lighting and Emission controls when not in use.
  • Optimized Krakatoa Atmospheric Effect shadows calculation - Light Density now correctly affects the Atmospheric Shadows cast on Geometry. This allows you to set Camera Density to 0 and still cast full shadows on geometry, or set Lighting Density to very low and have the shadow become more transparent. Previously, the Camera Density affected the shadow’s density.

[size=150]VFB Extensions[/size]

  • Preventing an error when the LOCK button is pressed but the Max value is not initialized (0).

[size=200]Krakatoa MX 2.0 Beta 9 (RC4) New Features, Updates and Fixes[/size]

[size=150]Krakatoa Atmospheric Effect[/size]

[size=150]Magma[/size]

  • Fixed default types which were broken in the last build due to removed type logic.
  • Fixed a potential error when dragging a wire from a socket into empty editor area
  • Added the ability to expose an Integer InputValue controlling the Mux operator as a Listbox. The names of the nodes connected to the first N-1 sockets of the Mux define the items’ names on the list.
  • Added the ability to expose an Integer InputValue controlling the Switch operator as a Boolean checkbutton.
  • User-defined Channels entered directly in the Output node were reverting to Arity of 3 and were not storing the specified Arity. This has been fixed.
  • Added per-face channels access to FaceQuery operator - specifically MaterialID and SmoothingGroup.
  • Fixed FaceQuery channel auto-population to use the first geometry object on the list if an InputGeometry is connected.
  • Surface operators in old KMF / KCM flows where a SurfDataValue was accessing MatID or SG were not being converted correctly. This has been fixed.
  • Magma Modifier Notes can now be entered only when the [CustomFlow] entry is selected - this will set the current modifier’s notes. When a preset is selected from disk, the Notes field will show the file’s notes, but it will be read-only to allow copying but no entering.
  • Added a PickButton next to the existing By Name button in InputGeometry node (in both MagmaFlow UI and when Exposed)
  • Fixed the Filtering of the two buttons to hide already added objects - previously, the duplicate adding was prevented after the picking.
  • When dragging a wire from the second input socket of IntersectRay, a World Space Position will be created (to match the behavior of NearestPoint). Hold Ctrl when releasing to pop up full menu.
  • When dragging a wire from the third input socket of IntersectRay, a default [0,0,-1] vector will be created. Hold Ctrl when releasing to pop up full menu.
  • Rolling over the Input or Output nodes in a BLOP was causing an error while attempting to access the notes of the “node”. Fixed.
  • On first enter into a BLOP, some sockets showed the connected value as ‘undefined’. This has been fixed.
  • BUILD 46166: Creating a Switch operator when one or more operators are already selected will make sure that if one of the selected is a Boolean, it will go into the 3rd input socket. If more than one of the selected operators are of Boolean type, the one with the highest ID will be connected. If a single Boolean operator is selected, it will go straight to the 3rd socket. This makes the creation of IF logic flows easier…

[size=150]PRT Loader[/size]

  • PRT Loader’s file sequences are now exposed as #filename of type #Animation and should be accessible to the Asset Manager.
  • PRT Loader’s file sequences are now fully exposed in the Asset Tracker dialog and can be set by the user (strip path, assign path, convert to absolute path etc.)

[size=150]Matte Objects Explorer[/size]

  • The title incorrectly used plural when a single object was detected, saying “1 Objects” instead of “1 Object”. Fixed the logic.
Privacy | Site terms | Cookie preferences