It's all business，在商言商，想想美國的那些動畫為何要外包到台灣來，只因為動畫在台灣作比美國便宜而已，所以台灣一家動畫公司的老闆會這麼說，"關鍵一 定是成本，再來是交貨期，還有品質"，他說得非常實在，預算絕對是關鍵，品質其實是在最後，是可以犧牲的東西，為了要賺錢，不得如此，這是一般商人的觀 念，所以等到哪一天中國大陸的動畫製作管理熟練起來，台灣這些作代工的絕對就會沒落，不信嗎，看看那家曾經是全球最大的手繪動畫加工廠經歷過哪些狀況，再 看看現在那家看似接單不完的電腦動畫公司，你不覺得似層相似？
對老闆或是那些坐擁高薪的管理階級來說沒差，反正資產跟公司法人切割，所以 可以每天開著高級車，然後直嚷著公司沒錢，哪天真的不行了，大不了把公司關了，搬去大陸，你能耐我何，但是動畫師或是其他勞工呢？長期來超時工作，低於平 均工資的薪水，哪天老闆不玩了，結果一覺醒來發現到處找不到工作，也才發覺長期來只知道怎麼作快，不知道怎麼作好，自己根本沒有多少競爭力，老闆想說那就 跟大家一樣玩玩自製片吧，反正政府的錢好像蠻好拿的，結果放眼望去好像沒有可以做自製片的員工，這時將責任推到勞工身上，開始抱怨業界沒有好人才，找不到 人，你說這叫那些勞工情何以堪啊。
不過事實上要賺錢不一定要用廉價的品質來交換，看看好萊塢那些賺錢的大片，哪部不是為了品質投下大筆金 錢，專業的公司知道要做出夠水準的東西，有些錢就是少不了，有些人看的不只有眼前的利益，更是長期的品牌建立，品牌怎麼建立，當然是靠品質，就像皮克斯的 John Lasseter所說的：Quality is the Best Business Plan，品質是最好的經營策略。
經營 者們，請重視教育訓練，別再抱怨台灣找不到人才，要是華德迪士尼只會報怨的話，今天就不會有CalArts，也不會有那些利害的動畫師，別想說也不用訓 練，反正用案子來操底下的人，久了大家就會進步，這樣做只是在消磨動畫人的熱情，同樣的，加班再長，不知道對的方式，一樣是不會有好品質的東西出現，看一 家動畫公司是不是真的希望台灣動畫界成長，就看他投注多少精力在教育訓練上頭，即便像Pixar這樣成功的公司都有Pixar University這樣的教育訓練規劃，我不了解台灣的動畫公司為什麼覺得自己不需要。
至於動畫師們(以及所有部門的 artists)，品質至上是你唯一的路，也才能讓自己在未來更有競爭力，你會說今天你為那些只顧廉價快速的公司工作感到無力，不過還是請將這句話牢記在 心，我相信有一天會有一個重視品質的製作需要你，也請讓自己的視野更開闊一些，即便你再資深，也請多接受新觀念，新知識，別老抱著加工廠作業員的心態作事 情，多看看國外的東西，隨時保持學習的心態，這是身為動畫人應有的態度，共勉之。
因為我是華人，所以只有中文版，外國的朋友抱歉了。你們可以考慮使用Google翻譯，哈哈。 Continue Reading
The following example uses a real-world production scene from the movie G.I.Joe - Rise Of Cobra to demonstrate how Krakatoa and its MagmaFlow node-based editor can be used to work with and post-process particle data.
- The 3ds Max scene contains a PRT Loader which is set to load one partition with slightly over 1 million particles.
- The viewport display count is set to 1% and Load First N Particles which is the fastest loading mode. Loading Every Nth provides a better cross-section of the particle cloud, but is too slow for interactive tweaking because it requires the decompressing and scanning through the whole particle file instead of just its beginning.
- The particles represent the processes in a futuristic missile warhead.
- They have already been animated and colorized using Particle Flow and Box #3 Data Operators and cached to PRT files using Krakatoa.
Here are some representative frames from the sequence:
Culling The Particles By The Warhead Geometry
- The particle cloud has been generated to be larger than the missile warhead containing it.
- The warhead is transparent and we can see the particles swarming inside.
- Instead of matting out the particles in post, we can easily cull any particles outside of the warhead using the Particle Culling feature of the PRT Loader.
- We simply select the Culling Geometry (called HLP_Cull in the scene file) from the Select By Name dialog which opens via the Make Culling Named Sel. Set button in the PRT Loader's "Culling and Deformations" rollout.
- A named selection set with the same name as the Culling Object will be created and the particles outside the volume will disappear.
Tweaking Particle Colors Using MagmaFlow
- Using the MagmaFlow Editor, we can modify the existing and created new channels if necessary.
- This approach is similar to changing colors in 2D post production, but it operates on 3D points in space and can thus affect the appearance of the final rendering in ways 2D compositing cannot (since it does not contain information about pixels behind other pixels).
- Let's take a look at some of the many tweaks that could be performed using MagmaFlows.
Adding a Krakatoa Channels Modifier (KCM)
- To add a KCM, we simply select the PRT Loader and press the KCM icon or use the Modifiers list and select "Krakatoa Channels".
- The default flow in the KCM copies the Color channel into itself, so it does not change the appearance of the particles at all, but it is a great starting point for tweaking the Color channel:
- We select the Color Channel Input Node and hit the * key on the Numeric Pad to insert a Multiply Operator, then we use the Ctrl+2 keys to create a Float Input with a value of 2.0. (Pressing the F key would create a Float Input with a default value of 1.0, but that would then require changing the value to actually see any changes, so we use the 2 key with Ctrl pressed instead):
- This causes the particles in the viewport to glow brighter in green and yellow colors:
Note that we are currently modifying 10% of all particles, or about 100,000 of them.
We could make the updates even faster by going down to 5 or even 1 % of the total particle count.
Animating The Multiplier Value
- We can tweak the Float Input value to change the overall look of the particle, but since it is represented by its own Track with a Float Controller in TrackView, we could also keyframe the value to change over time.
- We simply enable the Auto Key button in the 3ds Max UI and set keys as usual.
- Scrubbing the Animation Slider back and forth will show that the particles are updating in nearly real time.
- We can also use procedural animation on the Float Input track.
- We press the Zoom In Track View button in the Float Input's Rollout and assign a Waveform controller to the selected Float track which controls the Float Input node in the MagmaFlow Editor.
- In this example, we have two waves stacked additively to produce a more interesting effect:
Visualizing Particle Data As Color
- Another useful application of the KCM and MagmaFlow features of Krakatoa is the visualization of data channels as Colors in the Viewport.
- For example, the PRT Loader provides a line display to show the Velocity of the particles:
- Using simple MagmaFlows, we could set the Color of the particles in the Viewport to represent either their velocity direction or their velocity Magnitude.
- For example, simply adding a new KCM and changing the Color Channel Input to Velocity Channel Input will show the Velocity directions as colors:
- If we wanted to show the Velocity Magnitude as color, we can
- Insert the Magnitude Operator by selecting the Velocity Channel Node and pressing Ctrl+M
- Insert a Blend Operator by pressing B
- Press Ctrl+W to swap the Input sockets 1 and 2, then Shift+Ctrl+W to swap the Second and Third sockets of the Blend, since the Magnitude should go into the 3rd Socket.
- Press Shift+1 to create a Vector Input Channel with the color RED connected to the first socket of the Blend
- Press Shift+2 to create a Vector Input Channel with the color GREEN connected to the second socket of the Blend
- And since the Magnitude is a lot above 1.0, we can select the Velocity Channel again and hit * and F to create a Multiply Operator with a Float Input, then we enter 0.012 into the Float Input to scale down the velocities.
- If we intend to only visualize the Velocities in the Viewports but not render the Color channel, we can simply set the KCM to Off In Renderer to disable its evaluation at render time.
Modifying the Particle Color By Velocity At Render Time
- Of course, we could use the above approach not only to visualize the particles in the viewport, but also to modify the existing colors based on the velocity of the particles.
- All we have to do is reintroduce the original Color Channel loaded from the PRT file into the flow.
- First we select the Blend Operator and press Shift+Ctrl+W to swap the second and third sockets, making the Velocity Magnitude the second socket.
- Then we select Arithmetic from the Operator's Category list and select Multiply from the list of Arithmetic Operations - note that the second Vector Input does not appear to be connected to the Operator anymore, but in fact it still is, it is just being ignored. If we would switch back to a Blend Operator or another operator with three sockets, will will show up as connected again!
- Now we select the first Vector Input node and switch it from Input to Channel and select "Color" as the source.
- We can also change the Float input to 0.02 to increase the effect - as result, fast particles are now brighter green, but still use the same color loaded from the PRT sequence, just more intense.
- Instead of using the Magnitude of the Velocity, we could use one of its axes - X, Y or Z - to modulate the color of the particles.
- For example, if we want particles moving faster along the X axis to glow brighter than particles moving mostly along the Y and Z, we can make the following adjustments to the flow:
- Select the Magnitude Operator, change to Conversion Category, ToScalar Operator.
- Hit the 1 or F Key to create an Integer Input node with a default value of 1 (representing the X axis).
- We can increase the Float Input's value to 0.05 to get better colors.
- Since the Velocity X can be positive or negative, we could include the negative one by selecting the Velocity Channel and hitting the A key to add an AbsoluteValue Operator:
Exposing Controls To the Modifier Panel
- If we intend to tweak this look of this setup, we could easily expose the Float Input and the Integer to the User Interface of the KCM to avoid dealing with the MagmaFlow itself.
- We can select both Input nodes we want to expose and pick Expose>Expose Selected Inputs from the MagmaFlow Menus:
- If we would rename the Input Nodes to "Scale Factor" and "Axis Index" respectively, the Exposed Controls in the KCM UI will also be renamed to show the artist using the controls what he is modifying:
Contrast By Velocity Instead Of Gain
- With just a single change to this MagmaFlow, we could switch from changing the Gain of the Color to changing the Brightness/Contrast.
- Select the Multiply Operator #4 and change the Operation Type from Multiply To Power.
- Tweaking the Scale Factor now will change the particle color contrast:
- Velocity X Axis Scale Factor of 0.01:
- Velocity X Axis Scale Factor of 0.05:
- Velocity X Axis Scale Factor of 0.5:
Modifying Velocity Channel
- The Velocity if our particles represents where the particle would be on the next frame. Thus, rendering with a Motion Blur shutter of 1.0 would create a blurred particle along the vector displayed in the viewport.
- Opening the Shutter wider than 180 or 360 degrees would result in an exaggerated motion blur effect, but it would also affect the Motion Blur of Matte Objects and would make it impossible to composite the particle rendering into the rest of the shot.
- Using a simple MagmaFlow, we could multiply the existing Velocity Channel to get more blur without affecting the Matte Objects rendering.
- All we have to do it add a new KCM, change the Color Input to Velocity, hit * for Multiply Operator, hit Ctrl+5 for a Float Input with default value of 5.0 and set the Output to Velocity.
- No Velocity Scaling, Shutter 144.0 degrees:
- Velocity Scaling 5.0, Shutter 144.0 degrees:
Deforming PRT Loader Particles
- It is worth mentioning that particles can be deformed using almost all 3ds Max Gizmo-Based Deformation Modifiers, like Bend and Twist.
- Let's apply a Twist Modifier to the PRT Loader and set the Angle value to 5000.0 degrees:
- This is the result rendered with 8 passes Motion Blur. Notice that the Modifier not only changes the Positions but introduces new Velocities:
Acquiring Normals From Scene Geometry
- The particle system used in this example was saved from Particle Flow without assigning a direction (Rotation or Spin) to the particles.
- Krakatoa assumes the X axis of the Particle Flow particle to be its Normal vector and by default, all particles look along the world X with their local X.
- Thus, if we would enable the Normal display in the PRT Loader, the particles will all point along the missile's X axis (sideways).
- The PRT Loader provides the ability not only to cull particles, but also to acquire normals from the culling object.
- All we have to do is check the Normals From Surface checkbox and enter a larger Culling Distance value (which defines the range from the surface normals will be affected). A value of 1000.0 should be safe enough.
- Left: Original Normals along X. Right: Acquired Normals From Culling Geometry:
Pushing Particle Positions Along Normals Using Global Channel Overrides
- We now have valid normal vectors on our particles, but the Culling is performed after the modifier stack has been processed and the particles have been transformed into World Space. Thus, a local KCM would not "see" the new normals.
- We could resave the sequence with the new normals and use the new PRT sequence for our tests, but we have an alternative - the Global Channel Overrides in the Krakatoa UI provide the ability to apply MagmaFlows to ANY particles in the scene, even those not coming from PRT files. These include geometry vertices, Particle Flow Particles, Thinking Particles, Legacy 3ds Max Particles and so on.
- Let's create a new Global Override Set and apply some position changes along the new Normals we just generated:
- We open the Krakatoa GUI and expand the Global Render Values rollout.
- We then press the Create New Global Channels Override Set - a new set called KCMOverrideSet01 will appear. It will have one default Color KCM automatically applied.
- We change the Output node to Position Channel.
- We change the Color Channel Input to Position Channel.
- Then we hit the + key on the Numeric Pad to insert an Add Operator.
- We press Shift+N to create a Normal Channel Input wired to the second socket of the Add Operator.
- With the Normal channel selected, we press * to add a Multiply and hit Ctrl+4 to create a Float Input with value of 4.0
- Then we select the Multiply Operator again and hit * once more time to insert another Multiply Operator.
- We press the M key to add a new TextureMap Input Node.
- We hit the 6 key to insert a Power operator (6 because it also contains the character ^ for Power)
- We press Ctrl+3 to add a Float Input with value of 3.0
- We select the Power operator and press Ctrl+M to insert a Magnitude Operator.
- Now all that's left to do is pick a Texture Map to displace the particle positions along their Normals:
- In the Map Input node, we use the Get Texture Map... button and pick a Cellular Map.
- We open the 3ds Max Material Editor and select an empty slot.
- We press the Put To Active MEditor Slot button in the Map Input node and now we can edit the Cellular Map - change the Size to 10.0 and copy black into the first division color.
- No Push, Original Positions:
- Push By Texture Along Acquired Normals:
© 2009 Prime Focus Software - Designed by Velocity Design Works
This tutorial reflects the features and workflows of Krakatoa v1.5.0
In this first tutorial, we will build a simple particle system that will be used to explore many fundamental components of Krakatoa.
Since the file was saved from 3ds Max 9, it will also open in 3ds Max 2008, 2009, 2010 and higher.
Quick Render Test
Let’s get right into what Krakatoa does best – quickly rendering particles.
Rendering a Representative Frame
- In the Time Configuration dialog, verify that the Real Time checkbox is unchecked.
- Click Play in the 3ds max Playback Controls and watch the teapot disintegrate into smoke.
- Go to frame 50, which we will use as our test frame.
- Assign Krakatoa as the current renderer.
- If you have installed the Krakatoa MacroScripts as explained in the topic Krakatoa MacroScripts, simply click the Krakatoa GUI icon. If the current renderer is not Krakatoa, you will be prompted about switching to it - answer Yes. If Krakatoa is already the current renderer, the GUI will open immediately.
- Alternatively, open the Render Dialog, assign Krakatoa as the production renderer (as described in Configuring the Renderer) and click OPEN KRAKATOA GUI in the Renderer tab. This method is not recommended because the current renderer will be replaced and cannot be restored, while the former method can switch back and forth between Krakatoa and the previous renderer.
- Click the >Iterative [Full] checkbutton above the large RENDER button in the Main Controls rollout of the Krakatoa GUI. This will ensure that only the current frame will be rendered and that no file will be written to disk even if an output path was specified. The RENDER button will now read RENDER FRAME.
- Leaving all settings to their defaults, click the large RENDER FRAME button. Krakatoa will request Particle Flow to update the particle system up to frame 50, and will then render the frame.
The rendered result is far from impressive, but it provides what we are looking for at this stage – a quick preview of the contour of our particle cloud. At this low particle count and default render setting, you can begin to make out curves and swirls in the cloud. Viewport playback is very fast, so you can easily preview the general motion of the particle system.
We have achieved a shape of sufficient visual interest for our test renderings, but the particle count is so low that it is difficult to make out any detail. At this point, you will increase the number of particles.
- Select the PF Source 01 event in Particle View and change the Quantity Multiplier > Viewport % to 1.0 - this will make sure only 1% of all particles will be displayed in the viewport.
- In Particle View, select the Birth 01 operator and set Amount to 1,000,000. This increases our particle count 100 times, but the viewport will display only 1% (10,000 particles), keeping the redraws fast.
- In the Krakatoa GUI > Main Controls rollout, click the RENDER FRAME button again.
The Particle Flow will have to update all particles up to frame 50 again - you can see the progress in the status line as usual and it will take a long while. After that, Krakatoa will acquire the new particles and render them.
There are now sufficient particles to show more detail and show self-shadowing within the cloud.
Quickly Changing Overall Color
When you render a frame in Krakatoa, Particle Flow will temporarily cache the particles and save you the time of computing the particle system for subsequent renders. Of course, if you change Particle Flow settings, or switch to another frame, Krakatoa will need to request the actualized particles and Particle Flow will count up again.
There are more advanced methods of caching to memory and disk that will be discussed in later sections.)
You can quickly change the look of the test frame by altering some Krakatoa settings and rendering again from the cached particle data:
- Expand the Global Render Values rollout, check the >Override Color checkbutton and change the color swatch next to it to an electric blue hue, approx. R:0 G:128 B:255.
- Click RENDER FRAME to see your particles in their new blue color.
- Notice that Particle Flow did not recalculate particle positions - Krakatoa used cached data from Particle Flow to speed up rendering.
- In the Density Controls area, change the Density Exponent from –1 to –3.
- This will reduce the rendered density of each particle by two orders of magnitude (100 times less!)
- This is a good idea because we increased the number of particles 100 times and the resulting cloud is now too dense and dark, blocking almost all light at its surface without letting it pass through and illuminate the other particles.
Note on Density settings:
Density Per Particle and Density Exponent work together to create a simple editing mechanism
for particle density. The Density Exponent provides a quick method to dial in density adjustments
in powers of 10 and simplifies entry of very large or very small values.
In our example, a Density Per Particle of 5 and a Density Exponent of –3 equate to an overall
setting of 5 x 10-3 or 0.005.
- Again, RENDER FRAME shows the results of your changes almost immediately.
Changing Lighting Density Independently
- Right now, Krakatoa performs two render passes - one calculates the Lighting and the Self-Shadowing (Attenuation) of the particles, the other (Final) pass draws the particles in the frame buffer.
- Both are currently using the Density settings of the Final Pass - 5.0/-3, which means that the particles have the same Density from both the point of view of the light as well as the point of view of the camera.
- Krakatoa allows us to change this and make the particles more transparent to the light than to the eye.
- To do this, we have to check the option >Use Lighting Pass Density Settings.
- Here, we can enter a separate value for the Lighting Pass Density.
- Let's say that we want the Lighting Pass to use the current 5.0/-3 Density, but the Final Pass should render the particles 10x more dense using 5.0/-2.
- We enter -3 in the Lighting Pass Density Exponent and -2 in the Final Pass Density Exponent:
- If we would render now, we get more solid-looking particles but with the same shadow density as in the previous test:
- At this point, let's switch back to the previous settings - turn off >Use Lighting Pass Density Settings and set Final Pass Density Exponent back to -3.
- To obtain a different look, we can make the particles completely self-illuminated. This will render the particles flat without any self-shadowing.
- To do so, we just
- Enable >Override Emission in the Global Render Values rollout,
- Check the >Use checkbutton next to it (it is a convenient duplicate of >Use Emission in the Main Controls rollout)
- Swap the Color and Emission swatches by dragging and dropping the one color into the other, thus turning the Color black and Emission blue:
Note to users of previous Krakatoa versions:
In versions of Krakatoa prior to v1.5.0, turning off lighting would have
rendered the particles self-illuminated. Krakatoa v1.5.0 introduces
explicit Emission controls and data channel and would render particles
completely black if no lights are present in the scene and Emission is not enabled.
There are significant positive implications related to this change, for example
emission can now be specified per particle, additive rendering can be mixed
with volumetric rendering per-particle by just specifying different values for
Color, Emission and Absorption and so on.
Illuminating Self-Illuminated Particles
- In the previous step, our particles were completely self-illuminated despite the fact they were still illuminated by a Spot Light.
- This was because we were overwriting the Color of the particles with black, so the particles would not be lit at all (light multiplied with black results in black!)
- To make the particles both illuminated by the scene light and self-illuminated at the same time, we can just disable the >Override Color checkbox and we will get our green particles illuminated by the white light and then glow in blue:
Basic Additive Rendering
- To complete this exercise, let’s try yet another style of rendering.
- In the Global Render Values, turn off >Override Emission.
- In the Lighting and Shading group of the Main Controls rollout, enable >Force Additive Mode.
- Click RENDER FRAME to see the additively rendered particle cloud
Note to users of previous versions of Krakatoa:
When >Force Additive Mode is checked, both >Use Emission and >Use Absorption become grayed out.
This is because Force Additive mode enables both these channels internally, then copies the
content of the Color Channel into the Emission Channel, while setting both Color and Absorption
to black. The result is particles that glow but don't reflect nor absorb light which is what
Additive Mode is all about. In earlier version of Krakatoa, Additve Mode was a special render
mode. Now it is possible to make even a single particle render additive by specifying its
Emission channel as color and the Color and Absorption as black!
- Let's change the Density Per Particle from 5.0 to 1.0 and the Density Exponent from -3 to -2 to increase the global density of the cloud from 0.005 to 0.01.
- Click RENDER FRAME to see your results...
Notes about Particle Counts:
By default, 3ds Max creates all Particle Flow systems with a Limit of only 100,000 particles.
However, since we opened the Krakatoa GUI after the creation of the Particle Flow,
Krakatoa has automatically increased this value to a much higher value of 100 million.
Most 32-bit systems will have sufficient RAM to render 10 million particles and more.
A 64-bit machine with 4GB of RAM can handle about 60 million particles, and there is
nearly no practical limit to the amount of RAM you can install.
Krakatoa can use cached particles from Particle Flow to allow for fast rendering adjustments or even changes in the point of view, preventing the time-consuming recalculation of your particle system. In a few quick minutes, we were able to produce swirls of silt, wispy smoke and tendrils of plasma energy – all without waiting for Particle Flow to repeatedly update. Krakatoa also provides a user-controlled manual caching system for lighting and particles from any source which we shall explore later.
Krakatoa can produce dramatically different looks rendering Volumetric or Additive particles and can quickly provide variations in particle density. Multiple options are available for color assignment and density modification.