Twitter
 

Dan Fessler is an artist and independent game developer currently working on Chasm. He writes about art, technology, and game dev. You can follow him on twitter @DanFessler

Building off from last post's topic about Pixel Purism; how it's more important where you arrived than how you got there. I wanted to share with you a method I've been developing with my environment work on Chasm for turning Photoshop into the most powerful pixel art tool using what I'm calling "HD index painting". I've shown it to a number of people and each time the reception has been through the roof. If you're unsure what index painting is, then I recommend you read the previous blog post as it defines it as well as several other terms that we will be expanding upon here.

If you remember from last time; Index painting involves using "dirty" tools (tools which lay multiple colors at once) within a pre-defined indexed palette. Photoshop doesn't inherently allow for this behavior. If you index an image in Photoshop all of the "dirty" tools become locked or reduce their functionality to not be dirty. No more soft brushes, smudges, gradients, etc. The one way around this is to paint with dirty tools first, then index the image to either a generated palette or a pre-defined one (Kiwi has excellent tutorials on this method here). But with that method you never truly know what the end result is going to be until you index the image. A lot of what you thought would look nice when color-reduced ends up looking like a mess or gets lost entirely and requires you to spend lots of time cleaning up the image pixel-by-pixel. It's a great way to get a head-start on a composition, but still cumbersome. But what if I told you there was a way to use soft brushes, smudges, gradients, and all your favorite dirty tools, but remain within an indexed palette? It'd blow your mind right? Well here's how.

HD Index Painting


Why "HD?" The backbone of this method that makes all the magic happen is the concept of manipulating higher resolution data than the end result. Instead of painting directly with an indexed color palette, you're always painting in HD which then procedurally gets mapped to the indexed palette. For every color ramp you define your source data is 8bit allowing for a possible 256 colors, with no limit on the number of ramps you define. Typically when dealing with pixel art you'd map that to 32 colors or less. What's most important though is the indexing is non-destructive. All of the high resolution detail is retained allowing you to do things that no other index painting tool allows, essentially making this the most powerful "pure" pixel art tool in existence.

You can download the PSD used to create the following gifs HERE

So what can it do?:

Pixel-bush, AA-brush, Soft-brush


Procedural Dithering


Dither Sampling


Dither Patterns


Smudge


Gradient


AA transforms


Alpha-blending


Blend Modes


Fixed index Adjustments


Dynamic index Adjustments


Dynamic re-indexing


Setup



The first thing you'll want to do is make sure your eyedropper tool is set to sample "current and below." This is essential if you plan to paint with colors sampled from the canvas as we'll be adding a whole bunch of layers stacked on top of the paint layer which will alter the colors that you'll want to paint with. Some versions of Photoshop might not support this, in which case you might have to pick by changing the value slider.


Second thing you'll want to do is make sure you have your dither patterns defined. Dither patterns can be anything you want, so get creative. To create a new pattern, simply paint the pattern in black and white within a square (usually no larger than 16x16 pixels. Once you're done painting, select the square with the selection tool and go to EDIT > DEFINE PATTERN. Now the pattern will be available to you in your pattern list for use with the paint bucket tool. The image above shows some examples of various patterns applied to a gradient. you can download the basic dither pattern I made here.

That's pretty much all the settings you'll need to change actually.

Basic Layer Stack



This is where all the magic happens. The idea behind the method is basically a stack of adjustment layers that get clipped to a HD-paint layer. Clipping the layers ensures that the stack *only* effects the pixels of that particular paint layer rather than the whole document. To clip/unclip layers, hold down the ALT or OPTION key directly in between two layers in the layers palette. You'll see your cursor change. Just left click and you're done! The following describes the layers in clipping order.

  • Paint layer
    This is the layer you are actually painting on when you pixel. All other layers in the process get clipped to this one. You paint in 24bit B&W on this layer. Any color will be stripped out and replaced with a palette that you later define. In pixel-art terms, the best way to think about this is you're painting with indexes of a color ramp, not with actual colors. Pure black is the first index, Pure white is the last index, and everything in-between gets rounded to the nearest index. It's this ability to paint in-between indexes that is the key to making this process so powerful and allows you to do things no other pixel art program can.


  • Dither layer (optional) + mask (optional)

    This layer is filled with a dither pattern representing various percentages of dither superimposed. To fill a layer with a pattern, select the paint bucket tool and change it's fill setting to "Pattern." Select the dither pattern you defined earlier from the list - or click on the gear icon to load a new one. Simply fill a new layer with it. Adjust the layer opacity until you get the desired dither amount. By default you can keep the layer set to "normal" blend mode, but sometimes setting it to "Overlay" provides better results. Optionally you can use a layer mask to paint in exactly where you want dither and how much.


  • B&W adjustment layer
    This layer simply ensures that the paint layers are pure black and white. Even if you're paint with pure black and white, photoshop will introduce small amounts of color to make gradients appear smoother.


  • Posterize adjustment layer
    This is where you define exactly how many colors you want in your palette row. This is defined separately from the colors themselves allowing you to add more or remove indexes later to your palette without destroying the integrity of your painting.


  • Gradient Map adjustment layer
    This is where you actually define the colors that get mapped to your previously-defined indexes. Instead of defining individual colors, you define a gradient range which allows you to add or remove indexes from your palette without destroying the integrity of your painting. You can get as elaborate as you like with this gradient. Indexes will be evenly distributed along the gradient.



Multiple color ramps / Transparency
One downside to this method is it's a bit cumbersome when working with multiple color ramps. Unlike in other pixel art tools, You can't just start painting with a different ramp on the same layer, instead you have to create an entirely new layer stack and paint there. This means you need to be conscious of which color should be on top of the other. Additionally working with transparency is a bit of concern. When posterizing Photoshop doesn't threshold the alpha channel. This means that if you're using a soft brush on top of a transparent paint layer (necessary if you want to have multiple color ramps), then the result will be a non-indexed blend. To solve this, the best practice is to define the silhouette of what you're painting with the pixel brush first, then lock the alpha channel of the layer using the alpha-lock feature in the layer palette. This will ensure that when using soft-brushes it will only paint on top of the opaque pixels.

Advanced Layer Setup
This isn't the only way of doing things either! Try adding in additional paint layers if you dont want to commit to a new idea. Try adding adjustment layers in various parts of the stack. Depending on where you place it, it will have vastly different effects. If you place one right after your paint layers you'll be making a "dynamic index adjustment", but if you place one in-between two duplicated posterize layers you'll be making a "fixed index adjustment." Play around and have fun!

Examples:


I'll leave you with a few examples of images I created with this method on Chasm. Unfortunately most of the work I've done with this method is still not public.








Take-Aways:

Pros:

  • Non-destructive: By keeping all the steps as separate adjustment layers everything becomes non-committal and non-destructive. Color-count, dithering, and palette can all be changed on the fly without affecting any other component – something no other program can achieve.

  • Always viewed as indexed: Unlike using a color reduction method, cleanup is done while you paint, not after. This allows you to always know what you're doing and remain in control of the end result on a per-pixel level.

  • Faster and more efficient: Having access to more tools simply allows you to get to your final piece faster. Making changes that would normally take hours takes mere seconds.

  • Large scale illustrations: This method tends to shine best when working on fairly monotone pieces – or a piece with a few straight ramps – on larger canvases. Soft brushes and dirty tools are only really useful when you have the canvas space to appreciate them



Cons:

  • non-linear-color ramps: Due to the nature of this method If you intend to have color ramps that intersect and efficiently reuses colors between themselves it would be impossible to achieve. You would likely need to flatten the layer stack and optimize the palette afterwards.

  • Multiple color-ramps: Each ramp has to be a completely separate layer stack. You can't color sample between ramps, instead you have to switch to a different layer stack to begin painting with that palette. If you have a lot of ramps, this can get a bit cumbersome.

  • Transparency: Have to be careful with how you deal with transparency: Using soft-brushes works perfect so long as you're not painting on transparent pixels.

  • Smaller scaled pieces: If you're working small, chances are you're going to be sticking to the pixel brush and paint fairly traditionally. This method tends to get in your way more than aid you at these scales and is probably best done the old fashioned way.



Conclusion:

By far the most important thing I need to stress here is that this ISN'T end-all be-all solution for creating pixel art. It is simply a tool like any other. Sometimes I use it and sometimes I choose not to depending on the task at hand. It will not make you a better pixel artist, it will only make you a more efficient one as the pixel-level decisions that great pixel artists make can't be taught to a computer. With that said, these tools can drastically increase your work efficiency. Tasks that used to take hours now takes only minutes allowing you to express yourself more freely and get to your final composition faster.

I hope this tutorial will be as helpful to you as it has been for me. Let me know your thoughts and feel free to ask me any questions. There's a lot more that I haven't covered on this topic, but the post was getting quite long as it is.
Dan Fessler April 12 2014 0 Comments
 
comments powered by Disqus