Two of the coveted tricks of the rendering trade are to never draw what won't be seen, and to infer detail with texture maps where possible, rather than drawing high-polygon models. These are the premises behind ArchVision's Rich Photoreal Content, better known as RPC® objects. RPC's are an efficient way to add photo-realistic objects to renderings. While there are hundreds of people, trees, cars, houses, fountains, and other objects available on the ArchVision website (www.archvision.com), there will inevitably come a time when you wish to create your own. ArchVision has developed a tool to facilitate this, called the RPC Creator. You may download RPC Creator for free from the ArchVision website. Although they offer this great software tool, they don't provide much documentation on how to use it. The purpose of this tutorial is to fill in the gaps and take you step-by-step through the basic creation process.
What is an RPC
Before commencing the creation process, it is useful to understand the basics of what an RPC object is. Fundamentally, an RPC is an image decal-mapped onto an object, like one of those celebrity cardboard cutouts you may have seen at the mall. Unlike the celebrity cardboard cutout at the mall, though, the RPC object is like a cardboard cutout with a motor that automatically turns the cutout to face the camera. So when you place an RPC in a scene, the RPC determines where the camera is in relation to itself, and then turns to face it. That is an RPC in its simplest form. There are currently 4 types of RPC's: 2D Static, 2D Motion, 3D Static, and 3D Motion.
2D Static RPC's are actually very similar to celebrity cardboard cutout. They are a single photograph or image, decal-mapped onto an object that spins to face the camera, wherever the camera is positioned. The image is always the same, taken from a particular angle, hence the term "2D". The reason it is "Static", is because the image is not only of a single angle toward the subject, but it also is a single snapshot in time like from a traditional camera. 2D Static RPC's are excellent for objects in still-image renderings.
2D Motion RPC's are similar to the other 2D ones, except that rather being a single snapshot in time, they are actually a movie being played on the celebrity cardboard cutout. The movie, which is created with multiple still images, could be of a person dancing, a flag blowing in the wind, or even Santa Claus pulling gifts out of a bag. These are good for animations where the camera does not move, or only moves along the same angle to the RPC object.
3D Static RPC's are a hybrid of both 2D types. This is like being at one of those discotechs with a spinning floor. It is still a snapshot in time for the subject, like the 2D Static, but there are multiple photos taken at once, from various angles. This type of RPC determines which image to display toward the camera by only displaying the image which most closely corresponds to the angle between the object and the camera. It fakes a 3D person or object by representing multiple sides of the subject, which is why they are better than 2D Static images for animated-camera renderings.
3D Motion RPC's combine the time-lapse element of 2D Motion with the multiple-angle element of the 3D Static RPC's to represent a subject which is both moving, and can be seen from multiple angles. Think of a person now doing the Macarena on the spinning dance floor, and rather than seeing a snapshot in time, you can now see every movement, from any angle. Because of this, a 3D Motion RPC uses hundreds of images (such as one photo taken from each degree angle, at 30 frames per second, for 20 seconds) to represent the subject. It is best for showing complex, multi-angle movements of people and other entourage in animated-camera renderings, and the file sizes are very large.
As you can see, RPC's are basically images decaled onto simple objects. For this reason, the complexity in creating an RPC comes in two parts: first one has to photograph a subject, then the photos have to be digitally processed into file types that the RPC Creator can recognize. This tutorial not-so-slyly ignores the image acquisition part, because most people create RPC's from photographs that they have taken. In order to create a complex RPC like a 3D Static one, the subject would have to be photographed from every angle. Without an industrial-size lazy-susan, this is a daunting task just to acquire the photos.
This tutorial will walk you through creating a 2D Static RPC. To create any of the other types, the same steps can be followed multiple times.
There are 4 basic steps in creating an RPC:
Create an Image File
Create a Mask File
Create a Preview Image
Use RPC Creator to Compile the RPC
Step 1: Create an Image File
The first step is to get an image that you want to make into an RPC. This image can be from a photograph, or series of photographs, rendering, or other source. We will use the term "Image File" to refer to this texture map, and it is what gives the RPC its color. Figure 1 shows an example of an Image File of a palm tree taken with a digital camera. The Image can be of any size, but it must be saved as a JPG, and named with a number at the end of the filename. For this example, the Image File is cropped to the size of the palm, and saved with a filename of PALM-i-01.JPG. The "i" stands for Texture map. Notice that the photograph has a building behind the trunk of the palm, and that the fronds are against the sky. Keep in mind the context of your subject when photographing it, because there are some backgrounds that are more difficult in step two than others. For the same reason that a TV weatherman does his report in front of a blue-screen, step number two will be easier if the photograph has a more plain background, since you will eventually be creating an opacity map, also called a Mask File of this image.
This is a good place to note that JPG images use lossy compression. This is important to know because if you open and save a JPG image multiple times, it degrades in quality each time. To minimize this, you may desire to either keep your original texture maps as TIF's or TGA's, and save them as JPG's when you are done editing them. When saving the JPG texture map, save it with low-compression/high-quality so as not to lose any more quality than is acceptable.
An RPC's file size is directly related to the file sizes of the Image Files that make it up. Therefore, cropping it to the size of the subject, and using an appropriate resolution keeps file sizes reasonable. There is no need for an Image File of an entire forest if you only want an RPC of a single tree. By the same token, if the RPC will only be viewed from a great distance, and it will only be in a small corner of the final rendering, there is no need to scan the photo in at 2000x3000 pixels - 800x1200 will probably work just fine for most applications. Most RPC's made by ArchVision are typically about 1000-1200 pixels tall. This is because RPC's were originally designed for animation work, which is usually shown at low-resolutions. Since arguably most AccuRender users do still images more often than animations, you may find that you prefer making your Image Files of a much higher resolution, so that they look more crisp in the final output.
Step 2: Create the Mask File
A Mask File is also known more generically as an opacity map, and is a separate grayscale file that is used as a stencil over the Image File. This stencil has white pixels where it is to be transparent, black where it is opaque, and gray in between for varying shades of opacity. When an opacity map is saved within a file type like a TIF or TGA, it is generally referred to as an alpha channel. JPG files cannot save alpha channels, and RPC Creator cannot read TIF or TGA's, so this grayscale stencil must be saved in a separate JPG file, called a Mask File.
There are many ways to mask off the subject and save the resulting mask as a Mask File. In the case of the palm tree example, a selection tool was used to trace around the trunk and fronds. Once a mask is created, most image editors have a command to save the selected area or mask as a new file. This new file will be the Mask File, and it should look like figure 2. Save this as a JPG with low-compression/high-quality, and name it using a similar name and number as the Image File, but change the "i" to a "m" for Mask File. This is a personal convention, and is not necessary. There are only two necessary things about file naming are that you need to be able to discern one image file from another, and that the numbers at the end of the files need to be the same, and less than 5 digits. This is necessary for the RPC Creator to match up which Mask File goes with which Image File.
As an extra tip, anti-alias the edges of the mask before saving it as an opacity map. Anti-aliasing reduces the "stair stepping" along the edges when viewed closely. This is usually done by softening, feathering, or otherwise smoothing the mask to create a transition zone between the white and black areas that is a couple of pixels wide. Tracing the mask to closely follow the edge of the subject is paramount to avoid halos on the RPC. Halos are less-prevalent if the mask perfectly follows the edge of the subject, and/or when background area of the texture map is in the same color family as the subject. Halos are more prevalent when the opacity map does not closely follow the edge of the subject, and/or when the background is a completely different color as the subject, like an olive tree against a brick building. This goes back to properly photographing your subject, and why TV weathermen do their broadcast in front of a blue screen -- it makes it easier for the computer to trace the mask.
Step 3: Create the Preview Image
The final image is much easier to create. It is a preview image of the RPC, and must be 124 pixels wide by 98 pixels tall, and must be saved as a 24-bit color Windows Bitmap (BMP) file. Making the background of the preview a consistent color makes it easier to see what the RPC is, and also creates a consistent look to all the previews, rather than having a lot of clutter in the background. It is not necessary that you do this, but we recommend you use a neutral color of 75% gray (HSL:0,0,75 or RGB:128,128,128) as shown in figure 3. The file name does not have to match the names of the texture and opacity maps, because it is an image that represents the RPC as a whole, not just from a particular angle. Just remember to save it as a BMP, not a JPG.
Tip: Automate Steps 2 and 3 to Save Time
All major image editors allow you to automate processes such as those outlined in steps 2 and 3. By using this feature, you will save a lot of time, especially when creating multi-view RPC's. Since many people use Photoshop as their graphics editing application this tip will focus on the specific steps involved with it in particular. It is fairly easy to follow along and do similar steps in your graphics application if you prefer to use something like Painter, Paint Shop Pro, or Picture Publisher. Also included here is a Photoshop Action that has the steps built in. The Action is downloadable in Photoshop 5 or Photoshop 6 versions.
Download Photoshop 5/5.5 Action
Download Photoshop 6 Action
To install the Photoshop 6.0 Actions save the RPC.ATN to the C:\Program Files\Adobe\Photoshop 6.0\Presets\Photoshop Actions folder, or wherever you keep your Actions. For Photoshop 5.0 & 5.5, download the file called RPC-5.ATN to the C:\Program Files\Adobe\Photoshop 5.0\Goodies\Actions folder. Next, start Photoshop and open the Actions window - Window -> Show Actions. See figure 4 to the right. At the top right there is a gray circle with a black triangle pointing to the right. Click on this and choose Load Actions. Find the Action called RPC.ATN. Included are 2 sub-Actions, Alpha to JPG and Resize to 124x98. If you click the triangle to the left of the RPC Action folder, you will see these 2 sub-Actions.
Before running the Actions on an Image File, you must first have the desired subject area selected with a mask. Many professionally created Image Files, such as those from ImageCELs (www.imagecels.com) come with an alpha channel, so the desired subject area is pre-selected. In this case, the Image File is ready to have the Actions run on it. Click on the appropriate sub-Action and press the Play button at the bottom of the Actions window to start the processing. The automation process should create the two JPG's (the Image File and the Mask File), and then create the bitmap Preview File.
Step 4: Use RPC Creator to compile the RPC
RPC Creator is a stand-alone program developed by ArchVision which compiles the three images we have just created into a functional RPC. At the time of this writing, the current version of RPC Creator is 1.5. Launch the RPC Creator software. There are two options for the interface, Classic and Wizard. We will use the Wizard to simplify this tutorial, because it divides the process into ten separate steps. Click on the View Wizard at Startup radio button and then select Next to begin the process.
The first screen has fields for the Content Type, Content Name, and Object Name of the RPC. There are no official conventions as to how these should be filled in. However, since this information is accessed by software such as Photoshop, AccuRender, and VIZ, it helps to use some convention. ArchVision has created many Content Categories for their own RPC's, and they are listed in figure 5.
The second screen is even more self-explanatory. Simply enter the the Default Height, as well as the Random Height Minimum and Maximum. These values are typically in inches, but can be in any unit of measure. The number should refer to the overall Image File Height, not just to the subject area within the Image File. This is another reason for cropping to the subject, because an RPC's insertion point is at the bottom of the Image File, and if the subject is up a few pixels, then it will look like it is floating above the floor or ground.
The third screen is for the Default Brightness. Simply use 55 for an Indoor image, and 75 for an Outdoor. It is basically like a self-illumination value, but AccuRender does not use this parameter at this time.
Step four is the one that troubles most people, not because it is difficult, but because it is almost entirely undocumented. By setting up your images as Image Files and Mask Files, and saved them with corresponding numbers as suffixes, you have already won the battle. Simply click on Browse, and browse over to where you saved the JPG's that will be used as Image Files and Mask Files. If you get a "Padding Error", it is because your images are not numbered with the same number of digits as entered in the pull-down boxes in the dialog. Simply rename the image and mask files so that they have the same number of digits as listed in the pull-down boxes in the Step 4 dialog box. The number of Images must equal the number of Masks.
Step five has a text box that is used as a Description for the RPC. Enter anything you wish to describe the subject matter of the RPC. It was originally intended for keywords only, separated by commas. It is not always used, even for ArchVision's own RPC's, and many of their RPC's simply reiterate the Content Name again. Some do use this field, though, such as the CG_Cathy.rpc, which is an RPC of a golfer named Cathy. The description is "golf, woman, bag, white shirt, blue shorts, blonde hair, mature". Pretty straight-forward.
Step six is for setting the Pivot Offset. This is very important so that your subject doesn't appear to float around as the camera views it from different angles. In the example of the Palm Tree, if the Palm tree's trunk were not centered in the middle of the image, a Pivot Offset could be set so that it rotated around the correct center of the trunk, not the middle of the image.
Step seven requests you to select the Preview File. This is the BMP file that was created earlier. Simply browse over to it and select it. If none is selected, then the default ArchVision Preview File is used, which is a yellow bitmap with something looking like the FDA's four food groups in it.
Step eight is for selecting the Default or Custom Icons. These icons are wireframe icons of the RPC, saved as .MSH files. Currently, AccuRender cannot create Custom Icons, they must be created in 3DSMAX or VIZ. If you do not have a Custom one, then simply enter the Height that was entered in Step two. The Width and Length will be automatically filled in. You can edit these, if desired, but are generally only necessary for multi-Image RPC's.
Step nine has fields for the author's credits. Enter any Company, Contact or Creation Date. Fairly easy to follow.
Finally, Step ten is where you enter the proposed RPC Filename. Click on Browse, and navigate over to a directory where the RPC will be saved, fill in the filename, and select Save. Once back in the RPC Creator dialog box, click on the Export button, and the RPC will be saved out to a file.
Hopefully this tutorial demystifies the RPC creation process for you. There are obviously more tips and tricks that can help you create a higher quality RPC -- from better initial photography, to masking techniques on 3D Motion RPC's. Future tutorials may cover these advanced topics, but in the meantime, for more information feel free to visit the RPC support at www.archvision.com or Robert Mcneel's AccuRender newsgroup at news.mcneel.com/accurender.
rev 05.13.02 :: For more information visit www.accustudio.com