It's been 4 weeks since I last wrote here, leaving The Internet to descend into madness as it tries to comprehend a world without regular blog posts from me. "When will the literary drought end?", The Internet cries into the dark. "When?!", it cries again, worried that no-one heard the first time. Fear not, I have heard you. The drought/darkness (delete as appropriate) is over. I have returned, albeit briefly, to quench your thirst for ramblings, quenches and of course, thirsts, or my name's not Ray 'The Thirst-Quencher' Mairlot*.
*I will continue to proclaim that is my name up to, but not beyond, the point of being asked to prove it.
While once my time was abundant, now, my time is taken up by (and I'm happy to say, will continue to be taken up by) freelance, but I did manage to steal a few hours away to work on a small script at the weekend. Or one of the weekends. I forget which one and it's not really important to telling you what I worked on. What I'm trying to say is, it's an extraneous detail that doesn't deserve to be expanded on. Let's just say a weekend and be done with it. Embrace the ambiguity.
The script I made is currently a standalone script, but if it proves to be worthwhile it will be packaged up to be part of Animated Render Border (my add-on on the Blender Market), upgrading it to its third and probably, final version. What always improves something? More of that thing! In this case, that means more render borders, ie, being able to set multiple regions of the image to render, instead of just one.
My test was successful as the image below shows; two borders are set using a temporary UI and then rendered into one image:
There are a few hurdles before I can say it will be definitely released, such as trying this out on larger scenes. Essentially, the script renders the frame twice and then*** combines the results, so if a frame takes a long time to build the BVH or do some volume pre-processing then any time saved by doing a border render might be lost by having to do this pre-processing twice.
***30th April! I remembered, that's when I made the script. Thank goodness. Anyone who was worried about the lack of detail before can now calmly recede from the depths of ambiguity, back into the comfort of specificity.
When will I get to work on it again? I don't know. Will I probably start another experimental script before finishing this one? Yes, it's more than likely. But, for now, it's back to having no time, which is really no complaint at all, because I can attest to the fact that getting paid to do something you enjoy is far better than not getting paid.
And with that, perhaps somewhat abruptly, the end.
In my last post I noticed that the forearm models looked a little less than perfect. The forearms were one of the first parts of the model I made and originally I really wanted to make sure they conformed to the reference images I had. Coming back to them now, I think I made them conform a bit too much. Even though they appeared to fit the references, they were a weird shape when viewed from the top. I thought it would be better to reshape them to something more logical even if they didn't match the reference images as well:
As it turns out, having updated the models to a better shape, they do still manage to fit the reference images somehow. It makes sense that the more logical shape is the correct shape, so it's reassuring that the references seem to confirm that.
I have a slight worry that this project is a bit like 'Painting the Forth Bridge', in that once I finish one part enough time will have passed that another part will seem outdated or messy enough to need re-doing. I don't intend to redo a lot more of it, though I think some of the chest panels need refining.
I actually have some freelance work over the next few weeks; I'm not sure how much of my time it will take up, but it likely means less work done on this project for a while.
Such is life.
Despite promising to cover some of the modelling processes I use for the 'Heartbreaker' project, I'm just doing a short post today. Hard surface modelling techniques can wait until I have time (and/or inclination) to do a proper write up.
In my ongoing modelling odyssey* the Heartbreaker project continues, today with the 'finishing' of the head. I say 'finishing' as there are still a few things to do, like a few interior panels that lie behind the exterior panels, but essentially I have finished the main modelling.
Below is the comparison between the old head and the new one. Basically every piece was taken back to a basic stage to be rebuilt or just finished according to some better (or what I believe to be better) reference images.
*Arguably comparable in terms of epicness to The Odyssey by Homer. Not that Homer, the other one, the non-doughnut eating one. Maybe that's unfair. Who am I to say Homer didn't like doughnuts? Maybe he loved them. Maybe referencing different Homers by their doughnut preference was ill-advised and I simply should have been more specific, or, in reality, maybe there aren't as many similarities between this modelling project and an 8th century, ancient Greek poem as I thought...
Below is a still of the new version of the head as well as the back:
I hope you liked the title of this post: 'Making Headway'. It was a pun, because this post has been about the head I've been modelling and because of the progress or 'headway' I've been making. Puns really do give us the best of both worlds: they're fun and informative.
'Heartbreaker' isn't the main thing I'm going to be talking about today. I did do some work on it (as I do every week); it was an update on the head, and I wanted to finish that update before showing a 'before and after' comparison, so until that's fully finished, I'll just show the newer version of the bicep which I also worked on:
What I'm mainly going to talk about is an add-on I released last week. What I find can often happen (ok, fairly rarely) is that you suddenly realise that you've had a workflow problem for a while, but you've just got used to it and have learned to work with it instead of looking for a solution. This is what I realised had happened with hide and unhide. When I work on 'Heartbreaker' I generally end up isolating part of the suit, like the head, in order to focus only on that. To do that I use 'Local view'. I also use hide and unhide, the built in blender commands (H and Alt+H respectively). I use them a lot.
I was hiding a lot of objects and then wanting to bring back one specific object. Of course, that's not really an option unless you're using the outliner, so unhiding would unhide everything, most of which I would then immediately re-hide. I tried to think of a solution to that. How could I visualise hidden objects and be able to selectively unhide them? Would a panel work? A menu? And who in their right mind has the time to answer all these rhetorical questions?
With the near unbearable slew of self-questioning dealt with, I managed to find time to come up with 'Selective Unhide', which replaces the default Alt+H behaviour:
With the add-on installed (freely* available from here) pressing Alt + H now shows the menu in the image above.
*This isn't an asterisk to say that actually, no, it isn't free, but instead it's to simply highlight how kind and selfless it is to give something away for free. So, yes, it is free, but be sure to send me a mental or actual note of thanks every time you use it. Although, if you use it a lot maybe you could just consolidate all the thank yous (actual or mental) into a weekly digest. Obviously I want to receive your praise, I just don't want to be swamped by praise. Maybe I'm overthinking the whole 'praise' thing, I just think that it's important to receive praise in moderation. I don't want to overdo it and get too big headed from all the inevitable praise headed my way.
Let's go through each of the menu items:
Unhide all objects - This is the old behaviour - it shows any object that is hidden.
UnHide all by type - Despite the odd, mid-word capitalisation, this groups all hidden objects by object type, like 'Mesh', 'Camera' or 'Curves', for example. Clicking on an object type will unhide all objects of that type. Maybe you have a light setup you want to keep hidden, but want to reveal all your meshes.
Search - This is what I seem to be using most. It allows you to search for any hidden object or group and reveal that item. This allows you to quickly find a specific object, the downside being that it relies on well named objects. I try to see the up-side of things, so I'm going to say it's an advantage that it relies on well named objects as it means I have been forced to start renaming all objects that have some numerical variant of the name 'Cube'.
Hidden Groups - If an object is hidden and is in a group, then the name of the group is listed here. Clicking it restores all hidden objects in that group. So if you found you were constantly unhiding and hiding the same objects, group them, and this will help with that.
Hidden objects by type - Similar to 'Unhide all by type', this groups all the hidden objects by their object type. The difference this time is that clicking on an object type will then show a sub-menu listing all the hidden objects of that type that you can unhide.
Someone on Twitter suggested I that the menu should also work for bones in Edit mode and Pose mode. I agreed, so it now works in Edit mode, showing hidden bones and hidden bone groups, though I haven't yet implemented this for Pose mode.
Next week I'll hopefully be showing the updated head of 'Heartbreaker' and I might go over hard-surface techniques I use a lot.
Well there we go. Another week, another blog post, another set of anomalous asterisks and atrocious alliteration.
Finally! I worked around the rendering issues mentioned previously, so I can finally reveal what I've been working on: the Iron Man 'Heartbreaker' suit.
Proof that I actually was working on something. Ha!
I'm quite pleased the way the renders turned out. I've been working on this so long that all I see is what has to be fixed, but seeing some renders and hearing some feedback lets me know I'm on the right track*.
*Keep reading for a great continuation of this train based metaphor.
Interestingly (not my opinion, an actual certified Very Interesting Thing™), the rim lighting on the models is actually from the material, not from physical lights. Partially, that's because I think you get more control, but really it's because I've never been able to get completely satisfactory results from trying to set up rim lighting. This setup uses the normal of the faces to determine whether it should be highlighted or not. Here is a (simplified) screenshot of it:
The normal is manipulated with the 'Normal' node before being sharpened by the colour ramp. This mixes between the glossy base material and the white highlight. To get a really bright highlight I actually use an emission shader, but to make sure it doesn't cast light onto itself I use a 'Light Path' node so only the camera sees the emission, the objects in the scene just see black (the empty 'Shader' input).
This is a simplified setup, so it just shows the right side rim lighting, if you want other sides of the model to be highlighted, duplicate the 'Normal' and 'ColorRamp' nodes, adjust the normal direction and add them to the other rim nodes with a 'MixRGB' node set to 'Add'.
See I told you it was interesting, and yet you (probably) resisted believing me. Hopefully you will trust me a bit more in future. If not, things are going to get pretty embarrassing for you when I continue to show you Interesting Things™. Let's avert this embarrassment by jumping aboard this train of Trust and riding out this analogy right to the end, together.
Now that all that train business is dealt with I can get on with my work, so that by next week I will be able to show off a new screenshot.
I guess that's the end of the line for this post (THE TRAIN FUN NEVER ENDS).
Well, I've managed to stick to my idea of doing weekly blog posts, but then again, I'm only a week in, so maybe that's not quite the achievement I thought it was when I started this sentence.
It's always a bit pretentious to say you've got a big project but can't talk about it, especially when that limitation is self-imposed, but if I'm going to get the most out of this project, it means working out how to reveal it best. Last week I mentioned that perhaps this would be the week I showed it to the world. Or at least, the small segment of the world that is interested in 3D. Interested in 3D and likely to see my post. Interested in 3D, likely to see my post and actually click on it. Interes...well you get the idea, it's niche:
On Monday I set about starting this reveal process by trying to do an up to date render. I hadn't done a render of the project in a while as it had got so large geometry-wise that my GTX 570, with it's 1GB of GDDR5 RAM, kept crashing midway through the render. But silly old me! GPUs are so often lauded as the be all and end all of graphics performance and rendering that I had stupidly forgotten about my CPU. Sure, renders are going to be a lot slower, but they render!
Of course, the new found optimism that that previous exclamation mark hopefully depicted, was short lived. I have a compositing setup in the scene that renders the current camera angle in the current scene and then renders an alternate angle from another scene (with linked geometry) and combines them into one, nicely laid out image. Trouble is, it now gets to the alternate angle scene and crashes....so the rest of the day was spent trying to reduce the file enough to create a bug report, which I did.
Tuesday gave the gift of another bug, this time in my own add-on 'Animated Render Border'. I would love to say it was coding skill that allowed me to solve the bug in half an hour, but really, it was panic. There is nothing quite like the rush you get from seeing the words "does not work" in the same context as a product you have released. Well, there probably is, but not in my quiet life.
And the rest of the week
Luckily, for the rest of the week I actually got some good work done, but it depends on the good developers who work on Blender as to when I'll actually be able to show you something. It's going to get pretty awkward on this blog if for the next few weeks I just have to say "Maybe you'll see it next week!" as eventually you'll presume there is no project.*
*"Why not just show the angle that does render then?" I could, but I've waited this long to show it to anyone, so I'd rather wait a bit and do it right, than just show half of the model. I have a few ideas how to get around the bug for next week's post anyway.