Durian » Development

    

Archive for the ‘Development’ Category

New team member!

Monday, January 25th, 2010

Freshly arrived from across the Atlantic: Jean-Sebastien Guillemette from Montreal!
He’s going to help us putting the film together: modeling and design, scene layouts, lighting, render, composites. Exciting :)

Oh, and I’m back from a 2-week’s holidays in La Palma, Canarian Islands. I’ve spent a week on slowing down and relaxing, and a week on Blender 2.5 code (drag’n'drop). :) One one of my walks there (breathtakingly beautiful green island) I came by Dragon Trees. These are very ancient long living trees that are an important symbol in our film too…
js dragontree

-Ton-

Render Development Plans

Wednesday, January 13th, 2010

I’ve moved to working on the rendering engine, which will be my main focus in the next 3 months. There’s still some fixing needed on the sculpt tools but I won’t do any big changes anymore there. The planned rendering development consists of four parts.

Shading System

The shading code will be refactored to make a clean separation between materials and lamps, and some corrections will be made to the current lighting calculations. But mostly the intention is a more modern system to design materials, one that is not so much geared to direct lighting from lamps only, but works well also for indirect light. Nodes will also be central to the way materials work rather than something glued on top of it. It’s basically a merger between physically based rendering materials that are design for advanced lighting algorithms, and production rendering materials that can do things like output passes or use some tricks for speed.

The current design is on the wiki. We most likely won’t implement the full thing for Durian, but the intention is to implement the foundation and the parts that we use ourselves. Improved raytracing can then be implemented by others later.
shading_system_material
(more…)

Development Update (odds and ends)

Wednesday, January 6th, 2010

Since my last post and over the holidays I have mostly been working on smaller things which I didn’t even think it worth posting about, some of these were requested for specific tasks, others were just for fun. Recorded 5 videos, read on for the other 3.

And before you ask, all this is in the public subversion builds.

Shape Key Transfer

Grease Pencil Depth

(more…)

Rigify Auto-Rigging System

Thursday, December 17th, 2009

Since there are more then 3-4 characters to be rigged we agreed having some way to make a rig once and re-use with minimal manual tweaking was needed.
Over the past few weeks Nathan and I have been working together to make a system which can generate these in a way that lets us apply them in a variety of situations.

Nathan broke his rigs down into body parts; hips, neck, spine, finger, arm, palm and leg. with the desired ‘before & after’ for each.
Then I took these and wrote a script that would look at the simple rig and create the final version.

After this it was just a matter of putting it all together to rig an entire character.
If this proves its self to be useful it may well become the defacto auto-rigging system in blender, too early to say now.

Rigify Demo .OGG file (higher quality)
Please excuse the needless mouse waggling, clearly I can’t talk and use blender at the same time :)

Download the blend including metarig and generated rigs, older versions of Blender 2.5 should be able to open these too.
SintelBaby Dragon

Technical Details

  • Written entirely in python 3.1
  • Uses the blender 2.5 data api from python and operators in a few some cases, mostly to toggle editmode.
  • ~400 lines of code for the rigging system, ~400 lines for utility functions, ~2500 lines for 9 metarig types.
  • Rig types are separate from the rigging system, new rig types can be added by copying files into the module directory.
  • Pose bone properties, one tag per rig type, optional tags can be added to set layers and the root parent.
  • PyDrivers got a ~20x speedup by caching the compiled expression which helps since we needed to use PyDrivers in the more complex rigs.
  • Available the regular Blender2.5 SVN revision 25450.

- Campbell

Development Update #2

Friday, October 30th, 2009

Bugfixing and bringing back features in 2.5 has been taking up most of our time in the last two weeks. However a number of new features have been added as well, so let’s talk about those a bit.

Campbell and Martin worked on a Gimbal mode for the transform manipulator, which allows you to see exactly where each Euler axis actually is and edit only the single f-curve corresponding to that axis. It also gives you a nice visual indication when you reach Gimbal lock.

gimbal_widget

Bone near Gimbal Lock

(more…)

Revealed: Title, Character Design and 1st Minute

Tuesday, October 27th, 2009

Hello!

Sorry for the lack of updates recently. Yesterday was the last day of the Blender Conference and we’re all still recovering!

But we haven’t forgotten about you. We have a number of posts coming up to go over some of the stuff we showed off at the Durian talk on Sunday.

But first things first. For those of you who missed the live stream, we revealed a lot about the movie–including the (working) title!

sintel-title-alpha-only

Photo by Dolf Veenvliet
conference2

Photos by Dolf Veenvliet

BAM! Congrats to “D” for guessing the title right. You deserve a prize! Perhaps a free DVD?

And we also revealed the final character design for our main character– whose name, coincidentally, is Sintel as well!


sintel

Click to Enlarge

BAM! Done by the amazing David Revoy of course.

Here’s the video I slapped together to kick off the talk:

Blender Conference Intro Video from Project Durian on Vimeo.

And here’s a quick video to introduce the work we’ve done on the first minute of the film! It’s rough, but hopefully gives you a glimpse of some of the stuff we’ve been doing. All of this material has already been cut– but we feel this has been an excellent exercise.

Durian First Minute – 01 from Project Durian on Vimeo.

Also check out the PDF of this sequence in first draft of the script!

Expect more updates from us soon.

–Colin

Development Update #1

Wednesday, October 14th, 2009

Our plan is to do regular development updates, summarizing what we are working on, rather than doing it only for bigger features. Last week and this week the focus is on bug fixing in Blender 2.5. The artists here are already using Blender 2.5 for modeling, shading, lighting, rigging, animation and video editing.  In the Peach project Blender wasn’t used as much in the first weeks, and then we started from a stable version even. So, that immediately resulted in many different bugs and small feature requests from the artists.

We’re not going to list the bug reports here now, instead here’s some photos of our bug lists. There’s also multiple places where you can track svn commits, for example here: Blender projectCampbell’s commitsBrecht’s commits.

campbell_bugsbrecht_bugs

Besides bug reports, I also worked on key configuration. Now keymaps can be saved, and different key configurations can be made, so we can have a revamped 2.5 version, a classic 2.4 version, and some similar to other 3D applications for users switching from or using both.

It’s not really a critical feature for Durian but should give us some more liberty to bring back 2.4x tools without worrying too much about them fitting well in 2.5. This way artists can use 2.4x shortcuts for now, and we can bring back tools in that key configuration without worrying too much if it fits in the new design, while the UI designers work on a revamped 2.5 key configuration.

Campbell mostly worked on bug-fixes and bringing back missing features into 2.5 but also added edge to curves conversion, pattern select tool and an experimental mouse grab option to avoid having the mouse limited by the screen size when transforming and dragging buttons.

Brecht.

Features Wishlist

Thursday, September 10th, 2009

A first version of the features wishlist is now available. Interested developers are invited to pick up items from this list. For the non simple features, it’s best to contact me or the module maintainer when you start working on it, so design and implementation can be discussed in advance. Note that this list can’t be considered complete yet, it will keep evolving throughout the project.

For the rest of the month September, developers here at the Blender Institute will still be occupied with Blender 2.5. This is the version that the artists will use, which will definitely help getting it ready for real word usage. In October work will start on Durian features, combined with bug fixing or adding missing things in 2.5. But, that doesn’t stop other developers from working on interesting features already.

(more…)

Blender Development Targets

Wednesday, August 26th, 2009

Today we discussed Blender features, trying to get an overview of the things the artists really need to complete the project. This is only a rough overview, we didn’t discuss all topics yet, a more complete and detailed list will be compiled later, for developers interested in getting involved.

Modelling and Sculpting

  • Sculpting: the main challenge here is performance, supporting more polygons and smoother interaction. We have various strategies to achieve this, it will be interesting to see how far we can push it. Better brush tools are also welcome, we expect these can be implemented quite efficiently as artists start using the system and provide feedback.
  • Multiresolution: we intend to improve the new multiresolution infrastructure for sculpting and rendering, preferably supporting high polygon meshes without any baking steps inbetween.
  • BMesh: n-gons and the associated modelling tools would be useful, but they are not a must have for this project. Still it may be worthwhile to use the Durian project as a way to get BMesh tested and completed, we’ll have to evaluate the status of this project in October.

Rigging and Animation

  • Rigging likely will not require deep changes, most new features here will be focused on various relatively small changes to make the system more flexible for building better rigs and presenting a good interface to the animator.
  • Proxies will need to be improved, for example to support multiple instances of a character with variations.
  • Animating the camera position and rotation by doing real life recording would be an interesting feature to have. Motion tracking would be needed for this, completely using open source tools of course, and the libmv project is a promising candidate. This would not be natively integrated, but use a script most likely.
  • The new animation system in 2.5 will be extensively used, but I don’t have a good overview what kind of feature requests will come up here yet. We’ll likely discuss things in more detail with the riggers and animators later this week.

Physics

  • In this project we’ll have a lot of chances to use the physics systems. Big Buck Bunny did not use physics much, as many of the tools where not at the level we needed, with Durian we will try to get the physics systems production ready.
  • Physics must work with the Proxy system, to support working with physics simulation in typical library linked setups, and it must get better support for using caches/bakes in production setups and on render farms.
  • Cloth simulation is already quite advanced. We intend to use it on the main characters, so inevitably we will run into various issues that will need to be fixed, to get this up to the level that we can use it for close ups in 4K.
  • Hair simulation is another effect that we would like to use on main characters. The current system for this is not up to the task, as for example hair volume is not taken into account. How to get good hair simulation working is still unknown.
  • Smoke and Particles will be great for various effects, the recent developments in these areas are very welcome, we’ll follow closely and evaluate how to get these working efficiently for us.
  • Rigid body dynamics would be great to have as well, Bullet is up to the task, but it should be properly integrated, not through the game engine.

Rendering

  • Rendering scenes with much more detail is one of the targets. This requires changes throughout the rendering engines, from per-tile geometry subdivision, to image and shadow tile disk caching.
  • Volumetrics are useful for rendering dust, smoke and explosions for example, and this of course fits our theme very well. We’ll need to evaluate the system to see how well it works in full production scenes regarding performance and memory usage.
  • The shading system can use a good review to evaluate correctness and make it more extensible for future improvements, and we hope to work with other developers on this. For Durian we’re working with very detailed scenes, which likely excludes raytracing or photon mapping for us, so it would be good to get a structure that can accommodate various approaches.

Compositing

  • Working with 4K resolution will require us to make this system tile based, so that large images can be composited without running out of memory.
  • We’ll also need to figure out a workflow for working with lower resolution images than the full 4K, and only for the final rendering do the full resolution.

Brecht.