Galleries & Community for creative and Independent authors

 Guest| Group "Guests"| My profile | Registration Welcome Guest    

 News | EventsGallery | Video | Music | Articles | Tutorials | Forum | Links | FAQ | Info | Job's       Members | Join | Submit


        [ Main · New messages  · Forum rules · Search · RSS ]
Page 1 of 11
Forum moderator: Admin 
Forum » Art Discussion » 3D Digital Art » how to project object color information to particles?
how to project object color information to particles?
Piotrek Date: Tuesday, 20.10.2009, 17:12 | Message # 1

"Krakatoa supports depth and motion blur, alpha, matte and UV coordinates (projected from the camera)."
link - (just scrool down till you see a blue car)

here you can see the explanation of the effect

(the middle flash video "Watch an example of the what Krakatoa can do...")

but they dont say in detail how they projected color to particles by rendering from different camera angles anyone knows how to do that? i searched tons of forums and sites. The plus is that i understand krakatoa a lot better now, but this effect is still a mystery to me.

Guest Date: Tuesday, 20.10.2009, 17:12 | Message # 2

There are now about 4 different ways to do it, and in Krakatoa 1.5 there will be a fifth!

A word of warning - the latest tutorial on Studio Monthly about a car disintegration posted last month and written by yours truly turned out to hit a bug in the currently downloadable 32992 build which we will try to patch next week.

In the mean time, you can use one of the methods posted on the Tutorials pages of Krakatoa itself (no idea how you missed those):

Here is the basic idea:

1. You render an animation in any renderer, for example Scanline, mr, Brazil, VRay, fR, whatever.
2. When you create your particles, you store in a Mapping Channel the initial position of the particle in world space. You do this just once at Age 0 so later you can check where the particle came from.
3. You calculate the Camera Projection for each particle (methods can vary) using the original world space position of the particle from Age 0 stored in the Mapping Channel instead of its actual position on the frame.

The result is a particle that moves freely in space but acquires the color of the pixel corresponding to the world space position where the particle was originally created. So the color from the projected image "sticks" to the particle as it moves, creating an illusion of disintegration.

The original animation of the Mini was done using a Frantic Films Camera Mapping plugin which was available only inhouse. It had a checkbox to use an arbitrary Map channel as the position source, so it was a no-brainer.
The tutorial posted above emulates the same using either a Box #3 flow which performs the camera mapping calculations in the same manner, or if you don't have Box #3, a Script Operator - slower, but still usable.

The Studio Monthly version which works great with our internal builds but currently fails with the 32992 build used the 3ds Max built-in Camera Mapping Per Pixel map and Krakatoa's PFlow operators. You would project the Camera Mapping on static particles as usual and save these to PRTs. Then you would load the PRTs into PFlow including their Color and ID but NOT their Position and just blow them around with Forces - the color would stick.

michael Date: Tuesday, 20.10.2009, 17:13 | Message # 3


Really strange that your doing this as im doing some TD work, which requires me to do the same.

Currently im using the watermarked build 1.51.38002

i dont havebox#3 so i have been using the script. Only problem i am having is - I cant see the partciles in the render.

Im using a test teapot which shows a solid mass of particles in the Alpha but nothing in the colour?

I thought the particles were self illuminating and should show up. I know im missing something, its user error for sure!

Secondly once i do get them to show, if I have secondry events that will drive fume sims will I be able to add lighting to effect the new partilces with out having an affect on the cam mapped particle elements? (as i would imagine there self illuminating and wouldnt pick up scene lighting)

And lastly cos the Voxel stuff looks so nice for the Fume components of my shots. will the camera mapping work with it set to voxel? (my main problem right now is the fact the cam mapped tea pot is not visible, this is using default particle rendering)

Bobo Date: Tuesday, 20.10.2009, 17:14 | Message # 4

This might be quite simple.
Krakatoa v1.5.x does NOT render particles if they are not illuminated in some way anymore.
In previous versions, one would just set the Color channel and if there were no lights, the color would be used as Self-Illumination and the particles would be visible.

In 1.5.0 and higher though, we introduced an Emission channel which is solely responsible for Self-Illumination. If you have no lights and no Emission, RGB will be black. If you want to see the particles, set the Emission channel of the particles to their Color channel and they will render.

There are several ways to do this depending on what you are using.

Method 1:

*Open the Krakatoa GUI
*Expand "Global Render Values" rollout.
*Check both "Override Emission" and "Use" buttons.
*In the Map slot to the right of the buttons, add a Vertex Color map.
*Since the default Vertex Color map renders the Vertex Color (Map 0) channel which is equivalent to the particles Color channel in Krakatoa, you now have your particles self-illuminated using the same color they would render if they were lit by a light.

Method 2:

*Open the Krakatoa GUI
*Expand "Global Render Values" rollout.
*Press the "Create New Global Channels Override Set"
*In the MagmaFlow editor, change the Output node from "Color" to "Emission"
*Make sure >AUTO is checked or press UPDATE to commit the changes.
*Enable ">Use Emission" in the Main Controls or the ">Use" button in the Global Render Values like above.
*If you render now, the color channel will be copied into the Emission channel and will be used to render the particles as self-illuminated.

Method 3:
*If you intend to render additively, the ">Force Additive Mode" option copies the Color channel into the Emission channel automatically, while setting both Color and Absorption to black, thus producing additive rendering.

There are also local approaches when loading PRT files using PRT Loader since you can add KCM modifiers to copy the Color to the Emission channel on a per-object basis.

Why so many approaches? One word - flexibility. Since we have added full support for Emission and Absorption to 1.5.x, we had to make sure it is you who decides how and when these channels are used.

Btw, the MagmaFlow Method 2 is faster than using a Vertex Color map since it does not involve rendering maps. I rendered 12M particles generated from a GeoSphere via PRT Volume in:
29 seconds with Emission channel off (black)
33 seconds with Emission channel on and no overrides (black)
33 seconds with Emission channel on and Global Channels Override (self-illuminated)
41 seconds with Emission channel on and Vertex Color Map Override (self-illuminated)

The general speed of KCMs is typically 10M particles per second, but the simple copying of one channel into another does not really cause a performance hit, so I would suggest using the Method 2.

As for rendering voxels, the colors of all particles falling into a single voxel will be combined to determine the voxel's color. If you have approx. one particle per voxel (either very few particles in a grid or very small voxels), the result will be similar to particle rendering, but the resolution of the rendering will depend on the world units size of the voxels.

Also note that you can render without a watermark at resolutions below 480x360 which is good for quick tests and YouTube uploads.

Forgot to mention - the Studio Monthly approach works in 3ds Max 2009 with Creative Extension and in 3ds Max 2010 since a bug in the Color channel loading in PFlow was fixed. Thus, it is now possible to project colors using a simple 3ds Max Per Pixel Camera Map, then bake these colors into a new set of static PRTs and then load these PRTs back into PFlow for animating.

Last but not least, one could use MagmaFlow to produce Camera Projections, too, but this is more to show off the power of the system and is not that user friendly: ction_Mapping

If this does not solve your problem, please let me know.

Forum » Art Discussion » 3D Digital Art » how to project object color information to particles?
Page 1 of 11

Hosted by uCoz