Tuesday, December 1, 2015

Grease Pencil News Roundup: November - Early December

There's been quite a lot of exciting developments and experiments around Grease Pencil in recent weeks! I thought I'd just take a moment to highlight some of those that have caught my eye :)

If you haven't already, check out some of Daniel's latest tests:
Little Fire Lady

GP - "Little fire lady" combining Grease Pencil and VSE (Fan art, Miyuli) from psl on Vimeo.
GP - "Smile Take - Little fire lady" using Grease Pencil sculpt tools (Fan art, Miyuli) from psl on Vimeo.

I love how he managed to get that "concept art in motion" feeling with out of the Grease Pencil tools! Especially that "burning fire" look... man! These results are all the more impressive, considering that all this still is done using the "ancient" (and very limited) OpenGL 1.4-ish techniques that Grease Pencil is currently implemented with. This includes the limits on line thickness (and the quality issues which arise there for curving strokes) as well as the issues with filled strokes. Still, if you get creative enough, there is always a way through!

GP Strokes to Geometry + Modifiers...

GP - Grease Pencil --> convert to bezier or geometry + Build Modifier = Animated strokes! from psl on Vimeo.

In this test, we see how many interesting effects can be achieved by converting Grease Pencil strokes to standard curve geometry, and then applying modifiers to those and rendering using Freestyle/BI/Cycles.

As an aside, it also got me thinking about an alternative solution to all the rendering/line quality issues we currently have: Instead of trying to extend Freestyle to GP strokes (which, from talking with Tamito - Freestyle Dev - seems to be quite a tricky route, as edges there are expected to always be flanked by 2 faces!), and then also trying to find a nice way to get thick 3D strokes, maybe we should just have a way of automatically tesselating GP strokes to the DispList format used for curves already, thus making it possible to reuse all of that existing infrastructure already! I'm still looking into the feasibility of this approach, though it is something I intend to play with at some point, when I get time :)

Perhaps the biggest takeaway from these three videos is how they are great demos of how Blender's set of fully integrated and interlocking tools (hence the name ;) can be used to provide artists with an really flexible and powerful environment for creating art in. It's always amazing what a little bit of creativity, know-how, and crazy experimentation can end up producing! As the issue of contributor motivation levels in Open Source projects has recently been quite a topical discussion point again, I thought it would be timely to note how for me personally, seeing all the crazy and wacky ways that artists manage to take the tools that I've developed, and push them into even more amazing directions that I'd never have imagined when starting work on them is one of the greatest pleasures and joys of what I do. It's really inspiring knowing that work you're doing is of use to people out there, and that it can have so much untapped potential yet to be discovered.

Another inspiring example of this in action is the following demo of the stroke sculpting tools (though it's from October, I still thought it'd be worth mentioning here, alongside the other demos):
Stroke Sculpting - Face Doodles Demo
GP - Doodle#2 - Drawing & using sculpt tools & some animation in Grease Pencil by Daniel M. Lara (pepeland) from psl on Vimeo.

Personally, I always find it quite mesmerising watching artists working, and seeing how it's possible to develop and change the look of a character by performing few simple tweaks, and then getting a whole new/different character out of it! In particular, this video is a really nice demo of how the sculpt tools can be used to support a fun and flexible way to play around with your sketches. Plus, the chiseled-pen look that's going on here is just soo awesome! (I did try making an automated drawing mode for this using the current OpenGL stuff, but that attempt kinda fell flat on its face, for being far too unreliable and fickle to get good results from. Still, it's something I'd like to revisit again sometime later when we have some more advanced stroke drawing methods in place. Maybe it'll be easier then!)

Speaking of creating different looks using Grease Pencil, Jose Molina and Daniel have been working on an interesting addon/tool for creating and managing sets of Grease Pencil layer settings, making it possible to easily and effortlessly switch between several different sets of looks and styles. It works by saving off the layer settings controlling the appearance of those layers; this means that you can reapply different sets of saved styles, to quickly try out different sets of looks for your drawings (which as this demo shows, can have a lot of interesting potential!)

GP - Grease Pencil layer manager addon (alfa version) from psl on Vimeo.

Though I haven't played around with the addon myself, it seems reasonable to believe that if you always use a similar layer structure, that it may be possible to reuse the same sets of styles in different scenes, making it possible to define your own set of "preset styles" that can quickly be applied.


Today I also came across the following demo from Antonioya Blender of some interesting addon for animating/editing with Grease Pencil that he (?) has been developing:

There's quite a bit of exciting stuff going on here. In particular, I particularly like the interactive previews of the end result (with the ability to tweak these interactively in the viewport without having to resort to sliders afterwards), and how this is being used for helping out with animation. IMO, this is a great direction to be taking animation tools in - and not only for Grease Pencil, but in general. That is, we really should be trying to find ways to make the computer work for animators more, while still allowing the animator to still have the final say about what they choose to adopt.

As for the actual tools presented here, here's my take on each of these:
* Interpolation - This is something I've been thinking about working on at some point, though a lot of other issues currently still need to take priority (e.g. line/fill quality, sequencer usability issues, dopesheet integration issues, etc.), so it's cool to see that someone has stepped up to the plate and provided a working solution in the interim. Of course, it'll be great to finally set up something officially in Blender. Something based on the Autocomplete paper's methods (though there's actually a lot of complexity and corner cases that'd need to be solved to get something like that practical for usage in Blender) is more likely to be what we eventually end up seeing here...

* Ballistic Interpolation - Great idea! It is similar to some work I saw done a few years back by Ari Shapiro while at the now-defunct Rhythm & Hues, where they were looking into ways of making it possible for animators to leverage the power of physics sims to help inform the realism of the motions they've created. There's a lot of interesting work that can be done in this space to provide ways of helping animators take advantage of physics sims when animating, but without then becoming slaves/hapless-passengers to an uncontrollable beast as they cannot maintain the art-directed control they require over the final result.

* Simplify/Smooth - Once upon a time, I thought that these would be good as the kind of batch tools presented here. However, having played around with the sculpt tools for a while, I now think that this sort of thing is again better suited to being selectively applied by artists in places where it's most needed, instead of being blindly applied by an algorithm to the entire set of points.

* Predefined Shapes - I'm happy for addons to provide this functionality. However, I'm personally still not too fond of having this sort of thing built into Blender by default though.
Oh, and btw, if you're ever developing tools to draw circles and triangles, I'd personally like to see tools where you let the user actually draw these freehand, and then try to fit a primitive to these as appropriate. Having tried many ways of placing + sizing circles/ellipses over the years in various apps, IMO approaches such as bounding-box click-drag and center+radius click-drag are terrible ideas, as are always really difficult to control if you need to try and fit certain content inside the shape, or if exact placement is an issue.

High Profile Stuff
GPencil and VR
I'm not sure to what extent this is known (and/or can be publicised at this point), but we have reports (and confirmation - 1, 2) that Blender is currently being used by Oculus Story Studio for doing some of their VR planning work. As part of this, they are apparently testing using Grease Pencil for drawing animatics in 3D-VR (though there are some things that will need to change to really support that workflow - one way of solving the problems here would also make Grease Pencil drawing much more attractive to anyone with a NDOF controller handy to play with, as we'd be moving from "convert to 3D after drawing" to "convert to 3D as you draw"). When there's more concrete news on this front, I'll let you all know  ;)

GPencil and Siggraph Asia
And again, (shameless plug), if you aren't aware yet, my Grease Pencil paper at Siggraph Asia 2015 is now available for download from the ACM Digital Library (no logins/subscriptions will be required for access to this paper, either now or in future :)

Development News
I've been a bit busy the past few weeks with my research work, trying to sort out all the data processing/analysis stuff (Argh! Processing eye tracker data! Aarrrrgghh!) needed for an experiment I'm gearing up to start running soon. So, that's been taking up quite a bit of time in recent weeks, as well as general "life" stuff - (i.e. dentists, paperwork, etc.)

Anyways, hopefully I'll soon have time to start tying up some loose ends so that we can get the GPencil_Editing_Stage3 branch into master, for 2.77. Then, work can continue in master again, instead of needing a special branch.

Also, with the announcements that we'll be making a move to OpenGL 3.2 over the next year or so, at some point, it'll be great to start discussing with the OpenGL migration team about ways to take advantage of the new awesomeness available to push Grease Pencil stroke rendering to the next level, thus solving many of the limitations currently in place.

Closing Words
Anyways, that's all for now. I look forward to seeing what you all come up with using these tools going forward. In the meantime, enjoy! Happy Blending everyone! :D


  1. Check this crazy animations