La Salle De Magritte
One of the greatest and most famous of the Surrealists, Belgian painter René Magritte (1898-1967) was one of the first artists to grab my attention as a youngster. As a 3D artist a few decades later, it’s not hard to see why. Back then, long before the advent of 3D software and the incredibly realistic and fantastical images and movies we take for granted today, we had to rely on the imagination and skill of painters such as Magritte to visualize realistic alternate realities. Looking at these paintings now, they don’t appear particularly realistic, but at one time these paintings popped off the canvas in startling 3D.
I had often thought about interpreting a Magritte in 3D, and the Covid 19 lockdown finally presented me with the time to do it. Although I have many favorite Magritte works, the one that seemed most obviously the best candidate for a full 3D conversion was Les Valeurs Personnelles (Personal Values), an oil painting from 1952, late in Magritte’s career. I remember first seeing this image while I was an art student, and being fascinated by the strangeness of the oversized objects, rendered in Magritte’s quasi-photorealistic style. I dived straight in…
modeling and “camera matching”
Using a camera projected texture of the painting as an image plane, I set about modeling the scene and matching the “camera”. I’ve done plenty of camera matching in the past to place objects such as CG cars into photographic plates, but it quickly became apparent that this was going to be a bit different. With photographic material you can normally make certain assumptions about spatial relationships and the shapes and relative sizes of objects in the scene.
For example, if there’s a box or the corner of a building in a shot, it’s usually safe to assume 90-degree angles. Likewise, if one object appears to be resting on top of another, it normally is. You can use these baseline physical realities to help you understand the spatial relationships in an image and use them to match camera position and focal length.
I realized that with a painting, however, I could not make any such assumptions. Magritte may not have painted relationships accurately, whether deliberately or not. I knew that I wanted to animate a camera through the scene, so it was important that I modeled it with 3D integrity. If I only matched accuracy in the painting’s view plane without making sure that objects made correct contact — and were the right size and shape — as soon as the camera moved it would be obvious.
I began by modeling the glass in the middle of the room, then moved on to matching the angles of the walls and ceiling, trying to first establish basic scale while also working to pinpoint the all-important camera focal length. I learned quickly that changing one thing might affect several others, and I had to adjust the wall lines and floor plane several times. If it became clear that I’d got the focal length wrong, of course this meant pretty much starting over. If I decided to edit the vertices of a right angled object such as the top of the wardrobe in order to match the corners in the painting, I also needed to check that the overall shape still made sense in 3D.
I used simple proxy objects to get a rough idea of size and placement, since I didn’t have pre-made elements I could drop in to test. There was also a certain amount of guesswork even about the intended spatial relationships in the painting. Just how much does that brush overhang the wardrobe? How close is the soap to the mirror? It became a game of chasing my tail until things started to look right.
The “foots” were the most complicated thing to model. I Frankensteined a model of a foot I already had.
Accurately turning the 2D image into a 3D scene was challenging, with the need to achieve camera-plane accuracy to the painting while also maintaining 3D spatial integrity.
Also, the fact that a section of the room is only visible reflected in the mirrors created an additional level of difficulty. I wanted to match the angles of the reflected floor and walls closely, but even a slight rotation of the mirrors’ planes changed this drastically, making modeling the wardrobe doors accurately very important.
Because I had to test render in order to see what the mirrors were going to reflect, I toyed with the idea of creating a second, independent reflection environment — rendered separately using primary rays rather than as an expensive reflection — to be composited into the mirrors in post. But I quickly decided that this would be a rabbit hole that would create more issues than it would solve. So the reflections in the mirrors are raytraced, and the only “cheat” was an additional reflection-only version of the soap, so that I could place it closer to the mirror and give it the humpbacked shape it has in the painting.
Happily, it turned out that Magritte was mostly pretty accurate with real 3D spatial relationships. However, one of the last objects to be added was the comb, and I could not match both its 2D placement in the frame and 3D placement within the scene. In the painting, the comb appears to be leaning right in the corner of the room, resting against both left hand and back walls. In order to make contact with the rear wall and match the 2D placement of the painting, my comb would have had to penetrate the left hand wall.
At this point, fixing this issue would have meant adjusting too many other things, potentially causing fallout problems, so I decided that “close enough” would have to be sufficient, especially since I’d done a pretty good job of matching everything else. I’d also realized that it wasn’t going to be possible to be pixel perfect to the painting – matching its overall look and feel would have to be the goal.
By now I had already started developing the idea of pushing the camera into the mirror, and realized that this was an excellent opportunity to reveal more objects that might be in the room but hidden from view in the painting. What else might be hiding in a room inside Magritte’s mind? It was fun looking over his other work for ideas, and I quickly settled on some of his recurring elements – the strange spherical bell objects that always seemed slightly malevolent, the lathed-looking bedpost things, oversized apples, odd cutout doors... and of course the “foots”.
I’d also decided that I wanted the reflected curtains to billow as if in a gust of wind from the window, starting the clouds on the walls in motion. For simplicity I opted to remove the net curtains completely, and animated the curtains with a Maya nCloth simulation.
texturing and shading
Since the front of the wardrobe is basically planar to the viewing plane, I was able to extract a texture map for the wood with some simple cloning in Photoshop.
In terms of shading and texturing, I decided that in some cases I wanted to be faithful to the painting, in others I’d take some artistic license. Some elements, such as the glass and the soap, were easy. Others were more complicated, such as the furniture’s wood. After a few experiments with a procedural approach to the wood of the wardrobe, I realized that it was not going to be possible to get anything acceptable, and that my best bet was going to be to sample the original painting.
Since the front of the wardrobe is basically planar to the camera, once I’d created UVs for the wardrobe this was easy to achieve with some basic Photoshop work. Likewise, the comb’s tortoiseshell pattern is very particular, and I was again able to simply paint and clone parts of the painting to use as a texture map.
The rugs presented a problem in that they have very complex, organic and yet organized repeating patterns, and there are no sections in the painting large enough to sample, as well as the rugs being at a very oblique angle to the viewing plane, making extracting a texture almost impossible.
I decided there wasn’t any feasible way of using the painting to texture these, and instead I would need to find some texture maps that approximated the patterns and color schemes.
Some online searching brought up some good options, and I found some that were suitable at sketchuptextureclub.com which I color corrected and edited to more closely match the original rugs. The maps for the floorboards came from the same site.
The bed and the bedding were the most complicated – the textures and brush strokes in both are very integral to the shading, so in those cases I camera projected sections of the painting onto geometry. I also used this technique for the ceiling.
the clouds
I knew that I wanted to have the clouds on the walls animate. After considering the idea of extracting clouds from some of Magritte’s other paintings and using them to build an animation in After Effects, I decided that I would instead try using some footage of real clouds. I sourced and tested several bits of stock footage until I found one that worked and which was long enough and had sufficient resolution.
I liked the test results, and as luck would have it, after mapping it to the wall I noticed a frame that roughly approximated the positions of the two largest clouds on the rear wall in the painting.
I used that as my starting frame, and in After Effects I edited the original footage with an animated time warp so that the stationary clouds gradually begin to move and speed up after the wind gust blows the curtain in.
Lighting
The shot was created without any cheats for the mirrors, with the exception of a second bar of soap.
A notable and interesting characteristic of Magritte’s shading and light is how rarely he used hot highlights and specular hits, especially given the somewhat realistic nature of his work.
Les Valeurs Personnelles is a great example of this – there are barely any highlights anywhere, with only some very soft ones on part of the handle of the brush, and on the glass. Everything else in the room is rendered in very muted, matte tones.
Of course, in reality the world is much more reflective than this, and I knew that for my 3D version to look good with a camera move and for materials to “sell” I would need to deviate slightly from this type of shading.
Overall lighting was created to match the basic lighting scheme of the painting, with a key light coming from the window, an HDR image mapped to a dome light for fill, and a number of light-linked kicker lights positioned on individual objects in the room where needed.
rendering
I got to see the original Les Valeurs Personnelles at the Magritte retrospective at San Francisco MOMA, in 2018.
With GI, reflections and refractions, and so many lighting and shading interactions going on in the scene, it was really necessary to render in a single pass, and render times were quite high. I rendered with the usual set of back-to-beauty passes, as well some utilities such as normals. I also rendered a cryptomatte pass and an ID matte pass for the mirrors and walls.
With these I was able to do some color corrections in post such as boost the lighting on the ceiling a little, and color correct the blue in the walls to more closely match the painting. Some 2D motion blur was also added in post. Everything was comped in After Effects.
This project turned out to be a lot more difficult and time consuming than I was expecting. But overall I am very happy with the finished shot, and am already trying to decide which of Magritte’s other paintings I’m going to tackle next!