Hi Everyone! My Name is Richard Lockett, I’m from Surrey, UK and work as a 3D Designer in the retail sector.
I’ve always had an interest in creating unique worlds, be it physical, hand-drawn or digital 3D. I practice pencil portrait drawings in my spare time, these are usually done on a gift-giving basis as my drawings take such a long time to produce that any commission work would make it difficult to justify the price, so I usually stick to Christmas and birthday presents etc. as there is less expectation.
I Studied Product Design at Nottingham Trent University, and this is where I was introduced to Autodesk’s 3ds Max and various CAD packages, this is where I fell in love with Max’s ability to create believable worlds with unlimited resources, the only limit is my imagination.
Inspiration for the scene
My goal for this scene was to create a place for my art to live, I wanted the scene to have a soft dream-like feel, in order to contrast with the sharp pencil drawing medium. So I decided on prominent use of depth of field and light scattering.
I’ve always loved light scattering and felt it could add a sense of undiscovered areas to this gallery, partially obscuring the view of certain pictures, making you curious to explore further, so I wanted to introduce volume light through the windows and skylight.
Having previously worked in tropical green houses with high humidity, waterfalls, tropical plants, butterflies and obscure natural formations I wanted to introduce some of this personal interest in to my art gallery; (after all it’s my gallery right?!) I suggested a humid day as an excuse to use volume light and some rainbow flares 🙂 exaggerated by the dust created by the old wooden floor. A windy day so I could show the curtains blowing, I planned to use MassFX for this.
Movement makes it real
For me a life-like scene needs movement, this is why I made it a rainy and windy day outside, the wind will gently move the curtains and any indoor plants near the windows, this will in turn affect the volume light. There is a lot of potential for movement here, so it’s important to keep the animation subtle enough. I believe in giving viewers the credit to appreciate subtlety.
The rain also has the potential for a moodier audio-scape, and then Sketchfab went and added sound to the viewer!
I wanted the scene to add subtelty to the colour strength since the drawings are black and white, and still need stand-out.
The role of the butterfly
The butterfly is my logo but also serves as a “tour guide” to lead the viewer around the scene illustrating that there are other areas to explore, providing a progression to the experience.
I actually started building this scene a long time ago, back in 2012 in 3ds max using Nvidia Mentalray renderer, with the view of rendering a walk-through animation to tour the viewer around the gallery. For this reason I setup the geometry and textures for photo-realistic architectural work-flows – not realtime rendering. It was later that I discovered Sketchfab and realised this platform could tell the story much better and also give me the ability to easily update my drawings and add to them over time, so I had to convert the scene to a more game-engine friendly format.
The lighting setup was fairly straight forward: a MR sun & sky daylight system with sky portals for any window / skylight. Originally the volume light was made using the parti-volume shader, however I would later need to turn this off to create a real-time approximation.
My process for this was intended to easily take most complex scenes and optimize them for Sketchfab without too many human steps, this wasnt necessarily the best for Sketchfab performance but I found it to work well for small-medium sized scenes.
My method is to split the whole scene in to 1 mesh per material (using 2 simple scripts) and then bake each mesh out to a standard blinn material, compatible with Sketchfab, this means you can have the same material-editing freedom in Sketchfab that you had in the origional max scene.
The initial steps I take are to ensure all geometry is healthy, by performing a “convert to editable mesh” then reset transform, reset scale, reset Xform, then convert to editable mesh again. Next I use the normals modifier set to “unify normals” to ensure no normals are facing the wrong way. Any high resolution meshes I use the “ProOptimizer” modifier to reduce the wireframe to something more acceptable for realtime rendering.
1. Collapse all geometry to 1 mesh….. I use the Quick Attach script by antomor, available here.
2. With the resulting single mesh, I run a script to detach objects based on their “material name”, by Jeff Lim, available here.
Render to texture menu
Keeping all the resulting meshes selected for the whole baking process, I follow these steps which will unwrap, test bake and then rebake the objects, I prefer to let other machines perform the final bake by net rendering – this will overwrite the original test bake textures live in the viewport as I’m working in the scene and I can watch the scene come to life!
Once baking has finished, shells can be cleared leaving the baked standard material, it is now almost ready to export to Sketchfab, since my model has animated objects I used the FBX format, there are a few more effects to add first though…..
Volume light for realtime
I created some simple planes protruding from each window and painted an opacity map in Photoshop to soften the beam. When the spacing of these planes is right, the paralaxing can making the effect very convincing. I made some keyframed morph targets for these planes to animate them slowly adjusting to the moving curtain.
I animated the curtains by roughly modelling a high resolution plane and loading it in to the MassFX engine, pinning a group of verticies to the curtain rail. This was bound to a Wind object with some turbulence, this was then baked to keyframes. After baking I converted those keyframes to individual morph targets using the “snapshot” feature and loading this in to a Morpher modifier using this script:
with animate on for i = 0 to 250 do (slidertime = i;WM3_MC_SetValue $Cylinder002.Morpher i 100.0;t = i-1;f=i+1;WM3_MC_SetValue $Cylinder002.Morpher f 0.0;WM3_MC_SetValue $Cylinder002.Morpher t 0.0;)animate off
Changing the object name “cylinder002” to suit my curtain object name, this is not my method, this is outlined here.
The picture frames
This is the most important part of the gallery, and I wasn’t happy with the image quality of the baked frame and drawing, so to combat this I placed a camera facing each frame and rendered a high quality view of the frame, I then created a low-poly version of the frame and mapped the render straight on to this with a simple uvw planar map. This makes it much easier to change the textures later when I decide to update old drawings for new.
Inside the Sketchfab Editor
I used shadeless materials, I did attempt the PBR workflow but noticed that environment highlights in occluded areas detracted from the realism of the surfaces in this particular scene, I also noticed a faster performance in shadeless view. I loved the reflections in the glass in front of the drawings, but felt I had to let this go, I tried not to rely too heavily on post-processing filters, again for performance reasons. I would rather get the look I want baked in to the scene by max, since this scene is animated the playback frame-rate becomes even more important to the experience.
Single sided materials
I wanted to have my scene visible from many angles, so made the walls transparent from the outside using “single sided”, this I felt would help the scene when viewed by less 3D savvy users who may wander outside. I try to ask myself “what’s the worst this scene could look?” and I did not want the viewer to feel boxed in.
Camera constraints or annotations?
I’ve had to decide between camera constraints or annotations, on the one hand camera constraints limit the camera to orbit single points in space, the downside being that there would be no way to walk down the corridor in my gallery. This is why I chose annotations: for their ability to dictate each view but also the pace of the experience using the embed parameter “annotation_cycle=7” with this I can walk the user around the gallery past each picture frame automatically, without any need to interact, it autopilots the whole thing… like so….
I considered using a professional voice-over artist for a cleaner sound experience, but this honestly was just a cop out so I didn’t have to listen to my own voice go on… and on… and ON. I really feel the description should come from the artist who created the piece though, so I recorded myself on a basic dictaphone and placed 3D sounds by each picture frame, however the first picture also shares its sound with an introduction clip since I’m limited to 5 sounds total in this scene, add to that the rain sounds as a 2D sound-scape and the scene was complete. 🙂
I hope this provided some useful insights; this scene was a delight to create and one which I will continue to update as and when I do new drawings. 🙂
I’d like to thank Sketchfab for giving my art a place to live, and creating a community providing support, inspirational talent and awesome people!