Welcome to the Soartex forums!

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Welcome to the Soartex Forums! Consider signing up to get involved!

Tutorial The Technical Guide to Texturing

Discussion in 'Tutorials' started by Shoeboxam, May 10, 2014.

  1. Shoeboxam

    Shoeboxam Administrator/ Invictus Staff Member

    Mighty un-organized tutorial on everything I know that seems relevant to texturing. Will update and flesh this out more as I go.

    ~~~~~~~~
    Numeral System
    Numbers can be in any base or radix. I've listed the most common bases below:

    Decimal notation- Latin Deca-
    "base ten" (0 through 9)
    This is what you're familiar with!
    Example: 2,367

    Binary notation- Latin Bi-
    "base two" (0 and 1)
    This is the most elementary language and directly translates to on/off in transistors on computer hardware.
    Example: 01101011

    One number in binary notation is a bit. Eight numbers in binary notation is a byte. Bytes have 256 possible combinations of ones and zeroes (2^8=256).

    Hexadecimal notation- Latin Hex-
    "base 16" (0 through f)
    Express values in fewer numbers by widening the range! Two hex values is equivalent to a byte (16^2=256).
    Example: 4e

    Remember that each value is multiplied by the base to the power of the digit place minus one.
    Value * base^(digit place-1)

    For example, I have split out the decimal number 234 into its parts:
    2 * 10^2
    3 * 10^1
    + 4 * 10^0
    234

    ~~~~~~

    Additive color via PNG format

    PNG is raster based, meaning the image is composed of rows of pixels with data for each. The png chunk specification explains the file format in depth:
    http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html

    RGB color format
    Human eyes have cones receptive to red, green and blue electromagnetic light wavelengths. Monitors radiate photons at these wavelengths with pixels composed of red, green and blue lights. RGB hex values instruct the individual lights within each pixel how bright to shine.

    Bit depth
    The number of bits used to determine the color for each pixel. More bits increases both the color range and file size.

    8-bit colors only have a byte to work with for each channel (8 bits ^ 3 channels = 256 colors).

    Monitors tend to have three lights/channels per pixel able to shine at 256 different distinct strengths. This correlates to 24-bit 'True Color,' where each color channel has a range of 256 values.

    -Example hex colors in RGB notation
    #000000: all channels off
    #FFFFFF: white, all channels on
    #FF0000: only red is on
    #9966FF: channels mixed to create purple
    #858585: channels balanced creates grey

    The "alpha channel," an optional fourth channel, can be used to set a pixel's transparency. The alpha channel can be enabled and disabled in Gimp.

    Subtractive color via CMYK format for print
    Paper starts out white! To color white, pigments must be added that absorb wavelengths within a given spectra. Channels are cyan, magenta, yellow and key (black).

    Since the subtractive process is the inverse of additive color, CMY is used because they are the inverse colors of RGB. Key is necessary because colors aren't perfect and black is cheap.

    ~~~~~~~~~~~
    Gimp, the glorified hex editor

    Gimp is about manipulating hex values with built in mathematical formulae. Desaturating averages and equalizes all color channels. Blend modes are just the formulae used to composite pixels- the top and bottom pixel go in and out comes a composite.

    Be sure to customize how pixels are composited in Gimp using blend modes! You can set the blend mode in each individual layer, brushes, gradients and many other places.

    Opacity: transparency, similar to alpha channel

    Normal: replaces the hex value of a pixel beneath it

    Mathematical: Add/ Subtract/ multiply/ divide
    literally take the numbers in each channel and apply them to the numbers in the channels beneath it

    Dodge/Burn: imitates dark room photo development where light is used to manipulate exposure. This is the best way to adjust lightness because it simultaneously adjusts hue, saturation and contrasts to produce better results.

    Difference and Grain: extracts the difference between channels. Grain extract is the inverse of grain merge- once a grain is pulled, it can be reapplied elsewhere with grain merge.

    ~~~~~~~~~~~
    Compression
    -'Lossless'
    Adjacent pixels with the same hex value may be combined to reduce bit count
    3*#e2f538 vs. #e2f538#e2f538#e2f538

    -'Lossy"
    Adjacent pixels with similar hex values are approximated. Data is lost, image loses detail
    3*#e2f538 vs. #e2f538#e2f439#e2f637

    -Indexed PNG
    Instead of verbosely listing an RGB value for every single pixel, Gimp can generate an optimal color index that best represents the colors within the image. Each pixel then points to a location in the index. The index tends to be limited to a small number of colors, which may result in banding, -> and the alpha channel becomes binary (on/off).
    This drastically reduces image size.
    Change color format: (Image>

    Banding artifacts
    If an image does not have enough color depth to differentiate all of the intermediate values in a gradient, clumps of identical pixels form together.
    This can be made less noticeable by dithering, or mingling the pixels at band edges to make lines less noticeable from afar.
    ~~~~~~~

    HSV
    Hue- shade of color
    Saturation- intensity of color
    Value- brightness of color

    ~~~~~~~~
    Rasterization
    Process of assigning a pixel value to represent a position in a vectorized or 3D space. For example, minecraft renders a 3D environment then rasterizes to produce an image for the monitor.

    Interpolation
    Process of approximating intermediate values or averages to best represent an image at different sizes. Gimp allows you to choose the approximating algorithm.
    None duplicates or removes pixels
    Linear inserts averaged hex values
    Cubic and Lanczos are other ways of approximating hex values, just pick whichever looks best.

    ~~~~~~~~
    Minecraft
    PNG implementation does not support tRNS png chunk. Transparency may not be set by a background value.

    To add:
    8bit
    Resolution
    TRNS
    Indexed format
    Spectrum
    Compression
    Rasterization
    CMYK subtractive color
    Indexed format
    Blend modes
    Interpolation
    HSV
    Lightness brightness lumosity
    Spectral color
    Chromaticity/gamut

    Banding
    Dithering

    Texture pack format
    Texture packs in folders
    F3+T

Share This Page