Feature Request/Discussion : Texture painting with real layers (PSD,ORA,XCF,KRA ?)

Piotr, with all due respect. There is a very simple thing that Open Raster has over PSD and that is that it is a simple format. PSD is absolutely horrendous, and terribly documented, and each attempt to support it is the exact same story as Blender and FBX. Outside of the niceness of open formats, I think the prime reason to place bets on ora is that I just don’t think there are blender coders out there who want to deal with a second FBX. I would find it very sad if this proposal topples over because a blender coder looks at the list, sees PSD mentioned and goes ‘oh hell no’ and promptly rejects it. Especially when the prime use-case of the file-format is ‘save out layered file in a way that outside programs can read’.

There are other battles to win than having native ORA support in photoshop.

It might sound grim, but:

SVG took many years to get where it is and only took off after it became a W3C standard.

ODF did have hugely important backers: the IEEE, the ISO and the IEC. The decision to adopt it as a standard was largely political, along with the adoption of Linux by some branches of government in Europe.

And MKV had a hugely important vehicle in the form of pirated video content. Even with that, it’s probably been 15 years since I saw the first MKV files.

@Therahedwig: We’re talking about getting Adobe to care about ORA. They’re not going to adopt a competing format simply because it’s nice while PSD is getting them all the nice benefits of vendor lock-in. Abandon all thoughts of not caring about Photoshop, that just won’t fly in any professional setting.

Are we? I thought we were talking about Blender?

Please don’t play dumb. We are talking about building texture layer support in Blender in such a way that it allows for cross-operability with leading 2d editors. If that means using ORA then that also means getting Photoshop to support it.

It’s not like I have a better alternative though.

Piotr > It took time and effort but the result it still there, those open format became important and I don’t see why Ora couldn’t follow the same path. Anyway, I doubt we’re going to put a lot of efforts and money into developing such feature in Blender just to see mitigate, immediate, results with PSD, especially not considering that we’re right now all thinking about Blender 2.8.

It’s a time where we gather and think about the future and evolution and what could it be. PSD is certainly important today because the industry supports it, because most users use PS, but it’s certainly not a wise choice for us and Blender coders for the long term. There’s no reason Ora will not become the next PSD, even if it takes a lot of time.

Plus, I don’t see why someone (even someone not related to Blender) couldn’t code an external Ora to PSD converter to allow PS users to use this feature.

I feel like if we use PSD for this feature, we would condemn every other FOSS painting apps to keep struggling with their PSD supports whereas if we use Ora, we could start inertia towards an open format. Blender is starting to gain weight and importance, and it could be wise to use it for the greater good.

Therahedwig > We’re talking about Blender but we’re also talking about a shared workflow with an external 2D app. That’s a key point behind the support of multi-layered image format in Blender, so in a way yes we’re talking about Adobe as well.

Core us, thanks for the insight. Zero brush is great but it is a hog on my machine’s ram and cou

No, we are talking two different problems:

Saying: “Blender devs should not consider implementing anything until a proper pipeline with photoshop can be found.”

And: “It is very unlikely for Blender devs to implement PSD because it is a horrible confusing file format, and that ORA would be better.”

These are different requirements despite their interaction, and for me it is a leap of logic to say that they are the same problem.

I am sorry if I am pedantic, but I don’t like being called ‘playing dumb’ just because I am discussing a different problem.

Maybe there’s a way to hard-code most of the multilayer image system in Blender and keep everything that has to deal with file format asides with python and scripts. That way, implementing support of PSD and/or ORA is not so big of deal for someone who wants to code and maintain it ? We could even have both file format supported. I’m probably dreaming though.

Alright, I fixed the memory leaks! But there is a crash now (nothing brutal, can be fixed somewhat easily).

Now, as far as this little project is going, I am willing to spend some time rewriting the patch (I don’t like the approach of some features there) and port it to a state where it could be merged in master, and I admit some i/o needs to be implemented. Previously the patch would just save the layers into the .blend file, and that’s a no-no from me. I’ll implement OpenRaster, because:

  1. it’s open source, and I have no reason to help closed source format
  2. it’s dead easy; and I have no will to waste my time figuring out a closed source format

Of course, if/when this lands in master, someone is willing to implement PSD i/o, then I guess PSD support will come, but it won’t be from me.

That’s great KWD!! Thanks! Count on me if you need testing. I’m more than willing to help writing user doc later on as well

I think Ora is a good starting point and I’m sure we will figure out a way to support PS sooner or later.

Whoa! Great!

And of course, if KWD’s patch gets into master, with ora support, it’ll mean there’s some good example code of how to make it load and save from a layered file, which means that any future contributor implementing psd can focus on the psd parts.

I really hope this comes to something KWD. I wanted to do some texture painting this month and was truly wishing that the where proper layers for painting.

Yeah, if we could get a format that would be great. I’ve been working on an addon for texture painting in layers, with alpha masks and such, trying to mimic photoshop. But its kinda pointless without a way to output.

it would be nice to somehow connect this layer system with nodes, so we could make more complicated stuff like for example adding gradients maps, some color, levels adjustments etc.

This is an interesting topic to me, and I tried reading everything though there is a lot here already.

Or vs PSD: my two cents, work on the ORA first to get the workflow designed and operational, then worry about PSD support after. I read here that 3DCoat flattens the effects before import/export. If the layers are preserved, then the effects should be turned off before import so that like music, you tune the effect to the final result.

Substance Painter - yeah, that isn’t supported in a PSD at all, but if you write a format that works with Substance, including hypresomniac’s PBR node trees, then that would be cool.

I myself only use the minimum of layers when painting, and I am hoping if this comes about that the layers are manageable from both 2d and 3d editors in blender. We do already have a way to create and store mask objects in the 2d editor, and the next step of getting the fill brush to respect that mask in the 3ditor would be key. After that, get the same curve mask stored in 2d available to the 3d view(I suppose through UV projection from the editor to the mesh) and get the fill brush there to respect that boundary. Then get that curve spline as a matching, editable object in the 3d view.

That would be cool. I suppose this masking is like the Shapes masking n photoshop. The layer masking in PS is more like the stencil layers in our system, using raster.

I’ll be happy to donate to this if it becomes a formal project in the future.

With texture nodes being re-worked on by Lukas recently… it would make sense from a design pov.

Keep in mind such a node system would also need to be readable and editable within the 2d editors we want this to work with. They all use a flat stack, unfortunately.

What is a flat stack ? :o

He means a big ass node-graph vs a stack of layers on top of each other. The latter would be flat-stack.

I agree that PSD workflow is important, but there is a broader use case for ORA -> PSD import, (i think Krita or Gimp could open the ORA and export the PSD) so support for that step doesn’t have to come exclusively from blender.