View Full Version : Photoreal Popcorn techniques

07 July 2009, 07:20 PM
I need to render out popcorn to closely match photos. Getting the lighting and shaders right is proving very tricky, since popcorn has so much light passing through it without being waxy and there are so many different individual kernals light bounces around in.

Has anybody successfully rendered photoreal popcorn? If so, how did you approach it?

I'm using modo for this project, but could probably translate mental ray or Renderman techniques.


07 July 2009, 01:26 PM
The popcorn, I take it, is popping?

All right: forget about actually modeling the popcorn "in flight." If you asked the computer to try to model all the possible light-reflections among a cascade of moving kernels, well, "you'd be there all day and all night, and for what?" Is it going to produce a better arrangement of pixels? No.

A kernel of popcorn in-flight is a blurry particle: nothing more. So, you'll need one or more layers of "blurry particles." They need to be of a plausible color and there should be some darker-colored particles in there with them, but these will be enough to "sell the shot." Overlap that layer with itself at different alpha settings to add to the confusion.

Now you've got to deal with a handful of popcorn kernels as they land. How about a layer of particles flying down to strike a roughened plane of approximately the shape of the pile ... then mask off everything beyond the edges of the pile and feather that mask out, using it as an Alpha-mask. Put that behind a nice cloud of blurry-stuff and you should be fine.

And, well, a single kernel of popcorn is not that interesting and for the most part is not going to be observed closely. Therefore, a system of irregularly-shaped objects with a popcorn-photo texture painted on them should do nicely. Don't get the camera too close, because nobody in real life sticks his head into a popcorn popper. Send a nice particle system gushing out of the popper assembly. Skip the physics simulation.

In the end, you're probably going to have a few quick cut-away shots of the popper, each only a few seconds in length, but you'll plan each one of these separately ... including in each one only what they need to have to sell the shot. If it doesn't move the shot forward, leave it out. The viewer will instantaneously regard all of them as a completed sequence, and after all, will rely very heavily upon his contextual knowledge of "what a popcorn-popper looks and acts like," once he sees that it is a popcorn popper.

Don't forget the greasy!

You don't have to "model physical reality" to create convincing CG. Usually, in my experience, it is very wasteful to try. Dorothy flew away to the Land of Oz in what amounted to a great big sock, and all the world flew away with her.

07 July 2009, 07:03 PM
Did he meant he wanted to do animation with little kernels? I had the impression he wants to do close-ups. Perhaps I'm overlooking something.

07 July 2009, 07:14 PM
In this case, it's a bag of popcorn. The animation is demonstrating a new bag design, not the popping of the popped corn. So the key issue is getting the right look for the popcorn in the bag. The best solution, thus far, has been a fairly simple shader, but with an colorized ao pass multiplied on top that doesn't darken the shadowed areas much, but saturates the color. The individual kernels had be be modeled more carefully than we initially believed, with a lot of edge detail. Popcorn has a really strange shape: being pillowy and hard-edged at the same time. We hadn't captured enough of the edge aspect and that turned into a problem.

07 July 2009, 07:52 PM
Do you really attempt to model the kernels with all the details? I wouldn't suggest that. Better build a simple twisted 2D-shape, give it depth( in 3dsmax: shell-modifier, than collapse it), give it displacement and use a map that has smooth and hard properties.

For the shader ... depends on how much you will see from the kernels aaand where the light is coming from. But I bet it will just look naturalistic with sss. Light-yellowish diffuse, 50-60% Fresnel refelections wich are blurred ( will have to test, how much looks right ) and sss which should be...arg... which software do you use? Don't know how to config them for sss, since every works a little different when it comes to settings. Just remember that the density of popcorn isn't high, and that it will more likely pass the light trough the object and just a little back-scattering it. Sorry, currently my app is blocked, therefore I cannot test it.

07 July 2009, 08:21 PM
We used a good amount of sss, which helped, but didn't completely solve the problem. What was deceiving in our first go was that individually, the kernels look one way, but when grouped, the sss becomes more dominant. With Modo, at least, I couldn't control the color of the shadows enough and had to turn off all shadows, using just the ao pass.

Vis-a-vis displacement, we used some displacement for the small surface details, but I'm not sure how to paint displacement like would be required for popcorn. Is there a good method for painting displacement (or, probably, normal mapping, since the popcorn would have to displace along multiple axis)?

07 July 2009, 02:09 AM
Generate a random map, apply it in a simple manner to the kernels. Try for example some grunge-tex, make it grayscale, enhance the contrast, apply it to the model, look which properties of the map had which effect. You will have to test those things...

Perhaps some testrender would be nice. Might be the only way to help with the shader.

CGTalk Moderation
07 July 2009, 02:09 AM
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.