Sofa so good
(A timeless pun)
So, having finished on the substance texture work for an environment map, I’ve turned to re-modelling a sofa I’d created for another project in Unity. The original was ok, as low poly models go, but the cushions missed the subtle creasing that really sells the material and softness of the furnishing so I’ve remade it from scratch and sculpted in the details ready for some normal map baking. Should lead to a more convincing result. Technique based on Blender Guru’s great tutorial made available as part of The Architecture Academy.

Gyroscope influenced typograpy and Substance Designer texture work
Spent the last few days finishing up a project that calls on some pretty diverse skills. The first task was integrating typography into a rotating cloud in THREE.js. I’d hoped to use a sprite sheet for loading efficiency but, surprisingly, THREE.js sprite sheet support is rudimentary to the point of being non-existent and there aren’t a lot of memory savings to be made so have resorted to good-old 26 individual character sprites. The next step involved trying to integrate the rotating cloud, to be controlled ultimately by phone gyroscope, into a reeeeally complex scene involving multiple post-compositing layers of several reflective and refractive concave surfaces one contained within the other. Having the typography animate behind and in front of these surfaces proved really tricky to get working satisfactorily but I’m almost there. Today has been a bit more relaxing with some environment map modelling and texturing work in Substance Designer.

Exploring Edge Creases in Blender
Spent today primarily finalising a model for implementation in THREE.js. Did some tests on using Edge Crease Weight in Blender to reduce the quantity of edge loops needed for clean edges. This is part of a wider PBR workflow I’m trying to nail down that includes Substance Designer and Painter ready for implementation using THREE.js relatively new Standard/Physical shader model. Edge creases give pretty good results and definitely keep the complexity of a model like this to a more manageable level. Next step is some tedious UV unwrapping followed by some more enjoyable Substance Designer materials.

Project updates and dynamic shadow maps
Started updating the first of many projects today for inclusion in my upcoming reel. Initially I was intending to just re-enable some vertex shader code that didn’t make the cut for the project production release but that led to some camera tweening animation that led to the need for dynamically rendered shadow maps which proved tricky. THREE.js shadow map implementation is really straightforward unless you are transforming mesh vertices at runtime with a vertex shader. In such a scenario the shadow map remains static as it is based on the underlying mesh. Fortunately I chanced upon this blog post by Edan Kwan that highlighted the existence of customDepthMaterial, which, after a fair amount of jiggery-pokery, I managed to get working. Fairly pleased with the result and I think it was worth the extra effort.
MoSCoW and directory consolidation
Facing the task of creating a reel highlighting the last 5 years worth of work is a tad daunting, especially when I was less than fastidious in archiving my old projects! Spent Thursday consolidating work and personal drive storage and today going through candidate projects doing a MoSCoW prioritisation to see what’s going to make the cut. It’s a harsh exercise but really helps to prioritize activity. With all that groundwork laid, looking forward to some more creative tech work next week bringing things up to the level of polish I had in mind for them.
Trello and lunch
Spent today mapping project tasks in Trello and catching up with an old colleague. Hadn’t used Trello before but I like it’s stripped back drag and drop approach. Going to be useful as I try and coordinate 8 parallel workstreams! Had a great catchup with Louis from weareformation.com. Good to chat about the industry and developments in 3D. Worth checking them out if you’re looking for animation work.
Hello world!
So this is my new website. Rather than wait until it’s fully featured and looking as I’d like it to, I thought I’d document the process of getting it to that state in this blog. Why? Because it’s going to get me into the habit of writing regular blog updates for one thing! But moreover, the process of creating a brand presence, in this case ‘me’, is one that I ought to be able to do well, given my experience. Getting a behind the scenes look at that process might be useful to someone.
Hang on, what experience is that you ask? Well, wait and see…
