Difference between revisions of "MultiTexture"

From polycount
Jump to: navigation, search
(redirect to the real page)
(Trim Sheets: summary, Modular_environments link, Channel Packing links, example images.)
(28 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__
+
Multi-Texture describes the blending of multiple textures on the same surface.
* [[Polycount|Main Page]] > [[Category:Texturing]] > Multitexture
+
  
= Multitexture =
+
__TOC__
A method for blending multiple textures together on the same mesh.
+
  
* [http://www.polycount.com/forum/showthread.php?t=48473 texturing a race track] thread on Polycount.
+
== Texture Splatting ==
* [http://www.polycount.com/forum/showthread.php?t=74017 Multitexturing and decals?] thread on Polycount.
+
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>
 +
Unreal_Landscape_Smooth_Layer_Before.jpg|Blending textures in Unreal. See [https://docs.unrealengine.com/latest/INT/Engine/Landscape/QuickStart/5/index.html Unreal Engine 4 - Painting Landscape Materials].
 +
UE3_blendmask.jpg|Using a blend mask texture. See [http://udn.epicgames.com/Three/TerrainAdvancedTextures.html UDN - Three - Terrain Advanced Textures].
 +
</gallery>
 +
 
 +
* [https://docs.unrealengine.com/latest/INT/Engine/Landscape/QuickStart/5/index.html Unreal Engine 4 - Painting Landscape Materials]
 +
* [http://udn.epicgames.com/Three/TerrainAdvancedTextures.html UDN - Three - Terrain Advanced Textures] by Epic Games. Multiple methods for multitexturing terrain in the Unreal 3 Engine.
 +
* [http://www.polycount.com/forum/showthread.php?t=48473 texturing a race track] thread on Polycount. Texturing ideas for race track pavement.
 +
* [http://www.polycount.com/forum/showthread.php?t=74017 Multitexturing and decals?] thread on Polycount. Multitexturing methods explained.
 +
* [http://www.strangefate.com/3Dart/index.html#p7APMc1_3 Dark Sector multitexturing] by [http://www.strangefate.com Mario 'Strangefate' Vazquez], Polycount [http://www.polycount.com/forum/showthread.php?t=52498 thread here], some [http://www.polycount.com/forum/showthread.php?p=756818#post756818 explanations here]. Using vertex blending to multitexture gritty urban scenes.
 +
 
 +
== 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 [[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.
 +
 
 +
<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://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://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.gamasutra.com/blogs/AndreyMishkinis/20130716/196339/Advanced_Terrain_Texture_Splatting.php Advanced Terrain Texture Splatting] by [http://www.gamedev.net/user/212547-andreymi/ Andrey Mishkinis]
 +
* [http://www.polycount.com/forum/showthread.php?t=89682 An exercise in modular textures - Scifi lab UDK] - by [http://www.torfrick.com/ Tor 'Snefer' Frick], an exercise in extreme texture atlasing, packing multiple maps into the four channels of a texture file.
 +
* [http://www.polycount.com/forum/showthread.php?t=100388 The Desert(What can you do with no diffuse maps?)] Polycount forum thread. Vertex blending using multiple modulation textures, in UDK. See also [http://artisaverb.info/DitchingDiffuse.html Ditching Diffuse Maps: A foray into artistic reasoning and technical details behind "procedural" texturing, with practical examples on today's tech] by [http://artisaverb.info/ Andrew 'd1ver' Maximov].
 +
* [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=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.
 +
* [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://developer.valvesoftware.com/wiki/$blendmodulatetexture $blendmodulatetexture] at the Valve Developer Community wiki. How to use a modulation texture in Source.
 +
* [http://forums.tf2maps.net/showthread.php?t=12109 Custom Blend Materials in Source] at forums.tf2maps.net by Cynick. Creating advanced vertex blending materials in Source using vertex color and a modulation mask.
 +
 
 +
== Variation Blending ==
 +
Methods for adding variation across a tiling texture.
 +
 
 +
<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]
 +
* [https://www.chrisalbeluhn.com/ut3-adding-variation-to-a-repeating-texture-pattern Chris Albeluhn - UT3 - Adding variation to a repeating texture pattern]
 +
* [https://www.chrisalbeluhn.com/ut3-adding-brick-variation-on-large-surfaces Chris Albeluhn - UT3 - Adding Brick Variation]
 +
* [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 huge texture sheets.  
+
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].
 +
 
 +
<gallery mode="nolines" heights=200px widths=500px>
 +
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>
  
{| border="1" cellpadding="2" cellspacing="0"
+
== More Information ==
| [[attachment:megatexture_rage_before.jpg|Media:MultiTexture/attachments/megatexture_rage_before.jpg
+
* [[ChannelPacking]]
| width=400}}
+
* [[Decal]]
| [[attachment:megatexture_rage_after.jpg|{{attachment:megatexture_rage_after.jpg
+
* [[Light map]]
|-
+
* [[Shaders]]
| Megatexturing in Rage, before decals and multitexturing.<<BR>><span style="font-size: smaller">Image by [http://www.idsoftware.com id Software]</span>
+
* [[Texture atlas]]
|}
+
* [[TextureCoordinates]]
  
<<BR>>
+
----
* [[Polycount|Main Page]] > [[Category:Texturing]] > Multitexture
+
[[Category:Texturing]] [[Category:TextureTechnique]] [[Category:Glossary]] [[Category:EnvironmentTexturing]] [[Category:EnvironmentTerrain]]

Revision as of 13:40, 23 May 2020

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