Introduction
Part 1: Introduction
Part 2: Rock surface
Bump tool reference
Most of the diffuse textures in games are based on photo material. Digital photos have the necessary resolution and capture the general look of a surface, but that’s about it. We have no information about glossiness, surface height or transparency, properties which a game artist often needs.
There are ways to capture such properties (link, link, link) but they are slow and laborious methods.
So a faster way is preferred, where we can get believable results with minimal effort. We can do that by deriving the necessary texture maps from the diffuse texture.
Required software
I’ll be using my “BumpTool” filter made for FilterForge. The filter can be downloaded for free, although FilterForge is a commercial product.
However, this filter doesn’t do anything you can’t do manually. It just makes the procedure faster and more convenient. I explain each parameter of the filter on this page, so you can see the idea and reproduce the steps.
FilterForge is compatible with many 2D applications, and also has a standalone version. There is a 30 day fully functional trial.
I use PaintShopPro X2, so the screenshots are from that, but there is nothing you can’t do in Photoshop or GIMP.
The base idea
On the left is the standard test image, I’ll use that to illustrate the base idea.
So we have a color image here. When we, humans look at it, we see pixels of different colors. Our brain recognizes groups of pixels as patterns, after that it reconstructs more complex shapes and finally we realize that there is a face with eyes, a hat, etc. Based on our life long series of experiences, we can make an educated guess about these recognized objects. We can tell that her shoulder is curved, the feather boa is fluffy and the mirror is further away from our point of view. So much information which could help us reconstructing those objects and surfaces.
What we want is to transfer such information to the computer in an efficient way: we want a method which strikes a balance between precision, speed and flexibility.
The method described in this article tries to use data already present in the image. It is a kind of guided extraction of information, which is usually faster and more flexible than creating new data. (By painting a bump map for example.)
While recognition of patterns and higher level entities are a very difficult task for computers, they have one advantage we can exploit. For them, each color is just a bunch of numbers, describing that color in a particular way. The meaning of those numbers are defined in the related color space. You are probably familiar with the RGB color space where three numbers represent how much red, green or blue is present in the final color. There are CMYK, HSL, and a few others. In each of them the numbers mean different aspects of the color.
For example:
The first image is the red component from RGB. Notice how the effect of the shading on the skin is suppressed, producing a much more homogeneous area.
The second image is the inverted saturation channel (where more saturation makes a brighter pixel). A certain type of noise gets accented, especially in dark areas. The small horizontal line error at the top right corner is also more apparent, while it is barely visible in the original image.
Next is the Cyan component, which clearly separates the feather boa from the rest of the image.
So it’s all just the matter of picking the proper channels, processing and combining them until we have something which describes a surface property not directly captured by the image. Such property can be bump information, glossiness amount or just a grayscale image used to simulate grime on a dirty window.
Part 1: Introduction
Part 2: Rock surface
Bump tool reference