Oddziel alfę

Czasami, szczególnie w obszarze tworzenia gier, artysta musi popracować nad kanałem alfa tekstury niezależnie. Aby wesprzeć go w tej pracy, Krita ma daje możliwość zwaną Oddziel alfę. Umożliwia oddzielenie kanału alfa od warstwy malowania do osobnej Maska przezroczystości. Artysta może pracować na masce przezroczystości w odosobnionym środowisku i scalić ją z powrotem po ukończeniu nad nią pracy.

Jak pracować z kanałem alfa warstwy

  1. mouseright na warstwie malowania w doku warstw.

  2. Wybierz Oddziel alfę ‣ Alfa na maskę.

  3. Użyj swojego ulubionego narzędzia malowania do malowania na masce przezroczystości. Czarny maluje przezroczystość, a biały nieprzezroczystość. Szare wartości malują pół-przezroczystość.

  4. Jeśli chcesz oddzielić kanał alfa, zmień na tryb oddzielony poprzez mouseright + Oddziel warstwę (lub skrót Alt + mouseleft).

  5. Po ukończeniu zmian na masce przezroczystości, mouseright na niej i wybierz Oddziel alfę ‣ Zapisz jako alfę.

Jak zapisać teksturę PNG i zachować wartości barwy na w pełni przezroczystych obszarach

Normally, when saving an image to a file, all fully transparent areas of the image are filled with black color. It happens because when compositing the layers of the image, Krita drop color data of fully transparent pixels for efficiency reason. To avoid this of color data loss you can either avoid compositing of the image i.e. limit image to only one layer without any masks or effects, or use the following method:

  1. mouseright na warstwie w doku warstw.

  2. Wybierz Oddziel alfę ‣ Alfa na maskę.

  3. mouseright na utworzonej masce i wybierz Oddziel alfę ‣ Zapisz scalone….

Color channel values in transparent areas

Krita treats all color channel values in fully transparent pixels as undefined. Effectively, it means that Krita will try to skip writing to (or reading from) a fully transparent pixel, unless it is really needed or explicitly requested. That is done for optimization purposes and allows Krita to speed up compositing the image by a lot.

Example 1: erasing pixels on the image

When erasing pixels with an eraser brush or when clearing a selection with Edit ‣ Clear action, the color data is not actually cleared. It is only the alpha channel that is zeroed, but color channels are kept intact. You can see it yourself if you try to apply Split Alpha ‣ Alpha into Mask on a layer after erasing with an eraser brush on it.

To actually clear the color channels of transparent areas you need to apply a Reset Transparent Filter on the image. It will zero-out all color channels of fully transparent pixels.

Krita also has a special Propagate Colors Filter. It fills the fully transparent areas with neighboring colors instead of just zeroing them out, which might be useful in some workflows.

Example 2: compositing layers with color data inside fully transparent areas

If you have multiple layers, which have any color data inside their fully transparent areas, the result of their merge will not include this color data. The resulting pixels will be just zeroed out. Obviously, you cannot blend two pixels with zero alpha, because you would have to divide by zero for that.

For most workflows it just means that you should use Split Alpha ‣ Save Merged… action to properly save the result of this split alpha work. When exporting the result via File ‣ Export…, a compositing operation may (or may not) happen, clearing out the transparent areas.