Sidenote, Sorta: Learning To Properly 3D Render and Model Using Blender: The Beginning

I’ve written a couple times in the past about two divergent but related topics – wanting to make a game myself and 3D modelling and rendering as a hobby. They’re different because, well, different tasks, but one feeds the other, and ultimately a part of wanting to learn serious 3D rendering and modelling technique is to ensure I can create my own assets for that game idea, instead of just buying and downloading asset packs and kit-bashing until something cool comes out.

Because I have been 3D modelling for 10 years or so already, it made sense to me logically to start there, learning that skill set first before moving to actual full-blown game development, which would require a lot of new skill learning with no real grounding in existing skills (short of macros and some shader code, I’ve never done proper programming). What I didn’t realize is just how tricky it could be to learn real 3D modelling.

For my hobbyist 3D fun, I’ve used a program called SketchUp, first when it was owned by Google. It was free desktop software (the current “free” version requires that you run in browser and their database of 3D downloadables no longer provides files compatible with older versions where the desktop app was free), so it was good enough. The thing about SketchUp that I enjoyed, genuinely, is that it was incredibly easy to learn. SketchUp is made for entry-level, minimal-skill architectural visualization tasks – it focuses on maintaining shape and form and makes it quite easy to work in a broad range of ways that are simple to start with – the design of sculpting is not sculpting at all in SketchUp, but instead much simpler – you draw a face, and then you pull that face into 3D space. Whatever shape you draw, no matter how simple or complex, can be pulled from 2D into 3D, and SketchUp then manages the messy parts without your involvement – turning that pulled face into a 3D mesh that can be understood and drawn by your graphics hardware.

What SketchUp lacks is ways to control the output beyond some bare minimum basics – you can turn on some light settings that give you a little representation of the effects of the sun, but you can’t really light a scene, animate things, or do much more than representation of a place in 3D space. For a long time, since what I enjoyed doing as a hobby was stage and wrestling show designs, it was fine, and because I had 10 years of practice with it, if I had an idea in my head for a stage design or lighting setup, I could pretty quickly draw it out with components I had accrued over years of time. Because of that practice, I could use it to make things I was still proud of – my last arena model before I started learning Blender this week was a layout that worked nearly perfectly in-practice as it did in my head and it only took around 2-3 hours of meaningful effort to produce a new stage, lighting design, and overall layout.

But that was the problem, in a way. As a hobbyist modeler, I wanted more out of my finished layouts and designs. I wanted to light the scene, to see if turning on all the lights in the model would overexpose things (there are a total of 272 moving-head fixtures in the scene, with 164 LED-based strobe lights and a couple-hundred square feet of LED video panels and a handful of aisle-illuminating effect lights), I wanted to render a show opening sequence with pyrotechnics and see how it would look, or to be able to apply proper textures and displacement to faces to get more than the clinical, clean archviz aesthetic. SketchUp wouldn’t do it – not for free, not without plugins, and even then, it was a lipstick-on-a-pig scenario, because no render engine that works with SketchUp can really add the detail I wanted to test on its own.

I had also been reading about what I could do with SketchUp as my base modeling application, by using exported data to then pull my easily-made layouts into other apps for texturing, shading, animation, lighting, effects visualization, and well – it didn’t look good. There was one app that can export my SketchUp meshes to Unreal Engine, which is what I want to use for game development – but the app is pretty limited and most people suggest to not bother. But it may not be just that one app.

I’d spent some time about a year and a half ago working with some of my arena models in Blender, or at least trying to. I could export the whole model as a Collada file, which would load into Blender…sometimes. Being new to Blender, I blamed it on Blender and then made some fun test renders with limited imports, whittling down complex layouts to a stage, a ring, overhead lighting, and around 3 rows of chairs. It was cool, and I was starting to get a feel for how cool it could be to see my designs actually properly brought to life, but the SketchUp data handling and meshes were just not quite what I wanted.

It’s not bad, though!

The big problems were easily seen when bringing in the imported models. The geometry was an absolute mess, with a ton of tangled vertices and an intensely unnecessary amount of added vertices for no detail gain, just because of the way that Sketchup built the meshes automatically when pulling faces that weren’t perfectly even squares or triangles.

Here’s how my ring apron frame looked in Blender, with wireframe mode on to expose the mesh:

There are at least two extra triangles for every rectangular face in this single part of a model with 40,484 components placed!

The other big problem was that SketchUps grouping, which makes moving models around to position very convenient, was causing problems with import. There’s an option in SketchUp to “explode” the components/groups into standalone pieces, but it’s a coin flip on whether or not it freezes the whole thing, even with lighter settings on a 12-core CPU with 64 GB of RAM and an RTX 3080! So I tried a few exports into Blender with the groups left alone, and it made things an incomprehensible mess that was a nightmare to attempt to edit or work with, not to mention having pretty iffy odds of an import into Blender not crashing Blender!

Each of those dotted lines is a component/group instance shot off into the void. It has no tied geometry, but deleting it makes the group freak out in Blender and there are several thousand such lines due to how many groups are nested in the model!

For these reasons, as well the ones that would force me to Blender anyways (natural terrain rendering and non-architectural artwork), it was finally time for me to learn how to properly model, sculpt, and draw in 3D. Some of the skills I had built in SketchUp were translated well into Blender (thinking of movement along an axis, measuring work, scaling to fit, the obsessive amount of attention I pay to dumb little details that let me make…all of those things above and literally a hundred more models!), while I needed to think more like, well, an artist, in order to properly use Blender.

I goofed around in it for a bit, making Endwalker-inspired title cards for my stream with a quick tutorial, but I finally sat down with a beginner series on YouTube from Blender Guru and set out on the journey most people learning Blender do – making a donut. (Sorry, I guess doughnut is more proper, but it’s so many more letters.)

I’ll probably re-render the animation now that I know more about Blender, but I like the material used a lot!

It was an interesting journey, because much of what I learned was genuinely new to me. Blender has proper texturing support, allows a lot of editing via direct control of vertices, faces, and edges of a model, and through Nodes, you can use programmed and procedural controls to generate a lot of time-saving detail in a model (like creating a noise image that can be fed as a bump map to create depth!).

So I made a few over a dozen renders of each step of my progress, and I guess I wanted to write to just share that and my reasoning for wanting to learn Blender specifically and needing to learn it now. I also wanted to share my silly little donuts!

The differences from scene to scene are relatively small (I made myself do a render after each step in the tutorial to see the differences in full ray-traced glory!), but it was an interesting experiment. Part of what I enjoy about SketchUp is that it works very easily in a segmented, logical way – I need a face that is 20 feet long and 3 feet wide so that I can pull and rotate it into a ring component – where Blender is more artistic. You can model things to precise measurements but a lot of it is very freeform and proportional so far, and you worry about scale and size later. When I tried to self-teach and make a ring like I had done countless times in SketchUp, it was a lot harder than I wanted it to be and what ultimately pushed me to the tutorial was frustration over things that SketchUp made simple.

But I know a few things about the switch – one of which is that I need to be able to model precisely and with more detail, and that requires a “real” 3D application and not something designed for rapid-fire room and house models, and the second of which is that I need to learn more artistry anyways.

As a kid, like most, I wanted to draw, paint, and do art generally, but as I got older, into even just teenage years, those skills went unpracticed and when I did practice, I was unsatisfied with the results, so I gave up. Most of my use of SketchUp was as a self-professed “non-artist.” And sure, yeah, I suppose that was unfair to myself because the stuff I was using SketchUp for was still artistic in a way. It may not have been a masterpiece painting or drawing, but there’s something to it all the same. For me to do what I want in game development, I have to practice and get better at building these things more artfully – thinking not just objectively and logically about proportions of different components (yes, I do have a couple dozen lighting and stage hardware spec PDFs and dictated my designs through real components) but also about what is visually pleasing and aesthetically correct as well.

My donuts turned out pretty okay, all told. The texture I hand-painted in Blender has some opportunities (the color is definitely off even after using a couple material nodes to try and brute-force some darker hue back into it without repainting), the procedural noise texture is a little too fuzzy, the icing on the donut looks a bit too solid and has some overhangs where I clearly didn’t pull the vertices correctly to bring the icing to the donut as it would be in reality, but overall, I’m pretty happy with how this little 2-day effort turned out. I even made the finished video render and then used the non-animated prior step to make a test particle system to emit a geyser of sprinkles, which looks awful but is pretty fun!

3 thoughts on “Sidenote, Sorta: Learning To Properly 3D Render and Model Using Blender: The Beginning

  1. Back in the 80s and 90s I did a lot of 3D work on my Amiga using a program named Turbo Silver and Modeler 3D (the latter formed the bones of the modeler used in LightWave, the 3D program on the Video Toaster which was responsible for much of the 3D work in Babylon5, incidentally).

    Anyhoo.

    I’ve tinkered around with Blender for a while but frankly find myself overwhelmed with all the controls. In the intervening decades, even hobbyist-level 3D work has taken a huge leap and I find myself torn between picking it up again and using my bandwidth elsewhere. So far, “elsewhere” has won but the itch returns time to time.

    The good news is that Blender has a pretty robust automation interface, and you can talk to it using Python, which is a great language to start out with. That all plays well into future game development plans.

    Just, for the love of Mammon, promise me you won’t use Lua for the plugin / addon interface 😀

    Liked by 1 person

    1. I hear Lua is great – it’s used by the WoW UI so surely it must be good! 😛

      I never really got to mess with earlier or different apps, although I do have a very distinct childhood memory of a CD-ROM at a gas station that claimed to offer CAD software and showed a rendered coffee cup in mid-90s CG glory – overly shiny, glossy, and with minimal scene detail!

      I’ve seen a bit about Python and its use in Blender, which is good to know. I almost did learn Python first to make a visual novel game with Ren’Py, but ultimately reconsidered at the time. It’s on my list, although first for practical reasons, I’ll either learn C++ or instead the UE Blueprints system.

      Like

      1. I started to say that learning C++ then Python was going the wrong way around then I remember I learned C long before Python so maybe i should keep my mouth shut.

        (to be fair Python wasn’t invented yet so if you wanted to program something on the Amiga, C was pretty much the only workable choice)

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.