|
|
"Mike Miller" <mil### [at] gmailcom> wrote:
> "Chris R" <car### [at] comcastnet> wrote:
> > I decided to start a project with more of a story line, and was thinking back on
> > Stanislaw Lem's book "Cyberiad" as inspiration. I melded that with the
> > sculpture, "The Thinker", and cogito ergo sum, and came up with this scene.
> >
> > My robot, "Cogito", has been imprisoned on a planet in Lem's world and has been
> > contemplating his errors for so long that he has rusted in place and doesn't
> > even notice that the door is standing open.
> >
> > The model for Cogito is completely parameterized (using dictionaries!) so I can
> > pose him however I want if I decide to let him get up from his stoop and escape.
> >
> > I started modeling the rust using macros I created for modeling painted
> > surfaces, where the paint may show part of the underlying surface and has its
> > own surface texture independent of the object. (This technique uses an
> > isosurface function for the object, and then extends that function with a paint
> > thickness function for the paint as a separate object.) Since the rust had more
> > open space, the renders were expensive and I didn't like how they looked.
> >
> > So, I started modeling the rusted areas using a pigment pattern applied to the
> > basic shape function to get the raised areas, and then using that same pigment
> > pattern in the object's texture{} to differentiate the base object texture from
> > the rust texture. I used this on Cogito himself, all of the iron bars, the
> > chain, and the lock.
> >
> > I also used the pigment_pattern approach to apply texture to the walls and the
> > stoop to model where the stone was wet from a leaky roof and the window opening.
> >
> > The attached render is using a moderate anti-aliasing setting, which seems to
> > work fine given the rough nature of the scene surfaces, and is not using
> > radiosity. (I will need a few long days to do that, so maybe later.)
> >
> > -- Chris R
>
> Nice job Chris,
> I love scene and the back story. The rust material is great. Did you post the
> scene code? I'd love to see the parameterized / dictionary setup for posing. I'm
> just getting back to this forum so sorry for the late replies on all the cool
> work being done here.
> Mike.
Thanks, Mike. I haven't posted the scene yet. I have such a network of nested
tools I include that it takes a while to get everything together into a package.
I can post the code for setting up the posing, as that is pretty simple:
//=============================================================================
// Cogito Configurations
//
#declare Cogito_side_left = 1;
#declare Cogito_side_right = -1;
#macro Finger_config_create()
#local _config = dictionary {
.distal_rot: <0,0,0>,
.middle_rot: <0,0,0>,
.proximal_rot: <0,0,0>
}
;
_config
#end
#macro Hand_config_create(Side)
#local _config = dictionary {
.side: Side,
.thumb: Finger_config_create(),
.thumb_metatarsil_rot: <0,0,0>,
.index: Finger_config_create(),
.middle: Finger_config_create(),
.ring: Finger_config_create(),
.pinkie: Finger_config_create()
}
;
_config
#end
#macro Arm_config_create(Side)
#local _config = dictionary {
.side: Side,
.arm_rot: <0,0,Side*90>,
.elbow_rot: <0,0,0>,
.wrist_rot: <0,0,0>,
.hand: Hand_config_create(Side)
}
;
_config
#end
#macro Leg_config_create()
#local _config = dictionary {
.leg_rot: <0,0,0>,
.knee_rot: <0,0,0>,
.ankle_rot: <0,0,0>
}
;
_config
#end
#macro Torso_config_create()
#local _config = dictionary {
.waist_rot: <0,0,0>
}
;
_config
#end
#macro Head_config_create()
#local _config = dictionary {
.neck_rot: <0,0,0>,
.head_rot: <0,0,0>,
.left_eye_glow: 0,
.right_eye_glow: 0,
.left_ear_rot: <0,0,0>,
.right_ear_rot: <0,0,0>
}
;
_config
#end
#macro Cogito_config_create()
#local _config = dictionary {
.left_leg: Leg_config_create(),
.right_leg: Leg_config_create(),
.left_arm: Arm_config_create(Cogito_side_left),
.right_arm: Arm_config_create(Cogito_side_right),
.torso: Torso_config_create(),
.head: Head_config_create()
}
;
_config
#end
// End Cogito Configurations
//=============================================================================
#local _config = Cogito_config_create();
#local _config.head.neck_rot = <0, 45, 0>;
One of the side projects that will pull me away from this for a while is to
clean up some of my most-used libraries so I can post them with tutorials here
without needing my entire tree of POV code.
-- Chris R.
Post a reply to this message
|
|