IRTC entry

General discussion about JPatch

Postby sascha » Tue Mar 15, 2005 10:39 am

The IRTC deadline's now only about a month away, and the script is pretty hefty!

I'm afraid I can't make it in time this round. I could hack some support for bones into the modeler and animator, but the expirence with the quick and dirty animator last round has shown that this is rather counterproductive - I've spent much longer to fix the quick and dirty hacks than I spent implementing them, and had to rewrite most features from scratch again... :(

I'm quite happy with the animator as it is right now (I know, many things are not user friendly at the moment, but I mean the underlying concepts and their implementation), so I can focus on the modeler and bones support again.

In short: Although I really like your plot, I'm not going to submit a JPatch animation this IRTC round, I hope that isn't too disappointing.
That shouldn't stop anybody else from doing so! If you or someone else decides to make an animation with JPatch for this round, you'll have my full support and if there are things to tweak in JPatch, I'll do what I can.
For the bones support (and rotate/move/scale manipulator tools in the animator), let's wait for the next IRTC round...
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Tue Mar 15, 2005 9:09 pm

Sigh. :(

Oh, well. Here's my rewritten script:
    The location is an dreary office at a transit station. A bored clerk is standing behind a counter. He looks at his terminal, then calls out:
    Clerk: Next!
    A rather poorly modeled robot rolls up and speaks in a cliched "robot" voice:
    Robot: One ticket to the IRTC, please.
    Clerk: OK. Your name?
    Robot: Rusty.
    Clerk peers at the robot.
    Clerk: Dude, I don't think so. Rusty's more... round. Like a tin can.
    Robot: Like this?
    Robot mophs shape, looking much like a can of soup on wheels.
    Clerk: No, more yellow. And less arms.
    Arms fall off robot, and he changes color.
    Robot: I can do yellow.
    Clerk: Sorry, dude. Rusty's a silent robot.
    The robot wheels away. The clerk looks up again.
    Clerk: Next?
    A young girl appears at the window. Her voice is that of an older man:
    "Girl": I'd like a ticket to an teen chat room.
    Clerk steps back horror.
    Clerk: Dude!
    Clerk hits red button, "Girl" drops out of site. Clerk looks out again.
    Clerk: Next?
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Thu Mar 17, 2005 10:02 am

Heh :)

We'd have no bones, that means we can't even turn the head, etc...
But if we use only close ups of the clerk, that might be no problem.

The second problem is that JPatch can't morph materials at the moment. As a work-around, we could use POV-Ray to render it and make the material morph using POV-SDL in the material definition.

The girl is maybe too much work to appear just for a couple of seconds - and we have the problem that there are no bones yet again.

The rest can be done with morphs, so theoretically JPatch should be ready enough. I like the morphs idea for the robot - as it has a shiny metal chassis, we could morph it like liquid metal (like in Terminator II)...

So, yes, we could do that. Would you do all the sound and voice recording/mixing again?
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Thu Mar 17, 2005 5:30 pm

Yes, I could do the sound. I'll test it a bit more for clarity, too. :D

I was thinking the clerk would be the Emoticon character that you put together, with a pair of floating, disconnected hands. An emoticon would make sense (it's a computer character), and it would take care of the problem of not being able to turn the head. In fact, you could potentially have a lot of motion in the character - it could bounce up and down, turn it's head, and so on.

I think the emoticon could get away with some very extreme poses - for example, disgust and shock when the "girl" appears.

Or you could go with a "PacMan" character:

Image

This sort of robot character is pretty appealing, too, although I think the emoticon would be more appropriate (and easier to animate):

Image

For the color change, you could just cut to a shot of a yellow model. In 'The Wizard of Oz', the "horse of a different color" was done that way - a lot of different shot, each one a different color. It left the impression that it changed colors.

Similarly, you could move from pose to pose shots with a non-boned character by replacing it with different version of the character posed in the modeler. Slowly zooming the camera and adding rotations to the character would give a bit of "action" to the shot, although not much.

Hrm... I think going with the disconnected hands is a better approach. :?

For the "Girl" character, it doesn't have to be a good model. In fact, it would be better if it were some sort of crude caricature, since that's really what it is. You could model the body and neck, and have the head as a seperate object. That would take care of head turns and such. The same thing with the arms: frame the shots so the elbows don't show, and model the hands and forearms as seperate objects.

You could do a sort of "low poly" effect on the character, just to emphasize the effect. Not really what I had in mind, but it's the general effect:

Image

Notice that these characters have no joints, just floating limbs. This would fit in with the character, and get around modeling and animation problems. (When the character falls down the hole, the arms could hang in the air for a moment, and then follow).
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Fri Mar 18, 2005 6:18 am

Personally I think it's better to focus on a single punchline, that is the Rusty imitator.

How about that: The animation starts with a shot of a checkered floor. Suddenly a shape starts morphing out of the floor - it's our fake Rusty robot. He drives to the clerk, talks to him, morphs through various shapes and is finally booted out by the clerk. He leaves with the words "I'll be back...", image goes black, we hear some seconds of the Terminator soundtrack, credits...

:?:
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Fri Mar 18, 2005 8:10 am

I originally envisioned of the "Girl" as a short throwaway bit following the credits, sort of a bonus track. The reason I added it to the primary sequence was I thought the end of the "Rusty" dialog lacked punch; it's more an in-joke than anything else. But it would be a lot of work, and it'll be tough enough to get the main sequence done in time.

I sort of like the "I'll be back" bit, but it only really works if you morph the robot into an T1 sort of robot, or at least give it glowing, red eyes.

Starting with a checkered floor is good, since it's such a raytracing clicke. You'll have to figure out how to get a teapot into the sequence as well.

I still like the idea of the trap door:
    "Rusty" is now angered, his eyes are glowing red, "Terminator" style:
    "Rusty": "I'll be...
    Clerk punches red button, and "Rusty" drops out of sight.
    "Rusty:" ...baaaaaaaack!
    Clerk: Bye, dude.
If the clerk were a robot as well, that would also make sense.

There's not really that much punch to the scene, though. How about:
    "Rusty" finally loses his temper, and morphs into a "Terminator" style robot.
    "Rusty": How about this?
    Clerk pushes red button on the counter, and "Rusty" drops out of sight.
    Clerk: Hasta la vista, baby.
    An echoing voice replies:
    "Rusty": I'll be baaaack...
    Clerk: Next?
I think the ending to that is a bit stronger.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Fri Mar 18, 2005 8:56 am

Yes, the trapdoor idea is nice.

I'd swap the last words though:

Clerk recognizes that Rusty is an impostor and tells him to leave
We hear a morph sound
Robot has morphed into a T1, we see the head with its glowing red eyes:
Image
Robot:(original Schwarzenegger voice) I'll be back
Clerk:Hasa la vista baby (pushes button)
T1 disappears in trap door

I think I can model the T1 skull...

You'll have to figure out how to get a teapot into the sequence as well.

You mean this one? We can use it as one as the shapes Rusty morphs through, just like in your original script.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Fri Mar 18, 2005 9:14 am

Yes, that's the teapot. Did you notice that it's patch data? :D

It's not necessary that the "Terminator" look much like the actual T1 design; a shiny metal head and glowing eyes would be enough.

Either way of putting the dialog works fine with me. :)
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Fri Mar 18, 2005 9:33 am

Ok, here's a list of changes to JPatch required to make the animation:
* Output frame-number variable to POV-Ray so custom objects/textures can use this number for animations.
* Output x/z reference-geometry as u/v coords (needed for the checkered floor morph)
* Allow "external objects" - these are objects JPatch internally represents as bounding-box (or any other placeholder object). The user can edit the rib or pov-representation of these objects in a text-editor. This way, JPatch can control (i.e. move/scale/rotate) external objects that were e.g. modeled and animated in POV-SDL...

That's pretty straightforward.

The external objects are necessary, e.g. for Rustie's wheels and chain-drive. It's hard to animate it in JPatch, but easy to do with POV-SDL...

Btw, we should switch to the "IRTC impostor" thread...
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Mon Aug 07, 2006 7:49 am

I noticed that the Moai animation was posted on the website, and had another look at it. I was quite impressed - it looks really good. Well, except for the aliasing of the water, that's always problematic.

But the vocals are still unintelligible as ever. My son could figure it out (or maybe he just remembered it), but my daughter didn't have a clue what was being said.

Would it be possible to put together a version with captioning added? In retrospect, I think it would have gained a much higher score with captions... :?
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Mon Aug 07, 2006 4:54 pm

I noticed that the Moai animation was posted on the website

on which one?

it looks really good

Yes, I was quite pleased with it, considering that it was the first animation made with JPatch (and IIRC the first one rendered with Inyo).
Inyo did a great job (POV-Ray couldn't have done better - in fact, we've had 3d procedural textures with reference geometry - you can't do this with POV-Ray! And the rock texture IMHO looks better with FBM instead of POV-Ray's "turbulence"). The normals were wrong, so there are some shadow-line artifacts, but this has been corrected by now (JPatch exported the wrong normals), and due to lack of time Inyo's more sophisticated options were not even turned on (e.g. Ambient Occlusion).

Well, except for the aliasing of the water, that's always problematic.

You're right, you'll see the same problem with almost every raytracer (it's like the aliasing of the "checkered floor" texture). POV-Ray has nothing to offer to prevent this sort of "shader aliasing", so you have to use insane levels of supersampling to prevent this. The proper strategy is to anti-alias (cut off high freqencies) the textures at the shader level, but this requires knowledge of the surface derivatives (du, dv) - you'll get them for free in a scanline renderer (like REYES), but it can be done with a raytracer as well (remeber my ray-differentials feature-request? :wink: )

Would it be possible to put together a version with captioning added? In retrospect, I think it would have gained a much higher score with captions...

Yes, sure - I'll try to re-render it (with corrected normals, perhaps AO and with a higher level of antialiasing for the water surface). I can add captions with IMPEdit - alternatively you could re-record or re-mix the soundtrack 8)

I'd love to use the Moai again in a later animation, perhaps once curves (fur, hair) has been added to render some nice looking grass).
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby pndragon » Mon Aug 07, 2006 5:29 pm

Are the Moai going to become the signature animations of Jpatch?

--- Jim
"We're so sorry, Uncle Albert,
But we haven't done a bloody thing all day."
--- Paul McCartney
pndragon
 
Posts: 591
Joined: Sun Dec 05, 2004 1:27 am
Location: North Carolina

Postby sascha » Mon Aug 07, 2006 5:34 pm

Are the Moai going to become the signature animations of Jpatch?

That's a nice idea, but it's too early to tell. I mean, by now I've made no more than two animations with JPatch :?
I think once JPatch 1.0 is finished it's time for a logo and/or mascot competition :)
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Mon Aug 07, 2006 8:48 pm

sascha wrote:
I noticed that the Moai animation was posted on the website
Ooops, sorry. This website. Sometimes I'm rather myopic.

Yes, I was quite pleased with it, considering that it was the first animation made with JPatch (and IIRC the first one rendered with Inyo).
I remember the frustration of trying to get decent results out of Inyo in a reasonable amount of time, since this was all being done at the last minute. The credit for textures is (of course) all yours.

The proper strategy is to anti-alias (cut off high freqencies) the textures at the shader level, but this requires knowledge of the surface derivatives (du, dv) - you'll get them for free in a scanline renderer (like REYES), but it can be done with a raytracer as well (remeber my ray-differentials feature-request? :wink: )
Yes, I remember. I'll try to get it into the next release. :?

Ray differentials work when the texture extends over a large area of the texture map, but when the area becomes too large, it's sort of impractical to average the texture. So what do you do when something's far away? I can think of a couple of possibilities:
  • Average the texture, and take a huge rendering time hit.
  • Randomly sample the texture, but get noise in the result.
  • Pseudo-randomly sample the texture, but get aliasing in the result.
  • Fade out texture as the ray differentials become to large.
  • Crossfade between a "micro" and a "macro" texture.
A simpler solution might be to simply fade texture out with distance, which can be done without ray differentials.

By the way, Pixar used raytracing extensively in Cars, because of reflections, inter-reflections, and sharp shadows. The big problem was handling all the geometry in the cache. The solution was to use ray differentials, and only subdivide patches when the differentials were small enough. I'll have to keep this in mind as scenes grow in complexity for Inyo.

Yes, sure - I'll try to re-render it (with corrected normals, perhaps AO and with a higher level of antialiasing for the water surface). I can add captions with IMPEdit - alternatively you could re-record or re-mix the soundtrack 8)
Actually, I'm pretty fond of it as a sort of "historical landmark". Adding captions would be a minimal intrusion. Re-rendering (and fixing the audio) might be a fun project to show how JPatch has improved, especially with things like grass and such. It would be neat to be able to "sneak" in the same animation again under a different topic. :D
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Mon Aug 07, 2006 9:43 pm

Ray differentials work when the texture extends over a large area of the texture map, but when the area becomes too large, it's sort of impractical to average the texture.

I'm not sure I fully understand. I haven't thought this through, but I think there are two cases:
1) Image maps: This one is easy - the solution is called MIP mapping and is implemented in almost all modern graphics cards. For realtime 3D graphics they use trilinear filtering (which is an extension of the bilinear texture filter - in addition to interpolating texture coordinates it also interpolates between two mip-map levels to get rid of the hard change of blurriness when switching from one mip-map level to the next). High-Quality renderers could use cubic instead of linear interpolation. In any case anisotropic filtering should be used.
2) Procedural textures: This one is more tricky - the pattern generator must be able to filter out high frequencies (depending on the du/dv values it gets from the renderer). Most patterns use turbulence or FBM (fractional brownian motion) with several "octaves" - to filter out high frequencies simply fade out the higher octaves. Other patterns must be treated differently - the "step" function in the checkboard pattern e.g. must be replaced with a "smooth step" function. More complex patterns will need more work, shader writing is an art on its own.

In any case, this not the responsibility of the renderer - the only thing the renderer has to do is to provide reasonable du/dv values - the rest is up to the shader.

I'm not sure if tools like shaderman or the material editors of most 3d packages are able create high quality antialiased shaders - I guess most of the shaders used in high end productions are hand written, or at least fine tuned by hand.

There's a chapter about shader-antialiasing in "Advanced RenderMan", if you're interested I can scan a few pages and send it via email.
So what do you do when something's far away?

I'm not sure - but perhaps it's a bad idea to use the same texure in close-ups and in "far away" shots. One could use level-of-detail to use different models (with different levels of detail and different textures). If a shader needs to work on such a large scale it must be written that way, but in other cases it might be sufficient if it works within a given range (within a shot). Other (e.g. close up) shots could then use a different shader.
RenderMan has builtin support for LOD models, but I have to check if it can switch between shaders too.
This will be a problem in shots that start with a spaceship far away and end with a closeup on some of the ships details, but these shots are (hopefully) an exception.

Pixar used raytracing extensively in Cars

Did you know that they used BMRT as a "ray server" for prMan in "A Bug's Live"? prMan got native raytracing support in a later version (I think it was 11).
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

PreviousNext

Return to General discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron