Difference between revisions of "Texturing"

From polycount
Jump to: navigation, search
(a variety of techniques)
 
(9 intermediate revisions by 2 users 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]].
  
== Texture Techniques ==
+
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.
Textures work in conjunction with [[Material|Materials]] and [[Shaders]] 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 parameters or channels of the shader, such as [[Normal map]] or [[Specular_color_map]]. A variety of techniques and [[Tools]] are used to make textures: painted by hand in a traditional 2d package, painted in 3d directly on models, created parametrically, or [[Normal_map#Baking|baking]] image data from one model to another.
+
  
Artists need to make choices about the formatting of their textures, usually during the planning stage before creating the model/texture. Here is some technical information on 2d images.
+
Artists need to make choices about the formatting of their textures, usually during the planning stage before creating the model/texture.  
  
=== Texture Types ===
+
 
Depending on the engine and visual style, different types of maps are used for different effects. [[Vertex color]] is optionally used to control additional effects, such as blending between two images in the same model. Images are made up of [[Pixel]]s 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 [[Transparency_map|opacity]] or another type of map or mask. Masks are images or layers used to control "How much of What", such as [[Specular_color_map]]s or [[Specular_gloss_map]]s, and are typically (but not always) greyscale (pixels only utilizing one channel).
+
== 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 [[Pixel]]s 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 [[Transparency_map|opacity]] or another type of map or mask. Masks are images or layers used to control "How much of What", such as [[Specular color map]]s or [[Specular gloss map]]s, 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. [[PBR|Physical Based Rendering]] setup might be Albedo/Microsurface/Reflectivity/Normal for a next-gen shader.
 
For the average prop, arrangements of map types might use Diffuse/Specular/Normal for a current-gen game. [[PBR|Physical Based Rendering]] setup might be Albedo/Microsurface/Reflectivity/Normal for a next-gen shader.
Line 15: 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.
  
For an expanded list, see [[Texture types]].
 
  
=== Texture Size ===
+
== 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 24: 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. Some formats store other channel types, such as HSL (Hue, Saturation, Luminance), CYMK (Cyan, Yellow, Magenta, Chroma/Black), or simply luminance or alpha.
 
  
=== Bit Depth ===
+
== Texture Channels ==
[[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 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.
+
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 [[GameRenderingTerminology#Draw Call|draw calls]].
 +
 
 +
 
 +
== 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.
 +
 
 +
== 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 Compression ===
 
  
 
== Texture Tiling ==
 
== Texture Tiling ==
See [[Tiling]].
+
Textures can be repeated across a model, by [[Tiling]] the [[TextureCoordinates]].
  
=== Texture Photography ===
+
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 ==
* [[CharacterSculpting]] and [[EnvironmentSculpting]] have information on 3D sculpting.
+
* [[:Category:Concept]]
* [[:Category:Concept]] has drawing and painting fundamentals.
+
* [[CharacterSculpting]]
 +
* [[EnvironmentSculpting]]
 +
* [[MultiTexture]]
 +
* [[Shaders]]
 +
* [[Texture atlas]]
 +
* [[TextureCoordinates]]  
 
* [[TexturingTutorials]]  
 
* [[TexturingTutorials]]  
  

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.


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.


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


More Information



Personal tools
Namespaces

Variants
Actions
Navigation
Tools