GamesBlog

Blog

Sometimes I write things. But not very often. When I do write, it usually appears here...
28th July 2022
5 min read

First forays with blender

My recent experiments into threeJS opened up a whole world of other opportunities for creativity. Making scenes with spheres, cubes and other regular geometric shapes is great, but after my solar system I quickly found myself wanting to branch out first into morphing existing shapes, and then into creating fully custom geometry for myself. I started reading the docs on importing 3d models from other applications, and spied Blender, a free-to-use 3D modelling application that seemed to do all I wanted; Create a model, texture it, and export in a format that threeJS would be able to use. It even has built-in animation, which looked relatively intuitive to use.

Having downloaded and opened blender, my first issue was wrangling with the controls. The navigation of the camera is a bit weird, and basically impossible using an apple trackpad with one mouse button. In fact, it's almost as difficult with 2 buttons. The interface is equally as unweildy, with a myriad of custom icons on small buttons clustered around the workspace. The docs provide next to no real guidance on what tools do without specific modelling terminology, and rely heavily on you 'just knowing' where a button is and what it does. This is the sort of user experience I loathe. It assumes and requires that all users are experts and leaves no room for the amateur.

The cluttered mess of Blender's UI

Rabbitholes galore

Eventually I got my external mouse hooked up and an 'it'll do' handle on the controls. Once you get the basics it's relatively simple to start creating things. I quickly fell down one of what I later came to discover were many rabbitholes. I knew that there were people whose entire careers are dedicated to just a small aspect of the process I was undertaking, and it was at this point that I realised just how deep I could go. Sculpting, meshing, texturing, to say nothing of animating. Blender even lets you script entire cinematics, which I wasn't going anywhere near.

Aside: For those not versed in the 3D modelling world, here are some basic terms I'll use from hereon out. Meshes are the shape of a model. They haven't got any colour but consist of dots joined by lines and surfaces. On this, you can add a texture, which you can think of as paint.

Pretty quickly, I had to dial back my expectations of what I wanted to achieve. I sculpted a Sci-Fi helmet before realising I was never going to be able to create the body to go with it. I tried painting textures, finding a hugely satisfying tool that's basically a spray can for whatever texture you've set up. Once again, I struggled to get the hard lines between 2 different colours that I wanted.

The Helmet, sculpted but a bit blobby-looking

Dialling back

I tried again with a simpler project. This was an attempt to create a set of modular building blocks to build some victorian townhouses from. For some reason, it was now the copy tool that seemed to be my undoing. Blender doesn't really let you copy geometry. If you want to duplicate it, you can copy the entire object and delete the bits you don't want, but you can only copy entire objects. If you want that window you just spent 4 hours building copied, you'll need to extract it from the wall. Even if you select each piece manually, there's no way to copy-paste them.

The final straw came when I copied a wall, and the brick texture I had spent hours lovingly painting on disappeared. Apparently copying the wall would only copy the shape of the wall, not the texture.

Enough.

The worst is behind us

I had learnt a fair amount by this point. For one, separating my model out into different objects that would be made of different materials would allow me to paint textures on much easier, with clean joins between different textures. Better yet, if I really couldn't manage with Blender, I knew how to do that in threeJS, so I could potentially just split my model into its different parts and paint them later.

I decided to build something that was still ambitious, but would be it's own end-goal, and not a means to an end. After all, I first tried blender as a way to make models to help me make games, not to get into 3D modeling full-time. It was at this point that things that I finally had enough knowledge of Blender's tools that things started to click. I built just one half of the mostly symmetrical model, picking up how to extrude shapes along paths in order to create more complicated pipework, discovered the bevel tool (basically a way to shave off the edges of a shape) and all in decent time. Don't get me wrong, it still took days. I just felt I was making progress, which is really what counts with these things.

(Hopefully, i'll upload an image of the Engine here)

The end of the journey?

Having pretty much completed my first model, I felt a renewed sense of energy. With any tool that I end up keeping, there's a moment when I feel like the doors have suddenly been opened. I see the vast power that I've just gained and my head is filled with ideas of how I can use it. But Let's not forget, it was a hard slog to get here with Blender. I'm still no expert, and I realised it was unlikely I would dedicate the time to properly learn both Blender 3D modelling in general.

And so, I approached a potential partner to see if they'd like to be my supplier of 3D models for me. I'm happy with this. I set out to let me be independent if I need to be, but not to become master of modelers. I've gained enough skills to do small projects, but if I want to get better quality, my coding probably has to come

I've since embarked on another smaller model - still under construction - but this one will hopefully go into a small project.