Monday, January 30, 2012

It's all in the clouds

Dunno if it's just me,but I reckon that some of these cloud formations (from the nor'west arch that formed the other day) look a lot like some of those "san-shui" paintings. (Note: I've tweaked the colours in this shot to resemble those a bit more)

Friday, January 27, 2012

Action Constraint GUI - Revised

While checking out a bug report today, I realised that the current GUI for the Action Constraint doesn't actually make any sense from a workflow/IA perspective. The following diagram explains exactly why:

Thursday, January 26, 2012

Quads to Tris - Be careful with vertex orders!

If you ever find yourself trying to construct a triangulated representation of a model with quads, at some point you'll run across the problem of which vertices to link together to form triangles.

In the diagram above, two such orders are shown:
- (1,2,3) + (2,3,4) on the left does not accurately represent the quad, resulting in a hole in the side + a nasty overlap
- (1,2,3) + (1,3,4) on the right is what you actually need

I mention this because Genscher checking out some vertex order bugs the other day with some physics sims (IIRC it was with fluid/cloth). Double-checking what order the rigidbody stuff I've been working on was using, we found that it had basically been doing it wrong! I've since rectified this issue in the branch, though this still doesn't seem to fix the box+plane case where both objects are meshes!

Tuesday, January 24, 2012

Bullet Integration Updates - 24 Jan

Today I've just pushed through a bunch of updates to this branch, as well as pulling in some regular changes from SVN Trunk too. Here are the highlights:

1) Integrated Liero's script to copy settings from one object to a bunch of selected objects
2) Split Rigidbody settings in toolbar into a separate panel

3) Scaling of objects should now be taken into account
Because Bullet ignores scaling on the actual objects, the scaling needs to be applied to the collision shapes before simulation, and reapplied to the matrices obtained afterwards. There may still be some bugs here, but so far it seems to work OK.

4) Collisions shapes use triangle meshes by default now
This works better to allow complex convex shapes get used as collision targets (i.e. Suzanne falling onto rugged mountainous terrain). However, in tests so far, this has been found to cause a few troubles for flat ground-planes getting missed by targets falling down. Perhaps there's actually just a little bug here. Otherwise, it's over to the community which one would be nicer to have.


Sunday, January 22, 2012

Patch and Bug Tracker Triage...

I've been doing a bit of a sweep of the bug and patch trackers today. It's been a while since I've gotten around to working on these things, with various distractions, projects, and deadlines in the way. There are perhaps two main news items that will be of interest to readers of this blog:

1) scuey's patch for "Drag-N-Drop Parenting in the Outliner" is now in trunk!
This patch makes it possible to use drag and drop to parent and unparent objects in the Outliner.

While I do have some reservations about drag and drop in general, especially since it is often done so badly so often, this patch and the Blender-flavoured implementation of this technique are quite nice.

Congrats to scuey for getting his second (?) patch into SVN!

2) NLA Editor - Ability to enter Tweak Mode on strips across multiple objects at the same time
Sometimes it is necessary to be able to enter Tweak Mode on multiple NLA strips (each from a different object) to edit the keyframes of all these objects relative to each other.

It is now possible to do this again. Previously it was possible for a while until fixes for a number of bad bugs ended up disabling the accidental functionality.

Fluid Sim Time Animation Restored

After much pestering from ZanQdo, I've finally spent the morning (and part of last night) hacking the fluid sim to restore the ability to freeze and/or speed up fluid sims (aka the old "Fac-Tim" setting).

Just use the "Speed" setting (shown keyframed) to do this. Enjoy!

Thursday, January 12, 2012


Suicidal Light Bulbs and Stubborn Bees

Wow! Tonight the light bulb over the dining table just popped out of its fitting without any provocation beforehand, shattering just beside a loaf of bread on the table, and spreading shards of glass everywhere.

Barely minutes earlier, I had just finished having a tasty sandwich (strawberry jam + tasty cheese... mmm...) for a bit of a late night snack (why does everything taste better at this hour?), and had been sitting there at the table, with the light turned on.

Wednesday, January 11, 2012

PyGtk Tip - Spin Buttons and Misbehaving Arrows

Just a quick tip for something that I finally found the answer to after searching fruitlessly for for a while.

If for whatever reason the arrow buttons aren't behaving - as in, they won't do anything when you click on them normally, but will start zooming off increasingly fast when click+holding them - then you need to set "step_increment" on its "adjustment" object (a value of 1.0 for this serves most purposes well).

For all the failings (IMO) of Gtk, at least the "adjustment" object design is an example of one thing that they did right over other toolkits. I like this, since I've found that it makes it ridiculously easy to simply hook up all the various widgets that may be displaying a numerical value so that they update correctly when the others change, all without the need to write many tedious flushing event callbacks.

Tuesday, January 10, 2012

Blender-Bullet Branch Online

From comments received in response to my "Bullet Todo List" post last week, there were several main themes coming through:
1) Baking, especially via Alembic support, is a very desirable prospect.
2) Phymec's work on fracturing, etc. would be nice to integrate with this (and also BGE)  at some point. This fits in the "fancy stuff" basket
3) Interactions between animated objects and physics sims (and also animating when physics sims work) is an issue that many people care about. IIRC, there is some support for this already, though your mileage with overriding simulated objects mid-sim may vary.
4) Many are just dying to get their hands on this functionality.

This last point I'll address here and now :)

Monday, January 9, 2012

Sculpt Blob

Just playing around with sculpt mode...

Sculpted Blob Test from Joshua Leung on Vimeo.

First time I've managed to get it to actually do anything. Apparently I've been trying to use it with meshes that were too low res for it to work!

Friday, January 6, 2012

"Help! My Animation Stopped Working" - 2.6 Animation FAQ's

It's been a while since I last posted one of these FAQ's, but there have been a couple of common recurring questions over the past few months which I'll try to help resolve.

Most of this will be old news to those who've been in and around Blender or reading this blog for a while. Hopefully this will answer some of the newer questions.

Wednesday, January 4, 2012

Silvereye Nest

This morning, I discovered that my beloved silvereyes had built a nest in the lychee-like tree in our garden (a tree they really like eating the berries of in early autumn).

Not only are they pretty little birdies, but their nests are also delicate, fine specimens suspended over 2 metres in the air. To get this shot, I was standing on a ladder, and had to patiently stand there for a while to let to get used to seeing me before they'd go anywhere near their nest.

Bullet Integration Todo List (Poll)

After reviewing the state of the preview I posted yesterday and comparing this against the demos posted by various people over the past 2 years (for what they've been doing and/or need), here is the set of current unsupported functionality that would need to be implemented before this is really suitable for mass consumption:
  • Ability to apply rigid bodies to large arrays of objects. These are often similar in many regards, be it shape or colour, and usually need to have the same settings applied to all. E.g. bricks or blocks making up some structure.
  • Ability to use rigid body constraints to define how things hold together.
  • Stability and integration usability polish. This includes all kinds of book-keeping things such as ensuring that copying, deleting, and changing associations all work without any crashes or weird behaviour.  

Eye candy sneak peek...

Sigh... why do I keep taking on extra side projects when I've got more than enough on my plate as it is...

After setting up a local Git repository to work on another Blender-related project (hopefully if it gets officially greenlit, I'll have more news to post about this later this month, otherwise, it'll go back to my pool of "ideas to work on later"), the ease of setting up the setup prompted me to get curious about trying to reboot an old favourite from the dead of unmergable SVN branches.

Monday, January 2, 2012

Welcoming in the New Year

This year, the fireworks display for New Year was in Hagley Park, the first time in over a decade. This meant one thing: fireworks visible from our yard (without having to contend with drunks ready to smash your windows at any moment in time).

Happy New Year - Sort of...

Well, the clock didn't just tick midnight now.. that was over 24 hours ago now. But, nevertheless, Happy New Year to everyone! Let's hope that 2012 turns out to be a brilliant year (albeit quieter on the seismic front here in Christchurch please, if you will mother earth :)  ...  erm... speak of the devil... a sizeable wobbly jolt struck just moments after I finished typing that last sentence. Drat!

This morning I was shocked to find that overnight, my watch had developed a great nasty crack across its face. But it had been fine the night before, and I seriously don't remember whacking it into anything hard...