More on the creation of Odalisque. This may be a yawnfest for people who aren’t interested in 3D imagery or detailed how-tos. Um, here’s a puppy video for those folks. (I haven’t watched the puppy video all the way through. Please let me know in the comments if there’s something awful in it.)
As previously noted, the backdrop in this photo simply wouldn’t do. It was far from the lush surroundings one would expect for a nude lounging figure. It was clear that I’d have to create a set or backdrop and composite the hound in. The only question was how. One could build a full-sized set, work with models and maquettes, or create an environment with the assistance of a computer.
There’s a long history of this sort of thing, although I believe most people work out the props and backdrop before posing the model! For example, in Norman Rockwell: Behind the Camera, Ron Schick shows us how Rockwell used a wide assortment of props to bring scenes to life. In Imaginative Realism, James Gurney talks about creating models and maquettes to help mentally visualize scenes. Thus, I’m not doing anything new; I’m just doing it with a computer.
The first order of business was the 3D model for the sofa upon which Ryan-hound reclines. I was torn about whether to create the model myself or use an pre-made one. Laziness won out: I wasn’t even sure the whole thing was going to work, so it made sense to not expend much time on an initial test.
These days there are models for everything under the sun, including some wonderful sofas and chaises. For example, the Turbosquid site offers this very elegant number for only $36, which is quite reasonable given the amount of work required to create such a detailed model.
However, I settled on this one, by artist Andresspa. Its clean lines appealed to me.
After downloading the model, I tried importing it into Photoshop CS6 Extended, just to try out that program’s features. The results were amusing:
Pieces of chaise got scattered hither and thither! Not exactly an auspicious start for the project.
This actually isn’t an uncommon problem when importing models. I could have tweaked the pieces into place, but I didn’t want to waste time messing around. Instead I turned to my current 3D tool, Blender, to see if it would be more cooperative.
Much better! Only, I really wanted the chaise to be flipped so its arm was on the other side. Fortunately, Blender can handle such issues without batting an eyelash.
The next order of business was tinting the chaise green, to contrast with Ryan’s fur, and trying to simulate a velvet texture. For the velvet I turned to Blender’s built-in particle simulation system, and in no time at all had created this:
Monstrous furry spikes sticking out of my chaise, ready to jab any hapless computer-simulated people who sat on it. Well. That went smoothly, didn’t it?
After some more tinkering, I managed to simulate a sort of rotten algae texture, then the appearance of cheap Astroturf. Not at all what I had in mind, but isn’t it wonderful what one can do these days? If I need to simulate a surface covered with rotten sludge, I’ll know just how to do it.
Finally it dawned on me that I was fretting over minutiae. A plain matte green surface was fine. The goal wasn’t to create photorealism so much as a credible digital painting. After all, stitching would add another level of detail, and I didn’t want the stitching to have to compete with the level of detail in the base image. Onward.
The next order of business was to adjust the geometry of the chaise’s cushion, so that it looked a little rumpled, then begin adding props. I acquired the props from the Archive3D site, where people share a good many models. The scene was beginning to take shape.
In case other Blender users are curious about the node setup for the checkerboard marble floor setup, here it is. Your mileage may vary, of course.
(Click on graphic to embiggen.)
A few things were still missing from the scene, such as a rug and a throw. The rug is simply a solidified plane with a Persian rug bitmap. I didn’t spend any time on displacement maps or other niceties, since the image was destined to be further altered with stitchery.
As for the throw, that thing chewed me up and spit me out for awhile. It seemed that a good place to start would be following a cloth simulation tutorial. There’s a nice clear one, the Cloth Napkin tutorial, at the Little Web Hut site.
Basically it boils down to creating a plane, subdividing it, giving it cloth properties, and running a simulation in which one drops the plane/cloth over whatever needs to be covered with fabric. I’ve left out some details here and there, but that’s the gist of it.
Stop the simulation when the cloth looks decent:
Easy-peasy, right? Only instead of behaving nicely and draping itself on the chaise, my cloth was demon-possessed. I’d watch it fall and slither all the way off the chaise, then I’d change a few parameters and watch it slither off again … over and over and over again. No. No. I don’t want the lace throw on the floor! Then I changed a parameter and the darned thing started BOUNCING off the chaise. It would hit the chaise and recoil into the air as though made of rubber. Boing! Boing! I wish I’d saved some of those animations, because they were hysterical. Not so funny at the time, but amusing in retrospect.
I forget how I finally solved the problem. I was about at the point of wanting to crawl into the computer and drive nails through the throw to keep it on the chaise, though.
In case any Blender users are curious about how I created the lace texture, here is my node setup. This would be a good time to thank Volker Stark, whose tutorial on alpha maps and transparency put me on the right track and saved me from incipient madness. (Alas, I can no longer find the tutorial in order to link to it.)
(Click on graphic to embiggen.)
Here’s a section taken from the texture map file, which more or less looks like a photo of lace:
Here’s a section taken from the transparency map file. This was saved as a separate file, rather than including an alpha map in the lace texture file above. Although there may be a way to create transparency with an included alpha map, I never did get it to work.
Note that black occurs where one wants transparency to occur, and white occurs where one wants the object to be solid.
As a final note on the lace throw, it’s a tribute to my grandmother, who was a great tatter. I photographed a section of lace from one of her actual throws and tiled it in Photoshop, thereby letting her hard work live on in the virtual world.
After clearing up a couple of other issues, such as matching the lighting and camera angle in my Blender scene to the lighting and camera angle in my photo, I hit the render button and walked away for the night. When I came back, there was a huge hard drive-clogging version of this:
Perfect or photorealistic? No. But plenty good enough to make a backdrop for my dog, then to be printed out on fabric and sewn on.
After some tomfoolery in Photoshop, I had Ryan extracted from the squalid sheet-covered couch and placed in posher surroundings:
Now that the fabric has been printed from this image composite, it’s just a matter of ordering some more spools of thread, brewing up some coffee, and plunking myself down at the sewing machine. We shall see where this experiment leads. So far it’s been interesting.