One of the most frequently requested services I receive as a freelance builder and consultant in Second Life is to replicate real-life buildings. While I’ve written a lot (here, and here) about the potential for a new (non-replica) language of purely virtual architecture, based on the inherent characteristics of the virtual environment, I strongly believe there is a potent value in the replication of physical architecture as a point of reference, a springboard for further development, or simply a kind of iconic 3D logo for organizations entering virtual worlds.
During a replication project I recently completed, I documented my process step by step, in order to create a tutorial. I had planned to integrate this with screenshots, a wiki and, of course, machinima – Torley Linden style, but I haven’t been able to find the time to do it right. In the meantime, I thought this text-only version might have value to anyone attempting this process. Please keep in mind that there are many, many, many ways to do this. What I’m describing here is simply the process I’ve gotten used to. I’m sure there are better, more efficient ways of doing this, so I plan on adding what I’ve started to the SLfoundations.org wiki Chip Poutine set up last year as soon as they are back online (apparently they’re moving their datacenters atm), so you’ll be able to post your ideas, experiences and improvements to this process. Perhaps someone else will take up the screenshots/machinima elements to make this tutorial more effective?
I will also include a spoonful of shameless self-promotion… If you would rather hire someone else to replicate a building for you, or need any virtual design/build services (and you have a reasonable budget for professional service), please don’t hesitate to ask for help!
Step 1: Importing the Plans
You’ll want to start with, whenever possible, a simple plan graphic with enough detail to build from, without being too cluttered with construction information. If you have the CAD files and know how to use AutoCAD or some similar software, you can turn off most of the dimensional and label layers so you’re left with only the information you need. Everyone has a different method, but I typically use the Export as EPS (make sure the whole drawing is zoom-extents on your screen when you export. Then open the EPS file in Photoshop at about 500 dpi or more. Duplicate the background layer, then add a ‘Stroke’ modifier to the new layer. Make it 1 pixel wide and black. Make a new blank layer, fill it solid with a white paint bucket and merge the stroke layer down so the stroke is rasterized. You should then have a fairly workable plan graphic. You can experiment with import dpi – if its a huge plan, you might need it to be bigger than 500 for the right amount of detail to show up. You also might need more than 1 pixel wide stroke for the lines to show up properly.
This may sound strange, but sometimes you can even use the Fire Escape Route Plan diagrams found in many public building corridors. They’re often very accurate, and simplified to include only the elements you really need to recreate the building.
Open the file in Photoshop (all descriptive terms will assume Photoshop CS3 since it’s all i know! Feel free to augment this tutorial for other applications!)
Make the ‘canvas size’ ( Edit > Canvas Size ) of the image square. Be sure the ‘Relative’ option is un-checked so it doesn’t stretch the image. For example, if it’s currently 10 x 25, change the canvas size to 25×25. This will add blank space on the sides, and retain the proportions of the image.
Optional step: Use a ‘magic wand’ tool to select the outer blank space of the plan. Then, invert your selection (Select > Inverse ) so only the plan is selected. Then, press ‘Q’ or Enter Quick Mask mode. Save the file as Targa (tga) at 32 bits/pixel with Compress unchecked.
In Second Life, import the plan. (File > Upload Image). It will cost you a wopping 10 Lindens.
Rez a Huge Prim. Depending on the size of the building, I recommend either a 100x100x.01 or a 20x20x.01 (If you don’t have Huge Prims aka Megaprims, you can buy them at SLExchange or OnRez or any number of in-world stores).
In your edit window (Tools > Select Tool > Edit) , check ‘Select Texture’. Click the top face of your Huge Prim. Back in the edit window, click the little square image just above the word ‘Texture’ and browse to find the image you uploaded.
Rez a regular cube prim. If you want to build your replica at 1.5 times real life scale (highly recommended for proper avatar navigation, etc… just trust me on this, do NOT build it exactly to scale or your build will be just about useless… if anything, you’ll want to build it bigger – some even recommend 2x real life scale, but I usually go with 1.5x)
Change that cube prim’s dimensions to 1.5×1.5 (or 2×2 if you want to replicate it at 2x RL scale). Find an exterior or entry door on your plan. Move the 1.5×1.5 prim near that door.
Select that plan texture on the huge prim again and use change the ‘Repeats per Face’ numbers until the door width matches your 1.5×1.5 prim. Most entry doors in real life are about 1 meter wide – give or take a little. So, by making the door in that texture the same size as your 1.5×1.5 meter prim, the rest of your building will end up at about 1.5x real life scale.
If you’re lucky enough to have elevation drawings or section drawings, import those the same way and place them in their proper locations relative to the plan. The same goes for second and third floors, etc.
To import second and third floors, it often helps to go back to your first floor graphic and add the new plans as additional layers to that drawing. Delete the outer blank spaces of the new plans, and align them with the first floor. This way, you can copy your original Huge Prim straight up (z-axis only), add the new texture and it will be already set with the exact same proportions, in the exact X,Y coordinates, and Repeats per Face settings, etc.
If you don’t have elevation drawings, you can take an exterior photograph and use a polygon lasso to copy a typical ‘bay’ of the exterior. Then paste it into a new file and edit>transform>distort it until it is orthogonal (horizontally and vertically straight). Then, paste and copy that bay to make several identical bays to create the whole elevation. Try to match the proportions of this flat elevation with what it looks like on the photograph. When you’re done, edit the Canvas Size so the image is square. Import the image into SL. Map it to Huge Prim – most likely a 20x20x.01 will be most useful, but for very small builds, a regular 10×10 might be big enough.
Line up the elevation image with the floor plan. Again, use the ‘Repeats per Face’ fields to get it to match the scale. However, try not to distort it too much – you want it to look as close as possible to the proportions of the actual building.
At this point, you should be in good shape to start building. The first thing I do is look for elements of the building that are repetitive. For example, most buildings will be built on a ‘bay’ module. Typically I like to build one of these bays, from the ground to the top floor – including all windows and materials.
To make prim-efficient windows, you might consider using the .tga or Targa file format – using the masking/alpha layers in Photoshop in order to create a single texture including the frame, mullions, and some glass reflectivity. This might be excessive, but sometimes I try to find an image of what the scenery looks like opposite the building I’m replicating. I then put that image over the window texture and fade it back to reduced opacity. Then, I use a ‘feathered’ selection oval to grab just a tiny bit of that background image in my targa file. If you select too much, or too close to the window frame, you can always do a non-feathered selection around the frame just to clean it up and get it out of the alpha selection. With some trial and error, you should be able to create a window that looks clear, but has a slight (and accurate) reflection.
Back to the repetitive bay element… I then ‘link’ this bay when its finished (ctrl-L), making sure to select an outer edge as the parent prim (the one that glows yellow once the link is established – last prim selected). Then, I check the ‘Copy Selection’ box, and click the outer face of the bay to create the next bay (if none of the edges work well for Copy Selection, you can always make an invisible flat prim and use that as the copy selection face, then delete it after – but you’ll have to be careful, because this can sometimes leave a little sliver between the two).
At this point, replication of real life buildings becomes quite improvizational. You’ll need to make decisions that are specific to your project as to how it would be best replicated. Sometimes there will be parts of the building that won’t necessarily have value in the replication that you can decide to leave off or simplify. I also don’t recommend building every single interior wall as it is in real-life, unless the building is to be used for orientation or training. It is generally (although not always) unreasonable to expect a virtual replica of a building will function the same way the real-life building does.
After completing the exterior, and interior, the finishing touches of landscaping and entourage can really make a huge difference. Adding such things as sidewalks, streets, park benches, streetlamps, etc. add a nice finishing touch.
There is a lot more to it, but I hope this tutorial will help you get started!
Please feel free to contact me anytime at 608-219-9318, or firstname.lastname@example.org
Jon Brouchoud / Keystone Bouchard
[update: you might also consider importing your full-scale architecture models into realxtend, as demonstrated here: http://archsl.wordpress.com/2009/03/02/the-future-is-here-full-scale-architectural-model-from-revit-imported-into-a-virtual-world/ ]