Difference between revisions of "MultiTexture"

From polycount
Jump to: navigation, search
(example images)
(Modulation Blending: Creating Layered Materials in Unreal Engine)
 
(21 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
== Texture Splatting ==
 
== Texture Splatting ==
Texture splatting is a method for blending multiple textures together on the same mesh, by painting a mask between them. Often [[VertexColor|Vertex Color]] is used to control the blending because vertex color is fairly cheap. Or a mask bitmap can be used because it gives more control and avoids the gradient artifacts of per-vertex blending.  
+
Texture splatting is a method for blending multiple textures together on the same mesh, by painting a mask between them. Often [[VertexColor|Vertex Color]] is used to control the blending because vertex color is fairly cheap. Or a bitmap can be used (splat map) because it gives more control and avoids the gradient artifacts of vertex blending.  
  
 
<gallery mode="nolines" heights=200px widths=400px>
 
<gallery mode="nolines" heights=200px widths=400px>
Line 20: Line 20:
 
This method adds sharp details to the blend area, by mixing vertex color (for the larger blend) with grayscale textures (for the sharp detail blend). These grayscale maps are either stored in the alpha channel of each layer's normal map, or multiple maps can be [[ChannelPacking|channel packed]] into a single map. Usually the [[Shaders|shader]] has a control for how sharp the transition will be, and sometimes you can use a vertex color or bitmap to control the sharpness.
 
This method adds sharp details to the blend area, by mixing vertex color (for the larger blend) with grayscale textures (for the sharp detail blend). These grayscale maps are either stored in the alpha channel of each layer's normal map, or multiple maps can be [[ChannelPacking|channel packed]] into a single map. Usually the [[Shaders|shader]] has a control for how sharp the transition will be, and sometimes you can use a vertex color or bitmap to control the sharpness.
  
[[image:TorFrick_VertexPaintingInUnreal.jpg|thumb|left|300px|[http://eat3d.com/free/vertex_painting Vertex Painting in UDK - Eat 3D] Video tutorial by [http://www.torfrick.com/ Tor 'Snefer' Frick].]]<br clear="all"/>
+
<gallery mode="nolines" heights=200px widths=400px>
 +
TorFrick_VertexPaintingInUnreal.jpg|Vertex painting in Unreal. Image by [http://www.torfrick.com/ Tor 'Snefer' Frick].
 +
</gallery>
  
 +
* [https://docs.unrealengine.com/5.1/en-US/creating-layered-materials-in-unreal-engine/ Creating Layered Materials in Unreal Engine]
 +
* [https://polycount.com/discussion/174377/witcher-3-blood-and-wine-architectural-material/p1 Witcher 3 Blood and Wine architectural material] uses vertex color to blend between textures in an array.
 
* [http://eat3d.com/free/vertex_painting Vertex Painting in UDK - Eat 3D] Video tutorial by [http://www.torfrick.com/ Tor 'Snefer' Frick] showing how to setup a material using vertex paint and a blend mask in Unreal.
 
* [http://eat3d.com/free/vertex_painting Vertex Painting in UDK - Eat 3D] Video tutorial by [http://www.torfrick.com/ Tor 'Snefer' Frick] showing how to setup a material using vertex paint and a blend mask in Unreal.
 
* [http://www.polycount.com/forum/showpost.php?p=1924774&postcount=24 Vertex blend shader for Unity] shader and Youtube video by [http://fingus.net/ Sindre 'Fingus 'Opsahl Skaare]
 
* [http://www.polycount.com/forum/showpost.php?p=1924774&postcount=24 Vertex blend shader for Unity] shader and Youtube video by [http://fingus.net/ Sindre 'Fingus 'Opsahl Skaare]
Line 29: Line 33:
 
* [http://forums.epicgames.com/threads/749677-Texture-blending-through-up-vector-%28snow-on-top-of-rocks%29 UDK - snow on top of rocks] shader ideas, via the Epic Games Forums.
 
* [http://forums.epicgames.com/threads/749677-Texture-blending-through-up-vector-%28snow-on-top-of-rocks%29 UDK - snow on top of rocks] shader ideas, via the Epic Games Forums.
 
* [http://www.polycount.com/forum/showthread.php?t=85807 Tutorial - Gradient Mapping & UDK] Polycount forum thread. Using gradients to control colors in an image or as a postprocess.
 
* [http://www.polycount.com/forum/showthread.php?t=85807 Tutorial - Gradient Mapping & UDK] Polycount forum thread. Using gradients to control colors in an image or as a postprocess.
* [http://www.polycount.com/forum/showthread.php?t=66952 The Snow and Ice of Uncharted2?] Polycount forum thread. Vertex blending using a modulation texture. Test shaders for UDK ([http://www.polycount.com/forum/showthread.php?p=1024030#post1024030 1], [http://www.polycount.com/forum/showthread.php?p=1024849#post1024849 2], [http://www.hourences.com/ue3-material-editor-part-3/ 3], [http://www.chrisalbeluhn.com/UDK_Advanced_Vertex_Painting.html 4], [http://www.laurenscorijn.com/vertex-blending-snow.html 5 (snow)]). Behrooz Roozbeh from Naughty Dog explains how they did it [http://www.zbrushcentral.com/showthread.php?79141-Uncharted-2-Among-Thieves-art-work&p=641316&viewfull=1#post641316 over here on ZBrushCentral].
+
* [http://www.polycount.com/forum/showthread.php?t=66952 The Snow and Ice of Uncharted2?] Polycount forum thread. Vertex blending using a modulation texture. Test shaders for UDK ([http://www.polycount.com/forum/showthread.php?p=1024030#post1024030 1], [http://www.polycount.com/forum/showthread.php?p=1024849#post1024849 2], [http://www.hourences.com/ue3-material-editor-part-3/ 3], [https://www.chrisalbeluhn.com/udk-advanced-mesh-painting 4], [http://www.laurenscorijn.com/vertex-blending-snow.html 5 (snow)]). Behrooz Roozbeh from Naughty Dog explains how they did it [http://www.zbrushcentral.com/showthread.php?79141-Uncharted-2-Among-Thieves-art-work&p=641316&viewfull=1#post641316 over here on ZBrushCentral].
 
* [http://udn.epicgames.com/Three/LandscapeMaterials.html#Note%20about%20multiple%20LB_HeightBlend%20layers UDN - Three - Landscape Materials] by Epic Games. UDK's Landscape system uses painted weightmaps for terrain multitexturing. The weightmaps are one pixel per vertex, but you can also enable modulate textures using a Landscape Layer Blend node with the "LB_!HeightBlend" option.
 
* [http://udn.epicgames.com/Three/LandscapeMaterials.html#Note%20about%20multiple%20LB_HeightBlend%20layers UDN - Three - Landscape Materials] by Epic Games. UDK's Landscape system uses painted weightmaps for terrain multitexturing. The weightmaps are one pixel per vertex, but you can also enable modulate textures using a Landscape Layer Blend node with the "LB_!HeightBlend" option.
* [http://www.chrisalbeluhn.com/UT3_Vertex_Blend_Variation_Tutorial.html UT3: Vertex color blending variation] by Chris Albeluhn. Creating advanced vertex blending materials in UDK using vertex color and modulation masks. See also [http://www.chrisalbeluhn.com/UDK_Advanced_Vertex_Painting.html UDK Advanced Vertex Painting].
+
* [https://www.chrisalbeluhn.com/ut3-vertex-blending-variation-method UT3: Vertex color blending variation] by Chris Albeluhn. Creating advanced vertex blending materials in UDK using vertex color and modulation masks. See also [https://www.chrisalbeluhn.com/udk-advanced-mesh-painting UDK Advanced Vertex Painting].
 
* [https://www.3dmotive.com/f100601 Advanced Mesh Paint with UDK] ($) at 3DMotive by Ryan James Smith. Creating advanced vertex blending materials in UDK using vertex color and a modulation mask.
 
* [https://www.3dmotive.com/f100601 Advanced Mesh Paint with UDK] ($) at 3DMotive by Ryan James Smith. Creating advanced vertex blending materials in UDK using vertex color and a modulation mask.
 
* [https://developer.valvesoftware.com/wiki/$blendmodulatetexture $blendmodulatetexture] at the Valve Developer Community wiki. How to use a modulation texture in Source.
 
* [https://developer.valvesoftware.com/wiki/$blendmodulatetexture $blendmodulatetexture] at the Valve Developer Community wiki. How to use a modulation texture in Source.
Line 39: Line 43:
 
Methods for adding variation across a tiling texture.
 
Methods for adding variation across a tiling texture.
  
[[image:ChristopherAlbeluhn_AddingVariation.jpg|thumb|left|300px|[http://www.chrisalbeluhn.com/UT3_Add_variation_to_repeating_textures_Tutorial.html Chris Albeluhn - UT3 - Adding variation to a repeating texture pattern].]]<br clear="all"/>
+
<gallery mode="nolines" heights=200px widths=500px>
 +
ChristopherAlbeluhn_AddingVariation.jpg|Adding variation to repeating textures. Image by [http://www.chrisalbeluhn.com Chris Albeluhn].
 +
ScottHomer_MacroNormal.jpg|Using a normal map to add lighting variation. Image by [http://scotthomer.co.uk/ Scott Homer] from [http://artbypapercut.com/ Vertex 2].
 +
</gallery>
  
 
* [http://www.polycount.com/forum/showthread.php?p=1308889#post1308889 STAGE Street Fighter 2, Bath House, JordanW] - Polycount Forum]  
 
* [http://www.polycount.com/forum/showthread.php?p=1308889#post1308889 STAGE Street Fighter 2, Bath House, JordanW] - Polycount Forum]  
* [http://www.chrisalbeluhn.com/UT3_Add_variation_to_repeating_textures_Tutorial.html Chris Albeluhn - UT3 - Adding variation to a repeating texture pattern]
+
* [https://www.chrisalbeluhn.com/ut3-adding-variation-to-a-repeating-texture-pattern Chris Albeluhn - UT3 - Adding variation to a repeating texture pattern]
* [http://www.chrisalbeluhn.com/UT3_Adding_Brick_Variation.html Chris Albeluhn - UT3 - Adding Brick Variation]
+
* [https://www.chrisalbeluhn.com/ut3-adding-brick-variation-on-large-surfaces Chris Albeluhn - UT3 - Adding Brick Variation]
* [http://www.chrisalbeluhn.com/UDK_Asset_Position_Offsets_Texturet_Tutorial.html Chris Albeluhn - UDK - Mesh Position Offset the Materials Texture]
+
* [https://www.chrisalbeluhn.com/udk-offsetting-the-mesh-offsets-the-texture Chris Albeluhn - UDK - Mesh Position Offset the Materials Texture]
 +
 
 +
== Trim Sheets ==
 +
Trim sheet is a few textures packed into one bitmap. Often the textures tile horizontally or vertically, however there's no requirement for anything to tile. Trim sheets often use [[ChannelPacking|channel packing]].
 +
 
 +
* [[Modular_environments]] has tutorials for generating trim sheets.
 +
* [https://polycount.com/discussion/210492/tutorial-trim-textures-for-environment-art-and-props 4-Part Video Tutorial Series on Making Trim Sheets] by Tim 'PixelMasher' Simpson.
 +
** Part 1 - https://youtu.be/DipfrjCgYW8
 +
** Part 2 - https://youtu.be/Tspveb9bjYA
 +
** Part 3 - https://youtu.be/CarefswACgs
 +
** Part 4 - https://youtu.be/VEHsZniXguY
 +
* https://www.gdcvault.com/play/1022324/The-Ultimate-Trim-Texturing-Techniques The Ultimate Trim
 +
- texturing techniques of Sunset Overdrive by Morten Olsen, Principal Environment Artist, Insomniac Games, at GDC 2015.
 +
* [http://polycount.com/discussion/160794/the-ultimate-trim-technique-from-sunset-overdrive The "ultimate trim" technique from Sunset Overdrive] Polycount Forum thread.
 +
* [http://docs.cryengine.com/display/SDKDOC2/Using+Decals+for+Destroyed+Structures CRYENGINE 3 Manual: Using Decals for Destroyed Structures]
 +
 
 +
 
 +
[[image:SneferTileExplain.jpg|thumb|600px|left|Two [[ChannelPacking|channel packed]] trim sheets, which store a total of six unique textures, see [http://polycount.com/discussion/89682 An exercise in modular textures - Scifi lab UDK] on the Polycount Forum. Image by [http://www.torfrick.com/ Tor 'Snefer' Frick].]]<br clear="all"/>
 +
 
 +
 
 +
[[image:DistingTileExplain.jpg|thumb|400px|left|A [[ChannelPacking|channel packed]] trim sheet used to texture an entire scene, see [http://polycount.com/discussion/comment/1588220/#Comment_1588220 [UDK] Oil Rig Observation Outpost] on the Polycount Forum. Image by [http://artbywiktor.com/ Wiktor 'Disting' Öhman].]]<br clear="all"/>
 +
 
 +
 
 +
[[image:Marcan-MassEffect3-swizzle.jpg|thumb|600px|left|A [[ChannelPacking|channel packed]] trim sheet used in Mass Effect 3, see [http://polycount.com/discussion/comment/1881634/#Comment_1881634 Mass Effect 3 art - Marc-Antoine Hamelin] on the Polycount Forum. Image by [http://www.marc-antoine.ca/ Marc-Antoine 'Marcan' Hamelin].]]<br clear="all"/>
 +
 
 +
== Blending Operations ==
 +
When blending textures together, usually the surface's color (source) is combined with the background color (destination) in a linear way. This is similar to the "Normal" blending mode in Photoshop. However there are many other blending methods available... Add, Multiply, Overlay, etc.
 +
 
 +
<gallery mode="nolines" heights=200px widths=500px>
 +
Blends_UnrealEngineDocumentation.jpg|[https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/Functions/Reference/Blends/index.html Blends | Unreal Engine Documentation] replicate common Photoshop methods.
 +
Blends_SourceDestinationMatrix.jpg|[https://polycount.com/discussion/180954/alpha-blend-source-destination-matrix Alpha Blend - Source/Destination matrix] commonly available shader blending modes.
 +
Blends_InsightIntoPhotoshop7BlendingModes.jpg|[https://dunnbypaul.net/blends/ Insight into Photoshop 7.0 Blending Modes] the math behind many of them.
 +
</gallery>
  
 
== Megatexture ==
 
== Megatexture ==
id Software's Megatexture tech uses [[Decal decals] and multitexturing to create their terrain textures, which are then baked down in a preprocessing step into a huge texture sheet, that's dynamically loaded as you play the game. So it's not really multitexturing in the end, blending in real-time, instead it's a single colormap baked from a multitextured source. The Splash Damage wiki has an article about [http://wiki.splashdamage.com/index.php/A_Simple_First_Megatexture generating Megatextures for ETQW].
+
id Software's Megatexture tech uses [[Decal]]s and multitexturing to create their terrain textures, which are then baked down in a preprocessing step into a huge texture sheet, that's dynamically loaded as you play the game. So it's not really multitexturing in the end, blending in real-time, instead it's a single colormap baked from a multitextured source. The Splash Damage wiki has an article about [http://wiki.splashdamage.com/index.php/A_Simple_First_Megatexture generating Megatextures for ETQW].
  
[[image:megatexture_rage_before.jpg|frame|left|Megatexture in Rage, before decals and multitexturing. Image by [http://www.idsoftware.com id Software] ]] [[image:megatexture_rage_after.jpg|frame|left|Megatexture in Rage, after baking in the decals and texture layers. Image by [http://www.idsoftware.com id Software] ]]
+
<gallery mode="nolines" heights=200px widths=500px>
<br clear="all"/>
+
megatexture_rage_before.jpg|Megatexture in Rage, before decals and multitexturing. Image by [http://www.idsoftware.com id Software].
 +
megatexture_rage_after.jpg|Megatexture in Rage, after baking in the decals and texture layers. Image by [http://www.idsoftware.com id Software].
 +
</gallery>
  
 
== More Information ==
 
== More Information ==
 +
* [[ChannelPacking]]
 
* [[Decal]]
 
* [[Decal]]
 
* [[Light map]]
 
* [[Light map]]

Latest revision as of 18:49, 4 March 2023

Multi-Texture describes the blending of multiple textures on the same surface.

Texture Splatting

Texture splatting is a method for blending multiple textures together on the same mesh, by painting a mask between them. Often Vertex Color is used to control the blending because vertex color is fairly cheap. Or a bitmap can be used (splat map) because it gives more control and avoids the gradient artifacts of vertex blending.

Modulation Blending

This method adds sharp details to the blend area, by mixing vertex color (for the larger blend) with grayscale textures (for the sharp detail blend). These grayscale maps are either stored in the alpha channel of each layer's normal map, or multiple maps can be channel packed into a single map. Usually the shader has a control for how sharp the transition will be, and sometimes you can use a vertex color or bitmap to control the sharpness.

Variation Blending

Methods for adding variation across a tiling texture.

Trim Sheets

Trim sheet is a few textures packed into one bitmap. Often the textures tile horizontally or vertically, however there's no requirement for anything to tile. Trim sheets often use channel packing.

- texturing techniques of Sunset Overdrive by Morten Olsen, Principal Environment Artist, Insomniac Games, at GDC 2015.


Two channel packed trim sheets, which store a total of six unique textures, see An exercise in modular textures - Scifi lab UDK on the Polycount Forum. Image by Tor 'Snefer' Frick.


A channel packed trim sheet used to texture an entire scene, see [UDK Oil Rig Observation Outpost] on the Polycount Forum. Image by Wiktor 'Disting' Öhman.


A channel packed trim sheet used in Mass Effect 3, see Mass Effect 3 art - Marc-Antoine Hamelin on the Polycount Forum. Image by Marc-Antoine 'Marcan' Hamelin.

Blending Operations

When blending textures together, usually the surface's color (source) is combined with the background color (destination) in a linear way. This is similar to the "Normal" blending mode in Photoshop. However there are many other blending methods available... Add, Multiply, Overlay, etc.

Megatexture

id Software's Megatexture tech uses Decals and multitexturing to create their terrain textures, which are then baked down in a preprocessing step into a huge texture sheet, that's dynamically loaded as you play the game. So it's not really multitexturing in the end, blending in real-time, instead it's a single colormap baked from a multitextured source. The Splash Damage wiki has an article about generating Megatextures for ETQW.

More Information


Personal tools
Namespaces

Variants
Actions
Navigation
Tools