Page MenuHome

Grease pencil. Stroke color do not match to object`s color
Closed, ResolvedPublic


System Information
Operating system: Windows-8.1-6.3.9600-SP0 64 Bits
Graphics card: GeForce GTX 660 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 461.40

Blender Version
Broken: since 2.83.9 version: 2.93.0 Alpha, branch: master, commit date: 2021-04-10 16:36, hash: rBed5507de8a25

Short description of error
When I set full saturation for object color, GP-stroke switches to pale tone.

Event Timeline

Falk David (filedescriptor) changed the task status from Needs Triage to Confirmed.Apr 12 2021, 10:17 AM
Falk David (filedescriptor) claimed this task.

I can confirm this in the latest 2.93.0 Alpha, branch: master, commit date: 2021-04-12 07:18, hash: rB175c1382da4d. Will take a look.

Yes, confirmed...look if the problem is the Linear->sRGB conversion

@Vyacheslav (hitrpr) The color shift was done intentionally (to make strokes and fills visually differentiable). The fix attached makes it so that if the Lighting in the Viewport Settings is set to "Flat", all the strokes and fills will be set to the same color.

@Falk David (filedescriptor) umm…
I would prefer to select technical color manually to see all better.
Can`t agree with such intensions. Similar problem appears with wireframes: I can`t make em exact same color, as I set. They always darker or lighter…
It produces many problems with complex scenes. @Paul Kotelevets (1D_Inc) can explain it better and already did it.

And flat mode wouldn`t help much. I use annotation as BSurfaces guide in work with different colors of surface. And I need to see exact same technical/object color as I choose.
This color shift limits me in color selection.

Please take in account, that ppl can use custom themes, custom viewport backgroungs, and it is important to get what you select, to achieve desirable contrast

@Vyacheslav (hitrpr) And why is it an issue to use the material color and not the object color? It seems to me like the object color is not really what you are looking for.

@Vyacheslav (hitrpr) And why is it an issue to use the material color and not the object color? It seems to me like the object color is not really what you are looking for.

Because for material color you need to set materials for GP and for objects for example.
I do retopo now with GP. So no reason to create empty bunch of meterials just for viewport-colors.

There can be objects with different meterial colors (few per object), they can have same object colors. Material color is more for fast color preview, feling scene in Workbench. More artistical.
Object color is technial. Both gives ability to switch between one and few colors per object.

Also color changes hardly between wireframe and solid mode (relative issue, after «intended change»)
I recorded video with explanation, if it is not so obvious.

With the change proposed by @Falk David (filedescriptor) you just can set as Flat and you get what you want. Grease Pencil main focus is 2D animation, so get the strokes and fills with a slightly different color is very good. Maybe, for you user case can be annoying, but we cannot set something by default that is against general 2D animation.

Vyacheslav (hitrpr) added a comment.EditedApr 12 2021, 6:45 PM

@Antonio Vazquez (antoniov)

  1. Here 2 strokes with very different colors. And they are almost similar in workbench.

  1. Object color is technical stuff. For animation, when you use a lot of colors and layers, you can use material colors.
  1. I can`t understand why color should jump to desaturated, esp for Workbench, not for render. Where I can read about usecases? When I want to have pale color, I can set it. When I want to use saturated… Now I can`t.
  1. Flat mode in viewport will make objects flat too, so I can`t read surface anymore.

Why do I use GP for retopo? It is cool and easy to edit (sculpt tools), and annotation isn`t.

So I agree it is animators` tool first. But can`t understand the reason to spoil workbench color.

It looks like this issue is about general 2d animation vs general consistency.
Technicaly, reasons to provide the difference between stroke and fill are inderstandable, but realization is rough because is illogical and unexpected.
There are a lot of things in Blender that can be technically solved as local overrides, but following this way is not the best way to design software, because harms general consistency.

Maybe adding a preference that controls this effect (for example, its range) can help to solve this issue and also provide GP color shift effect flexibility as well.

The gpencil team has been discussing about this problem and we have decide to swap the coloring change to fill, so in you case the stroke will have the same color you select. Also, we keep the patch done by @Falk David (filedescriptor) to set flat color.

@Antonio Vazquez (antoniov) Thanks for sharing your time for this :)

swap the coloring change to fill, so in you case the stroke will have the same color you select.

Well, still pretty far from being clean solution (because is a local override), but with a smaller critical area, because stroke is used more often than fill.

@Paul Kotelevets (1D_Inc) We are not closed to add a user prefs setting for this, but we prefer to be very conservative before adding new options to avoid populating too much the user preferences screen. If we see in the future this is requested for more users, we can consider adding it.

Nice strategy, pretty safe.
Wise solution, because adding preferences increase software fragmentation.
Thank you.