Sintel, the Durian Open Movie Project » Blog Archive » Blender Development Targets

    

Blender Development Targets

on August 26th, 2009, by Brecht

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.

45 Responses to “Blender Development Targets”

  1. MTracer Says:

    It would be interesting to see a script shelf setup, in which scripts can be organized using icons and ran simply by clicking on them. It would let us rig with no controls in the viewport, just click a selection script and the invisible controls would be placed in your hands. Basically, make the all the bones have wire frame drawobjects, but not force wire, and then change the armature object to solid draw. That would make the bones invisible, but usable.

    It might also be useful to setup a system in which alleged “feedback loops” would work. Take the spine for example. It would be nice to have an FK broken spine, that can be stretched and such. However, at the top of the spine, the shoulder control would be able to move freely. In other words, you select the FK controls and pose the spine. Then select the shoulder control, which stays at the top of the spine, and drag it, the entire spine stretching and rotating around the hips to stay connected to the shoulders. You could maybe do that with constraints that are driven by bone selection, and apply their effect when turned off. So, if you select an FK spine bone, it turns on a constraint which parents the shoulders to the chain. When you deselect the bone, it applies a visual key to the shoulder control, than deactivates the constraint. If you select the shoulder control, than activate constraints on the FK bones, which parents them to a stretch bone between the hips and shoulders. When you deselect the shoulders, apply a visual key on all the FK controls, then turn off their constraints. If you select both an FK bone and the shoulders, then only activate the unselected FK constraints. Do not activate the selected bones constraints.

    This could probably be done with scripting, but maybe it could be made more integral to Blender.

    Ciao!

  2. -jay- Says:

    These targets are very ambitious and very exciting, good luck and have fun! The Durian release will be head-exploding!

  3. charliemcf Says:

    Sounds great πŸ™‚
    Volumetric sounds very useful as the particles and billboard method for me was not yielding very good results. πŸ™

    @ TON…
    I know its a strange place to ask but I had an idea for a feature which shouldnt be too difficult (i think) and very useful.

    In many programs you can save meshes to be recalled (similar to “append”) but there is a small preview of what you are inserting into the scene and you can drag and drop objects for example rocks or litter.
    A bit like the way autocad does with “components” we could each save objects we are likely to use a lot in a place where they are easy to get into the scene…
    windows and doors for houses could be dragged from a panel next to mesh tools, or similar.

    just an idea but one i think would be really very benificial and i have waited to see if someone suggests for a while.

    hopefully you think its as useful as i do

    /charlie

  4. charliemcf Says:

    @TON…
    i know your busy but here is an example of what i mean:
    http://www.youtube.com/watch?v=waiFvnMDiJw

    thanks
    πŸ™‚

    ps. its called a “component library” i think

  5. charliemcf Says:

    and another…
    http://www.youtube.com/watch?v=Yzl9bIMWtf0&feature=related

  6. francoistarlier Says:

    if you guys just accomplish half of this list it would be awesome !!! this is definitely going to bring blender to the next level !

    good luck guys !

  7. Simon Says:

    Wow I hope you get a lot of donations because you will need it to complete all these stuff! Would be awesome to have these improvements.

  8. Lasse R. Bruntse Says:

    Awsome! I liek the frequent updates here..

    btw. @charliemcf:
    The ‘component-way’ of working is already implemented (sort of) in blender, – using groups. You simple make the component you want, which can contain more than one object, and make a group for the object. fx. you might have a rock-group which consist of several smaller parts that you save in a rock.blend file. now you can append the file into you scene and add it as many times as you want by pressing the SPACEBAR. Also, using relative paths and link makes it possible to change the model in the original file and the object will update itself in all blends it exist in. Hope this helps.

  9. Digikiller Says:

    What would help the volumetrics engine is a glow shader that can produce glows without node compositing for speed.That would really amp up your explosions and fire!

  10. William Says:

    Hooray for Bmesh!

  11. invertedNormal Says:

    + infinity for BMesh =d

    it’s gotten too far to take another chance at leaving it behind again.

  12. Lich Says:

    this maybe not the pla to ask this. . . but

    in the future, composite nodes will be able for animation? i mean, i been the releases from graphicall and until now nodes can not be animable or at aleast i cant animate them.

    And the second, its too difucult to develop a normal paint mode??
    thanks to the espectacular projection paint!!! (realy its great) we can do a lot of things but in textured modde with GLSL the only way to see bump maps is using normal tangential maps (if there is another way please tell my) so, a way to paint normal tangential using projection, and no cloning normal maps that that is what i am doing now.

    thanks and im very exited about all the wor done and the future goals !!!

    escuse my english πŸ˜€

  13. Socceroos Says:

    Wow, I’m very impressed with the line-up of features! It will be interesting to see if the 2.5 code base makes development any easier.

    Also, I’m loving the regular updates, its very exciting!

  14. Anthony Says:

    bmesh please. that’s the only feature i’m waiting for with 2.5.

    and i’m sure there are many many others like me.

  15. Matt Says:

    “For Durian we’re working with very detailed scenes, which likely excludes raytracing or photon mapping for us,”

    I know there’s a lot on your plates, but I hope that the improvements you make to the renderer (per-tile geometry etc) will still work gracefully with raytracing. Regardless of whether you will make a lot of use of it in this short or not, raytracing is a day to day production necessity for many of us, and shouldn’t be ignored (especially when you’re working under art direction and the soft, blurry shadow map style doesn’t fit the job).

    I mentioned to brecht before, even in our Lighthouse short which *did* have a less photoreal, more painterly style, we still had to make use of raytraced refraction as a plot point, which caused lots of headaches trying to get a character who was set up for strand rendering also work (not at the same level of efficiency, sure) under raytracing. Issues like strand render strands not causing occlusion in AAO, but geometry strands occluding, made this even more difficult.

    I hope that things will still be compatible (eg. inserting lower res versions of geometry in the raytree), rather than ‘scanline or the highway’, and even though you’ll be under tight deadlines, I hope that these improvements will be useful for the wider blender community and not just the specific needs of this project.

    cheers

    Matt

  16. Gianmichele Says:

    You guys are insane. Best of luck with the project, I’m sure it’s going to kick ass!

    Gian

  17. Wahooney Says:

    Interesting proposals indeed.

    I’m keeping my fingers crossed for full Bullet integration into the Blender front-end, which includes Bullet particle systems. Complete with joints, soft-bodies, etc. πŸ˜€

  18. Dusty Says:

    Ah! This sounds like a serious list!!!

    Obviously I’m VERY happy to see sculpting being targeted for improvements.

    If there was a way to apply Alpha images to the brush dynamics (like in ZBrush) then that would make me VERY happy!

    One other thing is somehow trying to get high resolution models in Blender. (4 million ploygons plus). ZBrush somehow does this by not processing the loc rot and scale of every polygon on the model, but using some sort of approximation code, for just the ploys you can see or are interacting with.

    It would be cool if we could have a seperate area of Blender to create and sculpt high res models, retopologise, normal map and other processing on them for the main blender environment. See what I mean? In other words a whole new way to process these models.

    Anyway, i’m rambling….. sorry πŸ™‚

  19. brecht Says:

    @MTracer: Blender 2.5 opens up some interesting possibilities for integrating scripts and rigs better into the UI, we’ll see how this works out during the project.

    @charliemcf: previews for appending and linking is a useful feature, but unlikely to be important for a project like this.

    @Lich: making node values animateable I’m sure will happen as part of the 2.5 project.

    @Matt: yes, I know this is a concern, for Peach work on the render engine was quite rushed due to a change of plans midway development, hopefully we can do better this time.

    @Dusty: I think a separate area is exactly what we should not do, rather we should spend time to get these kinds of things well integrated. ZBrush is not fast because it lacks the other stuff, it is fast because it has good optimizations for what it does.

  20. Bart Robinson Says:

    A wonderful list!

    Personal Favorites: Proxies, Motion Tracking listed under Camera Animation, Hair, Smoke & Particles, Rigid Body Dynamics, Rendering, Compositing.

    Additions: Rotospline interface in Compositor. Add support for LUTs in Renderer and Compositor. Add Waveform and Vectorscope views for Compositor. Add a way to load and save settings for things like Particles, Fluids, Cloth, Volumetrics, etc. or make them like Materials, etc. so they can be loaded from a library. Make a way to save certain datablocks to individual libraries or appended to external libraries.

    Suggestions: Integrating Rigid Body Dynamics – the engine should be in the core of Blender. Game Engine, Animation, and Python should get access from there. Compositing – working at multiple or high resolutions should be a no brainer. Implement a parametric system. Make all measurements float (0.0 – 1.0+) Only specific operations that require it should use pixel measurements (crop, save, etc.) A parametric system will allow multi-resolution compositing with ease and make implementation of a Proxy system possible. Proxies should be dynamic (1/2 res, 1/4 res, etc.), cache-able (memory cache and disk cache), and manual (load disk cache). Caches should be able to be pulled from a remote network location to a temporary local disk cache and be able to be pushed back out to a network location (for workgroup storage or renderfarm access). Rendering – using a tile based system for 3D animation renders and compositing. Implemented in both with access from outside of blender for use in render farms. Add a renderfarm controllable command to compile all the tiles rendered to form a full frame.

  21. BigWings Says:

    Great new features! I can’t wait for 2.5.

    It would be great if you guys could also add custom wirecolors per object. When having big scenes, the all-black wirecolors get extremely confusing.

    Seems like an easy fix, no?

    M

  22. DeMoN Says:

    Definitely a high target list, I wish you the best with the implementation.

    However, I was thinking that when you try to do what sounds like a micropoly subdiv solution. Doing lighting you might get stuck with bad performance, and I just wanted to point out a solution by Crytek of using camera oriented volume textures http://www.crytek.com/fileadmin/user_upload/inside/presentations/2009/Light_Propagation_Volumes.pdf (and video at http://www.youtube.com/watch?v=FqeXuO2AlEE)

    That way you won’t have to worry about a dynamic data structure storing Shadow + AO + GI lightbleed, you will just have static volume tex the same mem footprint from frame to frame. You probably already knew about this, I just wanted to make sure you did πŸ™‚

  23. max Says:

    oh !!

    the targets are pretty good!!

    stay tuned!

  24. Nathan Letwory Says:

    @brecht+@lich: many of the nodes (including compo nodes) have their attributes already exposed through RNA. This means you can add them to keying sets and thus animate. One example for compo nodes is the blur node: you can animate ie. the size setting. Granted, not all nodes have been apparently properly RNAfied (like the RGB Curves node), but I guess that shouldn’t be too hard to add.

    /Nathan

  25. Shrinidhi Says:

    Tats one huge insane list πŸ™‚ . Hoping to see them all implemented… πŸ™‚ .
    All the best guys . \m/ .

    “This is madness”.
    “Madness?????!!!!!!!!”.
    “THIS IS BLENDERRRRRRRR”…..

    πŸ˜‰

    cheers

  26. Hectichermit Says:

    I think that if the sculpt tools had someway to control things for tablets such as pressure maybe even velocity like GIMPs Brush Dynamics, or a custom brush panel where the User can use several settings to create a brush…sorta like MyPaint except in 3D…For example a Artist can create a brush called “Rough Draw” the settings would be the Sculpt option- Draw, a Custom Curve setting,and a Texture….then quickly switch to another brush setting via an icon called “Smooth Deflation” which would have a deflation(subtracting Inflation)with default curve and no texture. I just think it would be a good way to save those cool settings we have stored in our head. http://durian.blender.org/wp-includes/images/smilies/icon_smile.gif

  27. Malcolm Zaloon Says:

    A complete functional visual programmable environment like SoftimageΒ΄s ICE system, can resolve various of issues for this project, at same time, will be a fantastic addiction to blender in all fronts.
    Please, consider it.

  28. Sienio Says:

    That’s awesome list of features! I’m just courious how it’s possible to improve sculpting-speed and improve max amount of polycount in blender? The (a little controversy) gsoc VBO project look’s interesting, but it looks like it’s provide only faster redraw speed, not polycount amount(?). It’s interesting how other commercial apps like XSI can handle so much polygon’s and still run smoothly.

    Anyway, good luck with project! πŸ™‚

  29. xd43vild69 Says:

    blender will be the better, stronger & power tool for 3d artists, I am so happy to know about our list, we need to work hard but I believe blender like the best tool for the future… we need compare and integrate the best from the others, but we have one thing than the others don’t has… open source, open mind, fast develop and shared knowledge

    πŸ™‚

  30. young_voter Says:

    Blender has gone from a boy into a man. I hope the girl character will eat the durian and share half of it to the dragon.

  31. LetterRip Says:

    Brecht,

    for sculpting it would be good to have masking support, so that target geometry is unsculptable but still visible.

    For painterly tools it would be nice to have live mirroring support.

    LetterRip

  32. yoff Says:

    Cool feature list πŸ™‚

    One thing I would really find interesting is muscle simulation, but I am sure there will not be time that πŸ˜‰

  33. Grafos Says:

    A very impressive list, I am a Maya artist myself, but have set my eye on Blender for the last couple of months and am cautiously awaiting for the 2.5 update, so that I can make my transition from Maya with less effort. +1 for muscle simulation it’s the one thing I would have liked and seems to make sense for such a project.

  34. Eibriel Says:

    Motion tracking!!! I will cry! hahaa

    “@Lich: making node values animateable I’m sure will happen as part of the 2.5 project.” That is a great news!

    Good Luck!!

  35. Le@ndro Says:

    @yoff and Grafos: for some “insights” into muscle simulation you can check the awesome work from Pablo Bouza’s Blenrig 3:

    http://vimeo.com/user406792/videos

    http://www.jpbouza.com.ar/ESP2/

    And about the list, everything sounds so promising!!! I can’t hold the enthusiasm…

  36. Nixon Says:

    Thank you!!!
    those feature improvements would be incredible!!!!
    don’t forget to party and sleep while you’r workin on all those issues!
    you deserve it.
    Much regards and appreciation!
    Nixon

  37. yoff Says:

    @Le@andro: I am aware of Bouza’s work, and it is indeed interesting. But I am sure that an integrated solution would be necessary for a project with many characters. Handydan had started work on an implementation, but has been silent for a while….

  38. Polly Says:

    I know the iClone software can product the animation very quickly,but use blender we have to adjust the poser.I know this is very useful for experienced,but for freshman we should afford some demo to help us create animation easily. Can we afford some constraint when we create poser animation, That is to say the character obey the real world!

  39. ralmon Says:

    Wow a very impressive list. Hope it will be properly implemented. It would greatly enhance everybody’s Blender experiences.

  40. hessiess Says:

    Nice list, Any improvements to the hair system would be great, Animated long hair is prittymuch imposable in Blender currently.

  41. attanze Says:

    Durian developers, please take a look here:
    http://www.danielpferreira.com/reel/r2005/impactSystem6_4000.avi
    wonderslime.com

    Is about a wonderful particle-phisics system called “Impact System”, a system who will speed-up tremendously the process os seting complex scenes with a lot of smoke, debris, bullets, explosios, etc.

  42. Grafos Says:

    @Le@andro: I am aware of the Blender Rig and indeed is a very promising project, but like yoff, I was expecting an integrated solution. Like in Maya, we’ve had various muscles system\workarounds, which became pretty much obsolete when the integrated solution appeared.

  43. jpbouza Says:

    Hey, Cool list!

    Still, IΒ΄d like to see a little bit of improvement regarding the shrinkwrap modifier and muscle simulation…Specially for that Dragon that is supposed to be in the movie!

    Currently muscle simulation can be done thanks to Jaguarandi, who kindly fixed some issues in shrinkwrap when I started developing BlenRig 3.0. But the system could be much improved. Specially if we could do something like this:

    http://chrisevans3d.com/tutorials/maya_muscle.htm

    As you can see, the muscle object has a kind of curved influence over the mesh, much like a lattice. Unfortunately, the shrinkwrap modifier has a linear influence, so such effect must be achieved by carefully weight painting the mesh and then applying a smooth modifier to avoid sharp deformations.

    The results are pretty amazing, and it is efficient, but it could be a lot better with some little changes!

  44. MrMowgli Says:

    Very ambitious set of features to add, luckily a lot of this is already past the concept stages in other branches and just need to get integrated!

    Really just a note to some of the comments – Ton and Brecht will be smack dab in the middle of some of the most demanding animation (that I know of) ever done on Blender. So I am sure they will implement the important things to get it done, and that means getting the most useful features in as well as having to work with those additions on a daily basis.

    While I would like to see a lot of things added to Blender, I don’t believe the Durian project is an excuse to air feature requests. As it is there have already been a million overhauls to blender for 2.5; Adding more complexity to their already challenging tasks should be saved until Durian is released.

    @charliemcf: Since the UI is actually all scriptable python now, you could actually create a palette yourself and submit it. The downside would be creating the images to display in the palette, which is probably fairly difficult to accomplish but would be cool.

    @Dusty: Since the UI is actually all scriptable python now, you can actually create a customized version of Blender with the elements you want as your own design. In theory you could make it all look just like ZBrush. Feel free to make it available when you are done πŸ™‚

  45. Herman Says:

    Hi my name is Herman and I am from South Africa Kreursdorp (close to key west mall). I want to form a team to create a PC game using Blender GE. If you are interested to join me please send me an E-mail at hermandpienaar@live.co.za. It doesn’t matter if you are totally new to game designing. As long as you have a passion for 3-D designing and gaming!