[Bf-committers] GSoC 2018: Layer Painting Proposal

Kévin Dietrich kevin.dietrich at mailoo.org
Thu Mar 22 16:40:28 CET 2018

Le 2018-03-18 16:47, Cheryl Chen a écrit :

> Hello,
> I'm Cheryl, and I'm interested in improving Blender's current texture paint
> system through the GSoC project on layer painting. I've finished the first
> draft of my proposal, and I'd really appreciate any feedback on it,
> particularly on whether the scope of the project seems reasonable, and if
> there are any other things I should consider.
> Here is the link to the doc: https://docs.google.com/document/d/
> 1MlZnedwL738OmMK1IAi4veO-KDsqefNBkpfgrUR757M/edit?usp=sharing
> <https://docs.google.com/document/d/1MlZnedwL738OmMK1IAi4veO-KDsqefNBkpfgrUR757M/edit?usp=sharing>
> Thank you for your time!
> Best,
> Cheryl Chen
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> https://lists.blender.org/mailman/listinfo/bf-committers

Hi Cheryl, 

I used to worked on this very feature
(https://developer.blender.org/D1135) so I can give you some quick

For GSOC, your plan ('Minimum Viable Project') seems feasable.
Implementing a layer system is quite straightforward as the features
working on an image buffer will work as well on a layer buffer. So there
isn't much to implement apart from the logic of managing the layers
(adding, removing, blending, hiding, selecting current, etc...). For
example in the painting/brush code, all you have to do to support layers
is substitute the image buffer with the currently selected layer's

The greatest issue with such a feature I found was rendering speed.
Every time there is brush stroke, we have to compute the final image
(merge/blend all the layers) to be able to display it, and we can't
really do that on the GPU (through OpenGL). So the more layers you have,
the slower it gets. I think the only way to properly support such
feature would be to have a tiled image buffer in Blender (something easy
built on top of ImBuf could work), and then the paint system would need
to work with the tiles in mind such that only the tiles that have
changed are merged/blended for display. 

That's it from me at the moment, 


More information about the Bf-committers mailing list