I enjoyed writing a bit of three.js code – it was cool to see things come alive in 3D in a whole bunch of devices with no plugin. But it quickly became clear – I can’t have fun for long with just primitives, I’m gonna want some models and worlds. And that’s why I’m learning Blender.
Blender is an open source 3D authoring tool. It’s used for making videos and high-end renderings for print. But it’s also useful for the web. three.js and blend4web are two possible ways to deploy Blender content on the web.
As I began to fiddle with Blender, I felt pretty lost. It brought back memories of my first few days using Photoshop or Flash. At first, I couldn’t even move around the scene to see it from another angle – and perhaps to cut myself some slack, I soon learned that one does so with the “middle mouse button” – man, I don’t think they even HAD middle mouse buttons back when I tried out a very early version of 3DSmax.
When I learned Photoshop, you couldn’t just Google “Photoshop Tutorial” and off you go. There was no Google. This was in 1995. I learned how to use Photoshop from a book. That I bought from a book store. That seems so quaint now – but at that point, there had been no dot-com boom, and websites were still just novelty things. So, yup, I learned Photoshop from a book.
It was around 2003 when I learned Flash. I certainly never had no “book”. I just Googled tutorials for Flash, got the gist of it, and off I went. Any time I had a question, I’d ask the Google, and the Google would refer me to places that might have the answer.
Well, it’s 2016. And even the Googling of tutorials seems pretty outdated. After I’d downloaded Blender, the Blender website referred me to any number of learning resources. And they are indeed a decade ahead of the old-fashioned “tutorial” websites.
The places that the Blender website sends you are based on video tutorials. No, more than that – video courses. Actually, even more than that – something at least one of them refers to as a “flow” – a series of courses, that build on eachother, and then branch off into specialized areas. Needless to say, I started with the “Introduction to Blender” course.
Quickly, I was getting a grip on the very very basics – how to manipulate the workspace and the stuff in it. And making goofy stuff like this, just to try out the handful of things I’d figured out how to do:
But as I churned ahead, and got the grip of a few more tools, I could sort of picture things in my head that were something, and could be made with the tiny little toolkit I had at my disposal:
Now all this was beginning to remind me of something. My daughters watch YouTube videos of Minecrafters doing Minecrafty things. They watch whole series of videos on how to model giant things out of blocks, or how to kill the Ender Dragon. Then, they launch into Minecraft and try it for themselves. And this is just what I’ve been doing for a few days, when opportunities present themselves – watch a video, watch a few videos in a series, then plunge into Blender and try out the stuff I’d learned. On just friviolous stuff – but as the guy ominously said at the end of the “Introduction to Mesh Modeling” course – “It’s one thing to understand something – it’s another to be able to do it.”
Then he gave this simple assignment. And I must admit, I found it challenging. I just had to change 3 basic primitives into things that look like these:
Note that this also has the results of the second course in my “flow” – lighting. They were racing ahead with lighting techniques on all these fancy models, but all I had at my disposal was the weird little objects from my last exercise in the Mesh Modelling course. So there they are – a little more nicely lit.
A few days later:
I used the above to try out some “materials”. The “flow” I was in was forging ahead through textures and unwrapping the models, but hadn’t filled me in on doing simple materials, so I looked up how to specify materials and gave it a try. Glass. Colored glass. Wow. Same models, same lighting – sure looks different… This counts as a moment when I am very impressed by the software I’m learning – that’s one heck of a trick, right there.
But one thing I do notice I’m slipping into – rendering. That picture above took quite a while to render. And by quite a while, I just mean in comparison to what would be acceptable in a virtual world. Heck, it even has lots of little artifacts (“fireflies”, I believe they’re called) suggesting that it would have liked even more time to render. That’s one big difference between 3D for video or print, and virtual world 3D – the rendering can’t be done ahead of time. The rendering has to happen in real time, so it can respond to the user and the virtual world itself. Even when the rendering is being executed by the circuitry in someone’s smartphone. If they’re going to experience virtual words or virtual reality – the rendering has to be completely dependent upon the user’s actions. But that’s for another time…