PDA

View Full Version : How to do this "Harry Potter" effect?


DJ_
05-25-2009, 02:55 PM
Hi guys,

I'm wondering if there's anyone out there that either knows of has a good guess about how they did this effect in the Harry Potter movie Order of the Phoenix.

http://3.bp.blogspot.com/_DeutwC_pLZ0/STf1U0CqkEI/AAAAAAAAAZM/t5FPKXHkbiU/s400/harry-potter-7.jpg

I'm refering to the shiny parts arround the animal itself. Are those animated surfaces/soft bodies with facin ration shader on them? Or are they a whole bunch of particles?

Does anyone know a good particle renderer for Maya? 3ds Max had Krakatoa (or something like that) that is able to render tens of millions of particles in a scene. What I've tested so far in maya (HW render and renderman) gets slow at arround 500k particles and I have no idea of how to get an apparently "smooth surface" from particles in maya. Using multipoint just makes clouds out of everything....

Thanx in advance.

HowardM
05-25-2009, 06:03 PM
dneg did the fx with their inhouse particle/fluids.
http://www.dneg.com/projects/harry_potter_and_the_order_of_the_phoenix_63.html

Crovex
05-26-2009, 06:22 PM
That effect was done in Houdini.
But you can do it in maya using mel and a bit of the history.
The idea is that you emit particles, use those particles to create curves, then loop through the curves to make a surface, then use textures (mainly opacity ramps and displacemt) to shade the surface. That's how you get the nice smooth interpolation.

(It really is "easier" in houdini though).

I made a tool (digital asset) and some tutorials for houdini that cover this stuff and was actually inpsired by that shot and a few others (like the trails in of the bad guy in The Chronicles of Riddick).

It's part of this dvd:
http://www.3dbuzz.com/xcart/product.php?productid=58

(The little trails in the beginning show it and the tool is shown at the end with a few variations)
http://www.peterclaes.be/video/pca_0030.avi

Giap
05-27-2009, 04:13 AM
If I were you, I would do this.

- Create a small curve and make as an emitter.
- Free transformation and center pivot that curve.
- Create another curve and make it as an animation path for the first curve.
- Key frame the rotation the emitter curve when it turns (depend on the motion path). If you are good at coding, then you can create an expression to make it rotate automatically. How? I don't know but I think coders could do that.

For the Emitter Attribute: Give the emitter rate like 1000. Direction X Y Z = 0. Spread = 0. No Tangent and Normal speed. Regular speed is 1.

For the particle shape. Change it into multiStreak (line width = 1, Count = 60, Radius = 0.5, tail fade = -1, tail size = 7). Conserve = 0.9. Inherit factor = 1. Life span = it's up to you :D

When I read this thread, the idea poped out and I did a test. It doesn't give a awesome result like in the film but I think if I give it a multi pass particle, I may get an interesting result.

I'm a beginner with Maya Dynamic so I only have that simple thought. Don't call me a noob if you did try this method :D

DJ_
05-27-2009, 09:30 AM
Thanx for the replies guys......

Interesting tutorials there Crovex. I've seen that effect in several ocasions and always thought it needed some heavy scripting to get it done. Too bad your tutorial is for Houdini... I actually found one simple one for Maya at modern mayhem (bottom of this page (http://www.modernmayhem.com/home.html) ). He uses Maya's softbodies to create the surface dynamically. Works like a charm.

I would really like to see a strong particle renderer for Maya. Just looking at this guy's work (http://www.hosok2.com/project/dataExpansion_2/dataExpansion_2.html) with maya's multipoint particles makes it look pretty simple to so something like Krakatoa for maya. Maybe some day in the future.........

ctp
05-27-2009, 10:41 AM
Agreed! We need a stronger particle renderer for Maya. Something like Krakatoa for Max.

It's been a while since I fiddled with millions of particles, but back in the day when the Renderman-for-Maya plugin came out, I found that it crapped out at less than 1 million point particles.

However, the Renderman Artist Tools + Renderman Pro Server solution (what later became Renderman Studio I believe) handled 30 million particles pretty well, even with self-shadowing by using Renderman's deep shadows. Though probably not quite as fast as what it seems Krakatoa can do.
Also, first you needed to write a script or plugin to export several seeds of particles... like run the sim with say a million particles using seed # 1, export to a RIB-file, run # 2, export, etc, and then have Renderman collect the RIB's into the render. Simply because Maya would choke when you tried to sim severeal million particles at one time.

Like I said, it was a few years back. We didn't use 64bit versions of the apps then. It probably has potential for a lot more now.

If you have access to or can afford the Renderman Studio solution with the Pro Server renderer running on a farm, give it a go. It's a quite different experience from the less powerful mini version of renderman.

djhush
05-27-2009, 11:41 AM
Hey, could'nt you simulate w/ softbodies in maya and then export to Real Flow to generate the particles (it handles millions of particles quite well...) and then render w/renderman och even do the krakatao (it works with real flow aswell...).

Fridens
//Anders

DJ_
05-27-2009, 12:15 PM
Cool ctp... I didn't know that renderman studio could render that many particles. Sounds rly nice. Unfortuantely we don't have that. I work on a small studio and the "small" Renderman for Maya is the option that is available for us atm. The tests I've run with it started to choke at about 500k particles, so the HW renderer actually did it faster.

Yeah djhush... I suppose that could work. But you're talking about a pipeline of 4 different programs there. Atm we don't have a license for Real Flow, neither Max nor krakatoa. If there was a stand alone version of krakatoa I would definately give it a go, but since it's a Max plugin atm, it would be easier to just simply do the effect in Max instead.

DJ_
05-27-2009, 12:32 PM
Oh boy... I would really love to see Duncan posting on this thread: "Don't worry, nParticles in Maya 2010 will be much lighter to simulate and will have a new 'Adaptive Multipoint' render type allowing it to create tens of millions of smart particles at render time." ... or something like that ;)

viki164
05-27-2009, 01:02 PM
how abt simulating particles with different random seeds & storing them as a individual particle cache. & load all iterations with cache data into one scene So as to give million particle feel to the effect ? I hav done this multiple times & it has served my purpose or goal.
rendering will be another issue but I hav noticed rendering wrks faster with cache data. so giv a try!
hope it might luk good with few cached particles group together.
vik

DJ_
05-27-2009, 02:31 PM
Thanx Viki. That is probably what I'm going to do. Not that it is a bad way of doing it...

I guess I'm just jealous of max for having krakatoa and the big studios with their super developed inhouse tools of awesomeness.

Crovex
05-27-2009, 04:45 PM
Agreed! We need a stronger particle renderer for Maya. Something like Krakatoa for Max.

It's been a while since I fiddled with millions of particles, but back in the day when the Renderman-for-Maya plugin came out, I found that it crapped out at less than 1 million point particles.

However, the Renderman Artist Tools + Renderman Pro Server solution (what later became Renderman Studio I believe) handled 30 million particles pretty well, even with self-shadowing by using Renderman's deep shadows. Though probably not quite as fast as what it seems Krakatoa can do.
Also, first you needed to write a script or plugin to export several seeds of particles... like run the sim with say a million particles using seed # 1, export to a RIB-file, run # 2, export, etc, and then have Renderman collect the RIB's into the render. Simply because Maya would choke when you tried to sim severeal million particles at one time.

Like I said, it was a few years back. We didn't use 64bit versions of the apps then. It probably has potential for a lot more now.

If you have access to or can afford the Renderman Studio solution with the Pro Server renderer running on a farm, give it a go. It's a quite different experience from the less powerful mini version of renderman.


The biggest problem with this is the huge amount of data that is being generated. In principle it is a good idea, but in practice it can make your network very slow. What Hosok is doing is writing straight into the rib stream with a python procedural. Which is a pretty cool technique, but can be limited.

I did a little test with that technique (10 million points, could go up to 50 million on a 2Gig ram machine) - that's using prman 14 (through renderman studio) and the python api:
http://www.peterclaes.be/temp/houdini_stuff/clifford_01.jpg

If you want to read more on this kind of workflow this is an extremely interesting thread (he was rendering around 400 million particles near the end of his tests - on a 12 Gig machine using 64bit linux): http://forums.odforce.net/index.php?showtopic=8471&hl=eetu%27s%20lab&st=24

I've talked with the head of 3d at double negative and he told me that they used to have their own point based rendered, but it was simply too heavy concerning the massive amounts of data. So instead they went in the direction of fluids and voxels.

I used to be more Maya based, but the restrictions in terms of the amount of data it can handle made me switch towards other solutions. You can do quite a lot with mel and python, but to get all the data together you will need to somehow be able to feed it in little separate chunks to the renderer. Perrhaps it is possible to do it with the equivalent of a renderman procedural in Mental Ray, but I don't know Mental ray to such a degree :/.

The huge point datasets are really defining volumes at the end of the day, so you might as well use volumes with textures mapped on them instead. Personally I enjoy the pure control I have over particles through expressions and forces. Miguel Salek has done some really interesting work with this kind of technique. The approach they use is apply a (renderman) shader to the particles that acts very much like metaballs. So instead of rendering single points they render thicker types of volumes.

The current pure Maya solution is probably to slice the particles up and comp them together. The biggest problem is that you don't really have acces to the shadow depth map of the lights. So although you will be able to comp the particles together in camera depth, you won't get them to self-shadow.

The proper workflow as far as I understand is to split up the particles in different slices, first the slices are based upon the distance towards the lights so you can build up the correct shadow map. Then the slices are split up in z-depth from the camera, using that correct shadow map to shade them. And then bring them together in comp.

CGTalk Moderation
05-27-2009, 04:45 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.