Modeling Theater Sets with POV-Ray

I got a lot of compliments about the computer model I built for Harvey’s set and a few people asked me how I did it. My way is a bit computer geek intense, so I don’t recommend you do it my way unless you’re a math graphing geek like me. If you’re used to creating maps for games like Unreal, you should check out other CAD and 3d modeling tools, like Blender… But anyway, here’s how I did it.

I used POV-Ray. I’ve always been a command-line nerd and POV-Ray appeals to me for its text-based nature. (I’m paid to understand code, YMMV.)

One nice thing about theater sets and POV-Ray is how the concept of a scenery flat translates nicely to POV-Ray’s scene description language. A flat is basically a box, a typical one is 4 feet wide by 10 feet high. FCP used studio-style flats (wikipedia calls them Hollywood or tv flats), which are about 3 inches deep. I just decide POV-Ray’s unit scale equals 1 foot, therefore 3 inches is 3/12 units.

#declare Flat = box { <0, 0, 0>, <4, 10, 3/12> }

Flats come in different standard sizes.  So I create a bunch of box declarations for different sizes.

#declare Flat_4x10 = box { <0, 0, 0>, <4, 10, 3/12> }
#declare Flat_3x10 = box { <0, 0, 0>, <3, 10, 3/12> }
#declare Flat_2x10 = box { <0, 0, 0>, <2, 10, 3/12> }
#declare Flat_1x10 = box { <0, 0, 0>, <1, 10, 3/12> }
#declare Flat_4x8 = box { <0, 0, 0>, <4, 8, 3/12> }
#declare Flat_4x3 = box { <0, 0, 0>, <4, 3, 3/12> }
#declare Flat_4x10_Door = difference {
object { Flat_4x10 }
box { < 8/12, -.1, -.1 >, <40/12, 80/12, .3> } // standard 32" door cutout
}

Without getting into all the nitty-gritty of POV-Ray, or 3d graphics in general, we need a camera and a light and an object before we can render a useful image. I’ll use standards included with POV-Ray: “Menu→Insert→Cameras→A typical camera” and “Menu→Insert→Light sources→point light”. I move the camera back by changing the location coordinates. I set the y component to 6, since that’s about how tall I am. Looking right at the ground is a bit unusual, so I’ll change look_at’s y component to 3.

// perspective (default) camera
camera {
location  <0.0, 6.0, -25.0>
look_at   <0.0, 3.0,  0.0>
right     x*image_width/image_height
}
// create a regular point light source
light_source {
0*x                  // light's position (translated below)
color rgb <1,1,1>    // light's color
translate <-20, 40, -20>
}

For an object, I can just add one of the flats to see how it looks. I need to give it a color or it will be ineffably black–so black we wouldn’t see it against the inky black void that is the rest of our undefined virtual world.

object { Flat_4x10 pigment { color rgb 1 } }

So when I render with this scene, the picture should look like I’m standing 25 feet from the left edge of a 4×10 flat, which is white (but will look gray because of the distance of the light), with a light source 40 feet in the air and 45 degrees off the corner about 28 feet out.

The 2 slides below show the render at 640×480 pixels and the same render with the origin and x & y axes overlaid.

This slideshow requires JavaScript.

For convenience, here is the entire scene source you can copy-n-paste into POV-Ray.

#declare Flat_4x10 = box { <0, 0, 0>, <4, 10, 3/12> }
#declare Flat_3x10 = box { <0, 0, 0>, <3, 10, 3/12> }
#declare Flat_2x10 = box { <0, 0, 0>, <2, 10, 3/12> }
#declare Flat_1x10 = box { <0, 0, 0>, <1, 10, 3/12> }
#declare Flat_4x8 = box { <0, 0, 0>, <4, 8, 3/12> }
#declare Flat_4x3 = box { <0, 0, 0>, <4, 3, 3/12> }
#declare Flat_4x10_Door = difference {
object { Flat_4x10 }
box { < 8/12, -.1, -.1 >, <40/12, 80/12, .3> } // standard 32" door cutout
}
//
// perspective (default) camera
camera {
location  <0.0, 6.0, -25.0>
look_at   <0.0, 3.0,  0.0>
right     x*image_width/image_height
}
//
// create a regular point light source
light_source {
0*x                  // light's position (translated below)
color rgb <1,1,1>    // light's color
translate <-20, 40, -20>
}
//
object { Flat_4x10 pigment { color rgb 1 } }

That’s the basic process. Of course, there’s a lot more work in “building” the stage, set, and lights which I’ll continue in Part 2 of modeling theater sets with POV-Ray.

Advertisements
This entry was posted in freeware, howto, me, opensource, povray, theater. Bookmark the permalink.

2 Responses to Modeling Theater Sets with POV-Ray

  1. Pingback: Modeling Theater Sets with POV-Ray (Part 2) | mghicks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s