aboutsummaryrefslogtreecommitdiff
path: root/docs/posts/pixel_art_in_GIMP
diff options
context:
space:
mode:
Diffstat (limited to 'docs/posts/pixel_art_in_GIMP')
-rw-r--r--docs/posts/pixel_art_in_GIMP/index.html197
1 files changed, 64 insertions, 133 deletions
diff --git a/docs/posts/pixel_art_in_GIMP/index.html b/docs/posts/pixel_art_in_GIMP/index.html
index 5caa446..7bd1eed 100644
--- a/docs/posts/pixel_art_in_GIMP/index.html
+++ b/docs/posts/pixel_art_in_GIMP/index.html
@@ -37,146 +37,77 @@
37 Pixel Art In GIMP 37 Pixel Art In GIMP
38 </h1> 38 </h1>
39 <div class="post-text"> 39 <div class="post-text">
40 <p>I&#39;ve always been an admirer of pixel art, because of it&#8217;s 40 <!DOCTYPE html>
41simplicity and it&#39;s resemblance to bitmap font design. 41<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
42Recently, I decided to take the dive and make some art of my 42<head>
43own.</p> 43 <meta charset="utf-8" />
44 44 <meta name="generator" content="pandoc" />
45<p>I used GIMP because I am fairly familiar with it. Aseprite 45 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
46seems to be the editor of choice for animated pixel art 46 <title>pixel_art_in_GIMP</title>
47though.</p> 47 <style>
48 48 code{white-space: pre-wrap;}
49<h3 id="Setting%20up%20the%20canvas">Setting up the canvas</h3> 49 span.smallcaps{font-variant: small-caps;}
50 50 span.underline{text-decoration: underline;}
51<p>Picking a canvas size is daunting. Too small, and you won&#8217;t 51 div.column{display: inline-block; vertical-align: top; width: 50%;}
52be able to fit in enough detail to make a legible piece. Too 52 div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
53big and you&#39;ve got too many pixels to work with!</p> 53 ul.task-list{list-style: none;}
54 54 </style>
55<p>I would suggest starting out with anywhere between 100x100 55 <!--[if lt IE 9]>
56and 200x200. <a href="https://u.peppe.rs/u9.png">Here&#8217;s</a> a sample 56 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
57configuration. </p> 57 <![endif]-->
58 58</head>
59<p>Sometimes I use a 10x10 grid, <code>View &#62; Show Grid</code> and <code>Edit &#62; 59<body>
60Preferences &#62; Default Grid &#62; Spacing</code>, but that can get 60<p>I’ve always been an admirer of pixel art, because of it’s simplicity and it’s resemblance to bitmap font design. Recently, I decided to take the dive and make some art of my own.</p>
61jarring, so I throw down a couple of guides, drag right or 61<p>I used GIMP because I am fairly familiar with it. Aseprite seems to be the editor of choice for animated pixel art though.</p>
62down from the left or top gutters for vertical and 62<h3 id="setting-up-the-canvas">Setting up the canvas</h3>
63horizontal guides respectively.</p> 63<p>Picking a canvas size is daunting. Too small, and you won’t be able to fit in enough detail to make a legible piece. Too big and you’ve got too many pixels to work with!</p>
64 64<p>I would suggest starting out with anywhere between 100x100 and 200x200. <a href="https://u.peppe.rs/u9.png">Here’s</a> a sample configuration.</p>
65<h3 id="Choosing%20a%20Brush">Choosing a Brush</h3> 65<p>Sometimes I use a 10x10 grid, <code>View &gt; Show Grid</code> and <code>Edit &gt; Preferences &gt; Default Grid &gt; Spacing</code>, but that can get jarring, so I throw down a couple of guides, drag right or down from the left or top gutters for vertical and horizontal guides respectively.</p>
66 66<h3 id="choosing-a-brush">Choosing a Brush</h3>
67<p>The most important part of our setup is the brush. Use the 67<p>The most important part of our setup is the brush. Use the Pencil Tool (<code>n</code> on the keyboard) for hard edge drawings. Here’s a small comparison if you don’t know the difference between a hard edge and a soft edge:</p>
68Pencil Tool (<code>n</code> on the keyboard) for hard edge drawings. 68<figure>
69Here&#39;s a small comparison if you don&#39;t know the difference 69<img src="https://u.peppe.rs/kz.png" alt="" /><figcaption>Hard edge vs Soft Edge</figcaption>
70between a hard edge and a soft edge:</p> 70</figure>
71 71<p>I turn the size down all the way to 1 (<code>[</code> on the keyboard). Set <code>Dynamics</code> off. <a href="https://u.peppe.rs/Fs.png">Here’s</a> a sample brush configuration.</p>
72<p><img src="https://u.peppe.rs/kz.png" alt="hard edge vs soft edge" /></p> 72<h3 id="laying-down-the-pixels">Laying down the pixels!</h3>
73 73<p>With the boring stuff out of the way, we can start with our piece. I usually follow a three step process:</p>
74<p>I turn the size down all the way to 1 (<code>[</code> on the keyboard).
75Set <code>Dynamics</code> off. <a href="https://u.peppe.rs/Fs.png">Here&#8217;s</a> a
76sample brush configuration.</p>
77
78<h3 id="Laying%20down%20the%20pixels!">Laying down the pixels!</h3>
79
80<p>With the boring stuff out of the way, we can start with our
81piece. I usually follow a three step process:</p>
82
83<ul> 74<ul>
84<li>draw a rough outline</li> 75<li>draw a rough outline</li>
85<li>fill in the shadows</li> 76<li>fill in the shadows</li>
86<li>add highlights</li> 77<li>add highlights</li>
87</ul> 78</ul>
88 79<p>But this process is better explained with an example: an onigiri. Let us start off with a 100x100 canvas.</p>
89<p>But this process is better explained with an example: an 80<h4 id="drawing-the-outline">Drawing the outline</h4>
90onigiri. Let us start off with a 100x100 canvas.</p> 81<p>For the most part, our figure will be symmetric. If you are on GIMP 2.10+, you can take advantage of the Symmetry Painting feature. Go ahead and enable vertical symmetry, <code>Window &gt; Dockable Dialogs &gt; Symmetry Painting</code> and <code>Symmetry Painting &gt; Symmetry &gt; Mirror &gt; Vertical</code>.</p>
91 82<p>If you are running an older version of GIMP, draw in the left side, duplicate the layer, flip it horizontally, and merge it with the original.</p>
92<h4 id="Drawing%20the%20outline">Drawing the outline</h4>
93
94<p>For the most part, our figure will be symmetric. If you are
95on GIMP 2.10+, you can take advantage of the Symmetry
96Painting feature. Go ahead and enable vertical symmetry,
97<code>Window &#62; Dockable Dialogs &#62; Symmetry Painting</code> and
98<code>Symmetry Painting &#62; Symmetry &#62; Mirror &#62; Vertical</code>. </p>
99
100<p>If you are running an older version of GIMP, draw in the
101left side, duplicate the layer, flip it horizontally, and
102merge it with the original.</p>
103
104<p>Your outline might look something like this:</p> 83<p>Your outline might look something like this:</p>
105 84<p><img src="https://u.peppe.rs/mn.png" /></p>
106<p><img src="https://u.peppe.rs/mn.png" alt="rice_outline" /></p> 85<p>Go ahead and fill it in with the fill tool (<code>Shift + b</code> on the keyboard), add in some seaweed as well, preferably on a different layer. You can toggle symmetry on and off to save yourself some time.</p>
107 86<p><img src="https://u.peppe.rs/xu.png" /></p>
108<p>Go ahead and fill it in with the fill tool (<code>Shift + b</code> on 87<h4 id="shadows">Shadows</h4>
109the keyboard), add in some seaweed as well, preferably on a 88<p>For now, let us focus on the shadows on the object itself, we’ll come back to the shadows cast by the object on the surface later.</p>
110different layer. You can toggle symmetry on and off to save 89<p>Shadows on any surface always follow the shape of the surface. A spherical onigiri would have a circular shadow:</p>
111yourself some time.</p> 90<p><img src="https://u.peppe.rs/FU.png" /></p>
112
113<p><img src="https://u.peppe.rs/xu.png" alt="with_seaweed" /></p>
114
115<h4 id="Shadows">Shadows</h4>
116
117<p>For now, let us focus on the shadows on the object itself,
118we&#39;ll come back to the shadows cast by the object on the
119surface later.</p>
120
121<p>Shadows on any surface always follow the shape of the
122surface. A spherical onigiri would have a circular shadow:</p>
123
124<p><img src="https://u.peppe.rs/FU.png" alt="riceball_shadow" /></p>
125
126<p>A couple of noticeable changes:</p> 91<p>A couple of noticeable changes:</p>
127 92<p><strong>Layers</strong>: The layer containing the seaweed has been hidden.<br />
128<p><strong>Layers</strong>: The layer containing the seaweed has been hidden.<br/> 93<strong>Color</strong>: The color of the shadow is just a slightly lighter version of the original object (reduce the Value on the HSV scale).<br />
129<strong>Color</strong>: The color of the shadow is just a slightly 94<strong>Area</strong>: The shadow does not go all the way (notice the bottom edges).</p>
130lighter version of the original object (reduce the Value on 95<p>The shadow does not go all the way because we will be filling in that area with another, darker shadow! An image might explain better:</p>
131the HSV scale).<br/> 96<p><img src="https://u.peppe.rs/Br.png" /></p>
132<strong>Area</strong>: The shadow does not go all the way (notice the bottom 97<p>To emulate soft lights, reduce the value by 2 to 3 points every iteration. Notice how area <code>1</code> is much larger than area <code>4</code>. This is because an onigiri resembles a bottom heavy oblate spheroid, a sphere that is slightly fatter around the lower bottom, and areas <code>1</code> and <code>2</code> catch more light than areas <code>3</code> and <code>4</code>.</p>
133edges). </p> 98<p>Do the same with the seaweed. The seaweed, being a smaller, flatter object, doesn’t cast much of a shadow, so stop with 1 or 2 iterations of the gradient:</p>
134 99<p><img src="https://u.peppe.rs/T3.png" /></p>
135<p>The shadow does not go all the way because we will be 100<p>We’re getting there!</p>
136filling in that area with another, darker shadow! An image 101<h4 id="highlights">Highlights</h4>
137might explain better:</p> 102<p>This step handles the details on the strongly illuminated portions of the object. Seaweed is a bit glossy, lighten the edges to make it seem shiny. The rice is not as shiny, but it does form an uneven surface. Add in some shadows to promote the idea of rice grains. Here is the finished result:</p>
138 103<p><img src="https://u.peppe.rs/VE.png" /></p>
139<p><img src="https://u.peppe.rs/Br.png" alt="shadow_all" /></p> 104<h3 id="finishing-touches">Finishing Touches</h3>
140 105<p>Some color correction and <code>a e s t h e t i c</code> Japanese text later, our piece is complete!</p>
141<p>To emulate soft lights, reduce the value by 2 to 3 points 106<p><img src="https://u.peppe.rs/cn.png" /></p>
142every iteration. Notice how area <code>1</code> is much larger than 107<p>Hold on, why is it so tiny? Well, that’s because our canvas was 100x100, head over to <code>Image &gt; Scale Image</code>, set <code>Quality &gt; Interpolation</code> to <code>None</code> and scale it up to 700x700, et voilà!</p>
143area <code>4</code>. This is because an onigiri resembles a bottom 108<p><img src="https://u.peppe.rs/CH.png" /></p>
144heavy oblate spheroid, a sphere that is slightly fatter 109</body>
145around the lower bottom, and areas <code>1</code> and <code>2</code> catch more 110</html>
146light than areas <code>3</code> and <code>4</code>.</p>
147
148<p>Do the same with the seaweed. The seaweed, being a smaller,
149flatter object, doesn&#39;t cast much of a shadow, so stop with
1501 or 2 iterations of the gradient:</p>
151
152<p><img src="https://u.peppe.rs/T3.png" alt="shadow_weed" /></p>
153
154<p>We&#39;re getting there!</p>
155
156<h4 id="Highlights">Highlights</h4>
157
158<p>This step handles the details on the strongly illuminated
159portions of the object. Seaweed is a bit glossy, lighten the
160edges to make it seem shiny. The rice is not as shiny, but
161it does form an uneven surface. Add in some shadows to
162promote the idea of rice grains. Here is the finished
163result:</p>
164
165<p><img src="https://u.peppe.rs/VE.png" alt="highlights" /></p>
166
167<h3 id="Finishing%20Touches">Finishing Touches</h3>
168
169<p>Some color correction and <code>a e s t h e t i c</code> Japanese text
170later, our piece is complete!</p>
171
172<p><img src="https://u.peppe.rs/cn.png" alt="small_onigiri" /></p>
173
174<p>Hold on, why is it so tiny? Well, that&#39;s because our canvas
175was 100x100, head over to <code>Image &#62; Scale Image</code>, set
176<code>Quality &#62; Interpolation</code> to <code>None</code> and scale it up to
177700x700, et voilà!</p>
178
179<p><img src="https://u.peppe.rs/CH.png" alt="big_onigiri" /></p>
180 111
181 </div> 112 </div>
182 113