Difference between revisions of "Texturing"
EricChadwick (Talk | contribs) (channel packing) |
EricChadwick (Talk | contribs) (a variety of techniques) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Texturing refers to the act of producing 2d images for use with 3d models. Commonly referred to as "maps" or "skins". | Texturing refers to the act of producing 2d images for use with 3d models. Commonly referred to as "maps" or "skins". | ||
+ | Textures work in conjunction with [[Shaders]] and [[Material|Materials]] to produce the final rendering. The game model needs [[Texture Coordinates]] to wrap the texture onto the model. Multiple [[Texture Types]] are often used to control different parts of the shader, such as [[Normal map]] or [[Specular color map]]. | ||
− | + | A variety of techniques and [[Tools]] are used to make textures: painting by hand in a traditional 2d package, photo-manipulation, 3d scanning with a photogrammetry tool, painting in 3d directly on models, creating procedurally in a node-based material editor, [[Texture Baking|baking]] image data from one model to another, etc. | |
− | + | ||
− | Artists need to make choices about the formatting of their textures, usually during the planning stage before creating the model/texture | + | Artists need to make choices about the formatting of their textures, usually during the planning stage before creating the model/texture. |
− | + | ||
+ | == Texture Types == | ||
[[Texture types]] lists the different types of maps used for different effects, which depend on the game engine and visual style. | [[Texture types]] lists the different types of maps used for different effects, which depend on the game engine and visual style. | ||
Line 19: | Line 20: | ||
Other surfaces need more specialized shaders and textures, such as Skin or water. | Other surfaces need more specialized shaders and textures, such as Skin or water. | ||
− | + | ||
+ | == Texture Size == | ||
The dimensions of the image, how the model is [[Texture Coordinates|unwrapped]], the scale of the model and scene scale all equate to the resolution of the textured model when seen in-game. It is important that all objects in the scene have similar texture scaling to keep the overall look consistent; a low-resolution image looks jarring when placed next to a high-resolution one. Texture size is the first place to start for this decision, determining [[Texel|texel]], the ratio between UV space/Texture resolution/Scene and object scale when uv unwrapping the model is the second. | The dimensions of the image, how the model is [[Texture Coordinates|unwrapped]], the scale of the model and scene scale all equate to the resolution of the textured model when seen in-game. It is important that all objects in the scene have similar texture scaling to keep the overall look consistent; a low-resolution image looks jarring when placed next to a high-resolution one. Texture size is the first place to start for this decision, determining [[Texel|texel]], the ratio between UV space/Texture resolution/Scene and object scale when uv unwrapping the model is the second. | ||
Line 26: | Line 28: | ||
* [http://www.polycount.com/forum/showthread.php?t=134911 How often are 4096 textures used in next-gen gaming] on the Polycount Forum | * [http://www.polycount.com/forum/showthread.php?t=134911 How often are 4096 textures used in next-gen gaming] on the Polycount Forum | ||
− | + | ||
+ | == Texture Channels == | ||
Channels are the color components in the image. Red, Green and Blue (RGB) are each stored as data in separate indices and some software can display each as a greyscale image. An additional channel named Alpha can also be present, but not always rendered into the composite. | Channels are the color components in the image. Red, Green and Blue (RGB) are each stored as data in separate indices and some software can display each as a greyscale image. An additional channel named Alpha can also be present, but not always rendered into the composite. | ||
Line 34: | Line 37: | ||
− | + | == Bit Depth == | |
[[BitDepth|Bit depth]] is how much data is allotted to each pixel either in memory or in the file. More bits per pixel (bpp) increases the number of colors available for each channel. The 1 bit type has two colors, black and white (or off and on), and is often used for [[Transparency_map|transparent]] alpha testing - a simple sorting for whether or not a pixel is visible. 8 bits gives 256 colors per channel (16.7 million RGB colors), and is often the default mode for most applications. However, higher bpp means increased file size and memory use. It's not uncommon for a format to store colors unequally: 5 bits red, 6 bits green, 5 bits blue, for an example of a total 16 bit storage. Compression is another method to decrease the file size. | [[BitDepth|Bit depth]] is how much data is allotted to each pixel either in memory or in the file. More bits per pixel (bpp) increases the number of colors available for each channel. The 1 bit type has two colors, black and white (or off and on), and is often used for [[Transparency_map|transparent]] alpha testing - a simple sorting for whether or not a pixel is visible. 8 bits gives 256 colors per channel (16.7 million RGB colors), and is often the default mode for most applications. However, higher bpp means increased file size and memory use. It's not uncommon for a format to store colors unequally: 5 bits red, 6 bits green, 5 bits blue, for an example of a total 16 bit storage. Compression is another method to decrease the file size. | ||
− | + | == Texture Compression == | |
+ | Textures often need to be [[Texture Compression|compressed]] to use in a game. Compression has three main benefits: reduce the file size in storage (on the hard drive), make for smaller downloads (important for mobile and web games), and improve texture memory (always a limited resource in games). | ||
+ | |||
+ | * [[Texture formats]] lists compressed and uncompressed game texture formats. | ||
+ | * [[DXT]] is a commonly-used compression format for games. | ||
+ | |||
== Texture Tiling == | == Texture Tiling == | ||
Line 44: | Line 52: | ||
Rectangular textures packed inside a [[Texture atlas]] can also be tiled. | Rectangular textures packed inside a [[Texture atlas]] can also be tiled. | ||
− | + | ||
+ | == Texture Photography == | ||
* [http://renderhjs.net/shoebox/ ShoeBox: Mask Image] - by ''[http://renderhjs.net Hendrik-Jan "renderhjs" Schoenmaker]'' | * [http://renderhjs.net/shoebox/ ShoeBox: Mask Image] - by ''[http://renderhjs.net Hendrik-Jan "renderhjs" Schoenmaker]'' | ||
* [http://udn.epicgames.com/Three/TakingBetterPhotosForTextures.html Taking Better Photos for Textures] - by ''[http://www.mutantspoon.com/ Jordan Walker]'' | * [http://udn.epicgames.com/Three/TakingBetterPhotosForTextures.html Taking Better Photos for Textures] - by ''[http://www.mutantspoon.com/ Jordan Walker]'' | ||
* [http://boards.polycount.net/showthread.php?t=65262 Better Sharpening in Photoshop] - by ''[http://poopinmymouth.com Ben "poopinmymouth" Mathis]'' | * [http://boards.polycount.net/showthread.php?t=65262 Better Sharpening in Photoshop] - by ''[http://poopinmymouth.com Ben "poopinmymouth" Mathis]'' | ||
* [http://cgtextures.com/content.php?action=tutorials Texture Photography & Processing Tutorials] | * [http://cgtextures.com/content.php?action=tutorials Texture Photography & Processing Tutorials] | ||
+ | |||
== More Information == | == More Information == |
Latest revision as of 08:59, 12 May 2016
Texturing refers to the act of producing 2d images for use with 3d models. Commonly referred to as "maps" or "skins".
Textures work in conjunction with Shaders and Materials to produce the final rendering. The game model needs Texture Coordinates to wrap the texture onto the model. Multiple Texture Types are often used to control different parts of the shader, such as Normal map or Specular color map.
A variety of techniques and Tools are used to make textures: painting by hand in a traditional 2d package, photo-manipulation, 3d scanning with a photogrammetry tool, painting in 3d directly on models, creating procedurally in a node-based material editor, baking image data from one model to another, etc.
Artists need to make choices about the formatting of their textures, usually during the planning stage before creating the model/texture.
Contents
Texture Types
Texture types lists the different types of maps used for different effects, which depend on the game engine and visual style.
Images are made up of Pixels and are split up into Red, Green and Blue components, also known as channels, and may additionally have an Alpha channel which can be used to store opacity or another type of map or mask. Masks are images or layers used to control "How much of What", such as Specular color maps or Specular gloss maps, and are typically (but not always) greyscale (pixels only utilizing one channel).
Vertex color is optionally used to control additional effects, such as blending between two images in the same model.
For the average prop, arrangements of map types might use Diffuse/Specular/Normal for a current-gen game. Physical Based Rendering setup might be Albedo/Microsurface/Reflectivity/Normal for a next-gen shader.
Other surfaces need more specialized shaders and textures, such as Skin or water.
Texture Size
The dimensions of the image, how the model is unwrapped, the scale of the model and scene scale all equate to the resolution of the textured model when seen in-game. It is important that all objects in the scene have similar texture scaling to keep the overall look consistent; a low-resolution image looks jarring when placed next to a high-resolution one. Texture size is the first place to start for this decision, determining texel, the ratio between UV space/Texture resolution/Scene and object scale when uv unwrapping the model is the second.
Images store pixels in two dimensions, and can be square or rectangular. Most engines require dimensions to be in powers of two: 2,4,8,16,3164,128,256,512,1024,2048,4096. Other engines may not require it, but an off-sized image can potentially harm performance.
- How often are 4096 textures used in next-gen gaming on the Polycount Forum
Texture Channels
Channels are the color components in the image. Red, Green and Blue (RGB) are each stored as data in separate indices and some software can display each as a greyscale image. An additional channel named Alpha can also be present, but not always rendered into the composite.
Some formats store other channel types, such as HSL (Hue, Saturation, Luminance), CYMK (Cyan, Yellow, Magenta, Chroma/Black), or simply luminance or alpha.
ChannelPacking can be used to store different grayscale images in each of a texture's channels, which can save texture Memory but probably increases draw calls.
Bit Depth
Bit depth is how much data is allotted to each pixel either in memory or in the file. More bits per pixel (bpp) increases the number of colors available for each channel. The 1 bit type has two colors, black and white (or off and on), and is often used for transparent alpha testing - a simple sorting for whether or not a pixel is visible. 8 bits gives 256 colors per channel (16.7 million RGB colors), and is often the default mode for most applications. However, higher bpp means increased file size and memory use. It's not uncommon for a format to store colors unequally: 5 bits red, 6 bits green, 5 bits blue, for an example of a total 16 bit storage. Compression is another method to decrease the file size.
Texture Compression
Textures often need to be compressed to use in a game. Compression has three main benefits: reduce the file size in storage (on the hard drive), make for smaller downloads (important for mobile and web games), and improve texture memory (always a limited resource in games).
- Texture formats lists compressed and uncompressed game texture formats.
- DXT is a commonly-used compression format for games.
Texture Tiling
Textures can be repeated across a model, by Tiling the TextureCoordinates.
Rectangular textures packed inside a Texture atlas can also be tiled.
Texture Photography
- ShoeBox: Mask Image - by Hendrik-Jan "renderhjs" Schoenmaker
- Taking Better Photos for Textures - by Jordan Walker
- Better Sharpening in Photoshop - by Ben "poopinmymouth" Mathis
- Texture Photography & Processing Tutorials
More Information
- Category:Concept
- CharacterSculpting
- EnvironmentSculpting
- MultiTexture
- Shaders
- Texture atlas
- TextureCoordinates
- TexturingTutorials