Saturday, September 25, 2010

Servicing the Pack

The Krakatoa build released on August 31st is no more. It has been replaced by a build released on September 24th. If you are already running 1.6.0, you should do yourself a favor and update now. Go, I will be waiting!

This is the first time we replace a build without incrementing the version number. We call it a Service Pack 1, but you can read it as "The build we should have released to start with" :) It fixes several bugs related to rendering FumeFX, adds the Icon Size spinners to all PRT objects that were missing one in the original build, and because there have been more than three weeks since the release, it also adds some new features here and there - Yours Truly cannot sit around without touching up the user interface...

Here is the list of changes:

Bug Fixes
  • PRT FumeFX with FumeFX 2.0 was causing a crash when switching to Post Cache mode. This has been fixed.
  • PRT FumeFX was showing only a portion of the simulation due to incorrect handling of Adaptive bounds. This has been fixed.
  • Thinking Particles was causing particle evaluation to hang at render time if there were two or more TP objects in the scene. Fixed.
  • Deformation Modifiers were inverting the Velocity Channel in PRT Loaders. This has been fixed.
  • Fixed the MAXScript call for saving all rollouts to presets which was causing a System Exception.
  • Fixed a crash when trying to load a Save Channels Preset.
  • Turning off the Viewp.Spacing in PRT Volume causes the render-time Spacing value to be used for the viewport, too, but changing the spinner wasn't updating the viewport cache and required a manual update. This has been fixed.

Feature Improvements
  • The Thinking Particles Partitioning code was tweaked to allow an Integer Helper containing "*RandomSeed*" in its name to be incremented just like a regular "RandomSeed" property. This can be used to adjust the Random Seed of MatterWaves by connecting an Integer Helper node to the RandomSeed property which is otherwise not exposed to MAXScript.
  • Undo/Redo wasn't restoring the Input Nodes' value correctly. This has been fixed. Please note that if the track is keyframed, performing Undo/Redo can affect the complete curve as the animation state at the time of Undo creation is not stored and there is no way to store/restore the complete controller. This fix also improves the Macro Recorder playback.
  • The ">Interactive Mode (SLOW!)" option in the Krakatoa Channels Modifier wasn't handling Geometry objects used in Surface Operators. This has been fixed.
  • Added conversion buttons to the SurfDataValue Operator to quickly turn the output value from Integer to Float, from Float to Vector, extract X,Y and Z components of Vector or transform Vector From World to Object space or into View Space.
  • Added an explicit INSERT/BRANCH mode displayed in the title bar of the MagmaFlow Editor and controlled by the Insert key in the Numeric Keypad. When set to Branch and a single node is selected that has an output socket connection, creating a new operator will not insert into the existing connection but branch into a new output connection. Once the node is branched, the mode will revert to INSERT automatically, since it makes more sense most of the time. In previous versions, this was done with the SHIFT key, but it could collide with some keyboard shortcuts that use the SHIFT key as a modifier key.
  • Fixed the mouse right-click hit testing when the MagmaFlow Editor is docked as Extended Viewport.
  • Added support for Schematic Flow as Extended Viewport, including correct right-click handling.

User Interface
  • PRT Volume, PRT FumeFX and PRT Source now expose an Icon Size spinner to the UI. The MacroScripts now use the XY size to define the icon size of PRT Volume and PRT FumeFX.
  • Added support for saving and loading the Channels To Save list.
  • Added all rollouts to the right-click menu of the Float/Dock icons with a check mark for visibility. Selecting will toggle visibility, holding SHIFT will navigate to the rollout.
  • Added right-click handling to all "Back To Main Controls..." buttons in addition to the left-clicking.
  • Added the keyboard shortcut names to the right-click menu of the Float/Dock icons.
  • Changed the navigation buttons throughout the UI to unhide hidden rollouts before navigating to them.
  • Reworked all MacroScripts to disable themselves and avoid any crashes if the Krakatoa path is removed from the plugin.ini.
  • The Rollout Preset files were not restoring the visibility of the "Shader Parameters" rollout correctly - even if saved as hidden, it would be displayed because the update of "Main Controls" rollout's Shading Mode list was forcing it to appear. This has been fixed by processing the "Main Controls" before "Shader Parameters".
  • Optimized the "Load From History" dialog to use the History Cache instead of scanning the files from disk. With 8281 History files on disk, the old code was taking 47 seconds to update the first time the dialog was opened, and 10 seconds in consecutive attempts. With the new code, the time to open the dialog went down to 0.078 seconds!

Just the first 4 points of the Bug Fixes list should be a good reason to update if you are using FumeFX 2.0, Thinking Particles or modifiers on PRT Loaders. In fact, I had to postpone a video tutorial recording session I had planned because it totally depends on a modifier on a PRT Loader and would behave quite strangely in the original 1.6.0 release... Stay tuned! And if you haven't watched the other YouTube videos, go here, here, here and here.

If you find more bugs hiding in the newest build, please let us know. We will chase them and hit them with a big hammer!

Friday, September 24, 2010

I Am A Cheater, Too!

Thanks to this CG Society article, I discovered the following "Making Of Tron" video on YouTube:

Part 1 Part 2 Part 3 Part 4 Part 5 Part 6 Part 7 Part 8 Part 9

The video is beyond awesome, but the most striking part of it, even more than the behind the scenes footage and image material, was THIS SENTENCE by Steven Lisberger:

"The Motion Picture Academy refused to nominate Tron for special effects because they said we cheated when we used computers..."

While I point at Star Wars as the main influence for me to end up in the visual effects industry, Tron has a very special place in my heart, too. Unlike Star Wars, Tron was not shown in communist Bulgaria's movie theaters back in the early 80s. But the magazine for international journalism "Parallels" ("Paraleli" in Bulgarian) had a large article with images about the making of the "first computer generated film" which I used for a school project about "an art form of my choice" (film is considered the Seventh Art Form, so I went with Science Fiction Movies as my theme).

For 6 years, I could only dream about seeing the actual film. My dream came true thanks to "Perestroika" on February 14th 1988, a Sunday. It was 3 days before my birthday and it happened to be a weekend. I was in my first year of army service and my girlfriend came to visit me so I got a two days leave. We went to a so-called "Cinema Video Club" - these were coffee shops with video projector that were showing private (read: illegally copied) VHS records of western movies that could not be seen or obtained through any other channels. Copyright law did not extend beyond the Iron Curtain, and thankfully the idea that western movies were "capitalist propaganda designed to brainwash the youth" was not so popular anymore, so we could finally see films we had missed originally. And they were showing Tron that day!

Of course, I was completely blown away by what I saw then. A year later, during my second year of military service, I was in a computer center and had the opportunity to play with simple computer graphics. This led to getting a PC home with me for another two years after I finished service as I continued working as consultant to one department of the military academy. Then, in the first year as student of architecture, I presented a design project that was made and printed on a computer. Guess what the reaction of my professors was? "This is not fair to your peers, you cheated by using a computer".

As I have mentioned in previous blogs, I never intended to turn computer graphics into profession, mainly because it was impossible in the current political climate. But for some people who were living in a different environment, Tron turned out to be the actual inspiration for working in the visual effects industry.

There still is an original Tron coin-op game in one of our offices. This is because the company previously known as Frantic Films was started by Chris Bond who was one of those people who were inspired by Tron and actually went into the visual effects industry because of that inspiration. With Tron Legacy less than three months away, it is both a wonderful and curious feeling to look back at where things started and realize how far we, the industry and the world have come...

Wednesday, September 1, 2010

Shipping Time

Krakatoa v1.6.0 is here! Where? There!

Surprisingly, we actually hit the shipping deadline this time. Not that it would have mattered one way or another since all users with support contract and even anyone who asked for it had access to the Beta builds for months. In the past, we always went by the saying "It will ship when it is ready". Being a niche product developed by a small team, we always had that luxury large publicly traded companies do not have - we'd rather delay a release than ship with known bugs. That's not to say there are no unknown bugs in there - if you find any, please tell us!

As mentioned in previous blogs, Krakatoa is now heavily multi-threaded and thus a whole lot faster. It integrates better with FumeFX incl. v2.0, supports the shipping version of Thinking Particles 4, provides new MagmaFlow operators, produces some Render Elements, generates much better shadows and fixes a lot of shortcoming of version 1.5.1. The UI is faster and more streamlined, while the number of additional tools has gone up. Look out for the Krakatoa menu in the Main Menu bar of 3ds Max - it exposes most tools that required customized toolbar icons in the past.

The new version even comes with a new license dialog written specifically to replace the totally unusable FlexLM one that has plagued humanity for years. Yes, the number one support problem of Krakatoa was caused by a piece of code that wasn't written by us. We really hope entering the license server or file will be much easier now...

On the curious side, possibly the smallest change with the largest impact on usability (or at least my sanity as a user) was the addition of a separator between the Copy and Clear menu items of the Log Window's Edit menu. You have no idea how many times I have cleared the window instead of copying the selection in previous versions!

We committed some "crimes", too. A day before release, a user asked for better PRT object icons to easier distinguish between PRT Loaders, PRT Volumes and PRT FumeFX objects. The request came literally in the last minute and no developers in their right mind would start changing that amount of code between Release Candidate 2 and Release Build. Well, fearless team that we are, we designed new icons, wrote a script to export their meshes into C++ compatible vertex and face lists and submitted the new code AN HOUR before the final build was produced! The impact risk was low, the positive effect on usability was significant. We had discussed that change before, but there were so many more important features and fixes, we never found the time. When everything else was done, it felt like we could afford to sneak that in and make some people happy...

Now that we have the final build out there, I really hope to be able to produce some new videos - my first and last Krakatoa-related videos were recorded using v1.0.0 back in 2007!

You can read more about the features of Krakatoa v1.6.0 here and here.