GSOC 2013 MOARZ texpaint stuffs

Great timelapse xrg !

Psyfi I’m clearly late to this party!

Having read your proposal I must say I’m a little dubious!

I think it’s essential to be able to paint on multiple textures at once… for blending across seams…

A use case for me right now is to have a material and textures for the head and another for the body… teh curent system allows me to paint and blend both!

YES the UI is clunky. I know you’ve looked at my python addon (texture paint layers) I totally agree that it’s clunky as is now swithcing to teh uv editor and almost no-one really gets the texface implementation…

What would be good is being able to choose what you’re painting on directly in the paint UI… mudbox and mari are both good for this… and it was my hope that the texpaint addon would get things somewhat better… My design criteria were:

If the UI exposes all teh image textures on all of the materials (in any channel type) of the active object and the user can easily choose what s/he’s painting on… that will be a lot more fluid…

teh user should be able to visualise each texture and turn them on or off from within paint…

the user should be able to add new texture or layers for materials from within the paint ui…

I also think that the display options we have now are valid but not very helpful to the user to understand… but as an artist in a paint pp I need to be able to see exactly the content I;m painting (textured mode) and also teh material result for hen it’s non colour data (glsl mode) Right now these feel hidden yto me…

I’m hapy to talk further but I thought i’d throw my 2cents in…

Can we get x sym in texture paint?

Yes I’d like all the sym options we have in sculpt in texture paint (in teh 3d window)

I guess in teh 2d window it might be nice to have x /y sym options too…

Also (a request from last year’s gsoc from me!) Can we PLEASE have:

  • anchored strokes (like in sculpt mode)
  • a contrast brush (to increase/decrease)

I knwo you’ve already [proposed fill… I guess I should check your branch to see where its’ at…

What is the branch called this year?

Branch name is “soc-2013-paint.” They kept it simple this year. Symmetry and Anchored Brushes are listed as the first thing in his proposal.

It takes a bit of boldness I suppose, but there is always good ol’ undo. So it’s still more lenient than traditional media is. :evilgrin: You can’t see it in the video but I’m using Git also. So I can always revert back to prior commits if need be as well.

Thanks for the kind words ya’ll.

Michael’s layer addon is a very good thing to use, but unless you plug the resulting saved images into composite image nodes and flatten them that way, you are stuck with baking out all to a single texture. If you do any of that, you still need to reload them…

I have gotten to the point that I do as much painting without layers as possible, and just use undo - or after saving at an important point, I just reload the image to undo that mistakes I’ve made and keep painting. I am really interested in the painting along a curve that is coming :smiley: That will be a game changer in detailing very quickly. Along those lines, is that going to use an actual curve object in the 2d and 3d view, or some alternate method? I ask because if you can access a 2d/3d curve to use as a stroke, then you could then do the same for a text object maybe… don’t mind me, just imagining lol

Thanks for your work Psy-Fi. I think this is bug:

When using B&W png image, without transparency - and painting with it I get black outline. I force it to be used as transparent by enabling ‘Calculate’ option in Image sampling (btw. this option is quite important imo, and I wish it was more visible for new users).
Here is simple B&W png brush:
http://i42.tinypic.com/5l9pjl.png

Thanks again, this is the most fun gsoc imo.

Does it work if you load it into texture mask? Texture I think is technically for any kind of texture not just brushes. You can get around it by creating pure white textures with an alpha channel though:

http://www.pasteall.org/pic/show.php?id=54073

Edit: Eh, texture mask doesn’t seem to work either.

Technically true. Practically not.

I don’t know if you’ve watched many digital painters live (or via their sped-up replays on YouTube), but being able to create and merge layers during the painting process is a key feature most of them tend to use. Having to go to the textures panel, add a new layer, set it as an image, create the new image, set the mapping, match it to the same UV layer as the one it will overlay, set the blend mode, and then having to back it all whenever “merging visible layers” (a common operation in digital painting) means that “Yes, it’s possible… but no-one is ever going to go through that to use Blender that way”

Also perhaps it’s just me, but I tend not to see the textures in GLSL mode unless/until I’ve manually set it in the UV editor or am actually rendering. See the two screenshots below.



This result is correct: You get generated alpha but you also get black colour which gets mixed with the red colour, on areas where the opacity is even a little strong. As xrg noted, the correct approach is use the texture as a mask. Besides that is the very purpose of a mask, to define the shape of the brush and make tricks such as this redundant. By the way I didn’t see any artifacts if the texture was ONLY present as a brush mask.

@BTolputt GLSL is only active in textured draw mode. Also in the branch you can select “Material” mode like in cycles and get GLSL mode regardless of the GLSL setting.

Again for now GLSL shows the material result, not the texture you are painting on (unless it is set up correctly for that). Yes I know it sucks, that’s why I’m here :).

Going off on a slight tangent based on what BTolputt said…

Speaking of layer based workflows (based around diffuse, normal, spec…ect), this is just a random example to showcase how the accessibility along with the feature to paint each map on different layers in different categories, makes all the difference in the world.

Eventually I hope we can get to this point, maybe even if the painting UI is re-evaluated at at one point or another.

Did you know I’ve been bashing my head against this wall for two days trying to work that out?! I kept toggling on/off the “Textured Solid” checkbox in the Display settings (on the right) wondering why it wouldn’t work. I’d feel like a complete dill if I could see how that checkbox affects anything given the setting in the header…

Oh, I’m happy for it to stay that way. Being able to paint and see the result of the changes due to the painted texture I’m editing being the specular, bump, normal, etc instead of diffuse is exactly what I think it should be… I just couldn’t get the GLSL to show me what it should be showing me… now it does :slight_smile:

Two things about that speed painting video that bug me are :

  1. Why not set materials and vert groups from the beginning and bake the diffuse colors to have something to start from and
  2. why not use the face masking like we have in Blender to only paint on specific areas of mesh?

Not to take away from the luxury of having paint layers to work with that are easily accessed, just a niggle about the workflow there in the video.

edit: more on topic

  • Change the way texture painting image access is done. Two proposals here:1) Use two fields: One for UV layer, one for image. User specifies both
    before painting.
  • allows to paint on any image, using any uv layer
  • will forgo the ability to paint on multiple images simultaneously as is currently possible

Cold this be got around by adding a plus sign to allow more than one uv layer to be named and affected when painting? Liek a tick box that would be the enabler for the paint layers

Yeah I noticed that as well. The individual didnt like to use masking, which he easily could have in Mudbox…even to the point of hiding geometry. I was more interested in showcasing the layer workflow which can be broken down into sub sections for normal, spec and diffuse maps to name a few. Mudbox is probably the easiest app on the planet to start painting in for 3d. I never even had to read documentation or watch a tutorial to start using it after install. I know some game studios like Naughty Dog will install it just for the texturing workflow and map basing aspects alone. I just love how layers work in it.

Psy-Fi - Ok I will test it at home. But xrg said:
‘Edit: Eh, texture mask doesn’t seem to work either.’
So I guess it may not work afte all.

OK, I understand layers are very important as part of a good workflow but it’s just a matter of limited time for GSOC. My proposal is cranked full with things to do (And I just HAVE to present (most of) those things I proposed in the end). Sorry but someone else will either have to do it in parallel or you will have to wait. In the meantime there’s always mudbox. I mean those guys have to make a living too, right :p?

BTW, masking IS present in blender too (not hiding though which might be good to have admittedly). IMO having a more responsive feel when painting is an equally important and challenging problem, but this project feels a bit like cycles: First make it “feature complete” and then optimize. Enough talk, back to code. Things are getting hectic in there :slight_smile:

FWIW, Psy-Fi, whilst I bemoan the lack of layers, I don’t blame you for not adding them. What you’re doing is great and I understand completely the need for limiting scope so you can finish what you started.

Actually, as a developer, it’s kind of cool watching another code-monkey say “Nope, can’t do it, not enough time”. I’ve lost count of how often I wish the sales side of the equation would let me do the same thru-out my career :wink:

Testing the Texture Mask stuff. It seems to work decent in the 3D view, but terrible in the image editor. By the way, are we supposed to bug report to the tracker or is there another place?

A - 3D View
B - Image Editor
C - Photoshop (what it’d be nice to have, though A is adequate for painting). (Edit: Actually looks like I just had spacing too high and A gets close to this.)

http://www.pasteall.org/pic/show.php?id=54097

I have found more issues with 2d masking and I have a patch ready that should hopefully address those. Is this with space stroke or dot stroke (EDIT, ah just as expected with the spacing :slight_smile: )? Unfortunately there’s no bug tracker for branches, so we’ll have to use this thread for that :/.

I hear ya and completely agree. Focusing on the foundation first is absolutely the most important part. Additionally, layers are moot if the quality of the texturing process isnt up to speed. I think most of the layer commentary is in the hopes that its kept in mind throughout the development process, and perhaps made easier by the time its ready to toss in layers.