Difference between revisions of "MultiTexture"
EricChadwick (Talk | contribs) (tor desc) |
EricChadwick (Talk | contribs) (→Modulation Blending: Creating Layered Materials in Unreal Engine) |
||
(22 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 | + | 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://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=48473 texturing a race track] thread on Polycount. Texturing ideas for race track pavement. | ||
Line 15: | 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. | ||
+ | <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 22: | 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.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. | ||
− | * [ | + | * [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 31: | Line 42: | ||
== Variation Blending == | == Variation Blending == | ||
Methods for adding variation across a tiling texture. | 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] | * [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 | + | 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> | ||
== 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.
Contents
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.
Blending textures in Unreal. See Unreal Engine 4 - Painting Landscape Materials.
Using a blend mask texture. See UDN - Three - Terrain Advanced Textures.
- Unreal Engine 4 - Painting Landscape Materials
- UDN - Three - Terrain Advanced Textures by Epic Games. Multiple methods for multitexturing terrain in the Unreal 3 Engine.
- texturing a race track thread on Polycount. Texturing ideas for race track pavement.
- Multitexturing and decals? thread on Polycount. Multitexturing methods explained.
- Dark Sector multitexturing by Mario 'Strangefate' Vazquez, Polycount thread here, some 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 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.
Vertex painting in Unreal. Image by Tor 'Snefer' Frick.
- Creating Layered Materials in Unreal Engine
- Witcher 3 Blood and Wine architectural material uses vertex color to blend between textures in an array.
- Vertex Painting in UDK - Eat 3D Video tutorial by Tor 'Snefer' Frick showing how to setup a material using vertex paint and a blend mask in Unreal.
- Vertex blend shader for Unity shader and Youtube video by Sindre 'Fingus 'Opsahl Skaare
- Advanced Terrain Texture Splatting by Andrey Mishkinis
- An exercise in modular textures - Scifi lab UDK - by Tor 'Snefer' Frick, an exercise in extreme texture atlasing, packing multiple maps into the four channels of a texture file.
- The Desert(What can you do with no diffuse maps?) Polycount forum thread. Vertex blending using multiple modulation textures, in UDK. See also Ditching Diffuse Maps: A foray into artistic reasoning and technical details behind "procedural" texturing, with practical examples on today's tech by Andrew 'd1ver' Maximov.
- UDK - snow on top of rocks shader ideas, via the Epic Games Forums.
- Tutorial - Gradient Mapping & UDK Polycount forum thread. Using gradients to control colors in an image or as a postprocess.
- The Snow and Ice of Uncharted2? Polycount forum thread. Vertex blending using a modulation texture. Test shaders for UDK (1, 2, 3, 4, 5 (snow)). Behrooz Roozbeh from Naughty Dog explains how they did it over here on ZBrushCentral.
- 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.
- UT3: Vertex color blending variation by Chris Albeluhn. Creating advanced vertex blending materials in UDK using vertex color and modulation masks. See also UDK Advanced Vertex Painting.
- 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.
- $blendmodulatetexture at the Valve Developer Community wiki. How to use a modulation texture in Source.
- 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.
Adding variation to repeating textures. Image by Chris Albeluhn.
Using a normal map to add lighting variation. Image by Scott Homer from Vertex 2.
- STAGE Street Fighter 2, Bath House, JordanW - Polycount Forum]
- Chris Albeluhn - UT3 - Adding variation to a repeating texture pattern
- Chris Albeluhn - UT3 - Adding Brick Variation
- 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 channel packing.
- Modular_environments has tutorials for generating trim sheets.
- 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.
- The "ultimate trim" technique from Sunset Overdrive Polycount Forum thread.
- CRYENGINE 3 Manual: Using Decals for Destroyed Structures
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.
Blends | Unreal Engine Documentation replicate common Photoshop methods.
Alpha Blend - Source/Destination matrix commonly available shader blending modes.
Insight into Photoshop 7.0 Blending Modes the math behind many of them.
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.
Megatexture in Rage, before decals and multitexturing. Image by id Software.
Megatexture in Rage, after baking in the decals and texture layers. Image by id Software.