Thursday, October 30, 2014

Grease Pencil Dev Roadmap

Since several of you have been asking, here's my roadmap/plan/todo-list of things which will be happening with Grease Pencil development in the near to short term (with the aim of release in 2.73). There are also some longer-term "wishlist" items which others are free to try picking up.

The following are all things on my todo before I consider this development push ready for release:

Drawing/Viewport Rendering  [These border on being "nice to have", and can be pushed back to 2.74 if needed]
* Filled Strokes - Enclosed regions within strokes are filled with a solid fill colour (separate from the stroke outline colour)

* Data-Parented Layers - For GPencil datablocks attached to an object or nodetree, this feature makes it possible to make it so that all strokes on a particular layer will move in unison with a nominated Object/Bone/Node. Besides being good for keeping annotations attached to what they describe, it's also useful for animating walkcycles (or simply using normal animation tools to move sketched objects around the scene).

Stroke Editing [Important for finishing off the current new functionality]
* More selection Tools - In particular: Lasso, Select Linked, Select More/Less, Select All By Layer (?)

* Highly-Requested Transform Tools - Bend and Shear  (though when I last tried Shear, it wasn't too impressive)

* Copy/Paste buffer for strokes (in viewport). Mainly for copying between layers and/or frames.

* Make it clearer when strokes are editable and when they are not - Maybe by just changing when stroke points are visible, and/or restricting when the operators can work...

* Ensure that Proportional Editing settings are always visible and accessible in places where they're needed

Animation with Grease Pencil [Important for finishing off the current new functionality]
* Tighter integration with DopeSheet Editor - Instead of having Grease Pencil data only in a separate mode, frames should also be visible in the main DopeSheet, so that timing can be coordinated. This will end up requiring quite a bit of code changes (as the separate mode in the DopeSheet operators code has been bolted on in a not-so-nice way), but it will be for the better

* Editing strokes on frames where there isn't already a keyframe creates a new keyframe. During production testing, I found this to be a bit of a disappointment, as it felt quite clunky to have to remember to duplicate the frames before editing.

* A way to auto-record  transform states as new keyframes? Inspired by Daniel M Lara's (pepeland) demonstrations of rotating strokes with proportional editing on, it seems like it would be cool to be able to record that effect as it happens (i.e. perhaps while auto keyframing is on). The technical specifics of how to make it all work out though still need some thinking though, so this may be postponed as a "nice to have".

* Animation support for line thickness/opacity - Strangely, this doesn't seem to work yet if you go via the owner of the datablock...

UI [Nice to Have]
* I'm still keen on experimenting with a popout settings popup for quickly changing the current layer's settings or the current layer. How feasible that will be in practice though will have to depend on whether the toolkit actually supports some of these things... (e.g. I've found that properties in the Pie Menus don't work that great, so I've had to back down from some initial attempts at this already)


In addition to the above, there are some things which have come up from time to time, but which I think I'll leave for other interested takers for now:

* Grease Pencil <-> Freestyle Bridge - It would be cool to see the ability to get Freestyle rendering Grease Pencil strokes in a fancier way. Whether this is just for renders (or, even better, in-viewport too) this would be interesting to see, and would open up a lot of creative possibilities too (i.e. true hand-drawn artistic input on top of 3D - like Paperman on steroids)

* Double-checking on making it easier to export rasterised renders of GPencil sketches. We already have playblast support for the 3D View and also the Sequencer. But, the 3D view support appears to suffer from color management + alpha issues (at least in the volumetrics case), as well as being quite setup intensive if needing to render clean plates.

* Better quality 3D strokes - The volumetric strokes work come out of this initially, but it'd be good if someone looked into this more. Eventually we should really look into using fancier OpenGL techniques (i.e. custom vertex + fragment shaders) that many high-quality line solutions out there use. But, that all depends on seeing what sort of viewport environment we're going to have following the Viewport Refactor project.


  1. This is PURE AWESOMENESS. Thanks a lot.

  2. WOW, how a simple tool can become in something interesting even for painters. at least i see interesting to have 3d brushstrokes. good job man

  3. There are some amazing possibilities that this would open up, especially the Grease Pencil/Freestyle connection! Could be Blender's version of Maya's Paint FX, but better...

  4. Beautiful tool here! Thank You! Very much needed for a lot of workflows!

  5. I'm so incredibly happy that you've decided to develop the grease pencil tool further!! I've been dabbling with the idea of creating polygon filled shapes to fill in grease pencil shapes but my coding and experience in blender is at noob level 0. Thank you so so much for working out how to do what I've been struggling to understand and implement. I'm really looking forward to taking your updated GP for a spin and using it to create storyboards in Blender.

    p.s. love your sunset photos, I do a bit of that myself :)

  6. wow would be nice to have my paint stroke and brush system for more artistic feel and look and it is possible to add lazy stroke please

  7. Hi!! Amazing work!! The grease pencil is so underestimated by many, so useful!! Been wondering how much of a priority it is that we can also preview the grease pencil layers in the sequencer. Been longing for this for such a long time, it would make blender the most powerful and fast storyboard/animatic/layout maker in the whole market. The fact that you don't have to render out before editing is a dream, but it is such a shame that the grease pencil get's left out of this workflow, specially since is enchances animatics so much! Not having to opengl render out the shots with grease pencil is too good to be left out.

  8. Yes, improve the Grease Pencil – there are so phantastic possibilities in Blender.
    Many success!
    We are impatiently waiting.

  9. Thank you for this. Grease Pencils are great!. Yes, grease pencil works. The examples are impressive!

    But I miss a lot improvements until grease pencil will be usefull for 2d-Animatin-Productions:

    It is generally still quite cumbersome to use.
    The scaling or moving of strokes allowed no positioning the mouse cursor - it works "directly", wenn the Buttons are clicked, so that some mouse movements are not possible (cursor on the edge of the image, where the menu is located).

    The color settings for onion skin are ignored.

    It would be desirable if there would be the option to smooth strokes when drawing.

    A range of different brushes – and some effects – would be also very nice, I Think.


    I hope that this great feature be evolving. I think that it would be bringing Blender ahead and - bring new possibilities – and new users.

    Until this, I will Play with Grease Pencil as it is.

  10. No News about Grease Pencil?
    Do you have stopped the work on it?
    Or can we hope?

    1. Fear not, I am still working on Grease Pencil stuff. In fact, this past weekend, I've been working on some stuff which I'll announce soon. :)

      It's just that in recent months, my time for working on Blender has unfortunately dried up a bit - I'd love to do more, and I enjoy my Blender projects a hell of a lot more than what I'm deathmarching most of the time now.

  11. Oh, these are very good news.
    Thank you - best wishes for succes.
    By the way: I don't understand, why a so important project for blender will not have the support of many other developers working with Blender.
    My best wishes.

  12. This comment has been removed by the author.

  13. Hi,
    new developments? Have you seen this?

    Could that complement your efforts?