See also: [[Shaders]], [[Godot - Shaders List]]
# Types
## Brightness Mask
A texture which controls the local lightness or darkness of the texture, generally applied at a larger scale.
## Macro and Micro
Textures which are blended and applied at multiple scales and/or rotations.
## Warp
[[Displacement Mapping]] used on a texture (instead of vertices) to shift and stretch it across the UV axes.
## Distance Texturing
Use different textures, or different scales of the same texture, depending on how far away the texture/pixel is.
```cardlink
url: https://godotshaders.com/shader/camera-distance-uv-scaling/
title: "Camera Distance UV Scaling - Godot Shaders"
description: "This is a simple script which interpolates the UV scaling..."
host: godotshaders.com
favicon: https://godotshaders.com/wp-content/uploads/2021/01/favicon-150x150.png
image: http://godotshaders.com/wp-content/uploads/2021/01/dist_uv.jpg
```
## Tile Rotation
- https://github.com/Arnklit/TutorialResources/blob/main/tiling_rotation/tiling_rotation.shader
```cardlink
url: https://youtu.be/nUqMDf9BrvI
title: "Tiling and Random Rotation Shader in Godot 3.2.3"
description: "0:00 - Intro0:27 - Tiling3:10 - Rotation7:15 - Randomization10:46 - Mipmap fix12:28 - Written Shader and OuttroConsider supporting me on https://www.patreon...."
host: youtu.be
favicon: https://www.youtube.com/s/desktop/daa21ba0/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/nUqMDf9BrvI/maxresdefault.jpg
```
## Splatting
```cardlink
url: https://www.youtube.com/watch?v=rNuDkDhadfU
title: "3D World Generation: #5 (Texturing): Triplanar Mapping/Infinite Splatting/Blending/Bombing"
description: "We tackle texturing our procedural worlds using a variety of techniques that you can mix and match for whatever suits your project.This is the 5th in a serie..."
host: www.youtube.com
favicon: https://www.youtube.com/s/desktop/2253fa3d/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/rNuDkDhadfU/maxresdefault.jpg
```
- https://en.wikipedia.org/wiki/Texture_splatting
## Cell Bombing / Stochastic Texturing
Use [[Cellular Noise]] to generate a UV texture which semi-randomly offsets portions of the texture to reduce visible tiling.
```cardlink
url: https://youtu.be/tQ49FnQjIHk
title: "No More Texture Repetition! Cell Bombing in Unreal Engine Materials"
description: "How to create and use the \"Texture Cell Bombing\" technique to fix texture repetition. [repetitive tiling and texture tiling FIXED]Tutorial Project File: http..."
host: youtu.be
favicon: https://www.youtube.com/s/desktop/daa21ba0/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/tQ49FnQjIHk/maxresdefault.jpg
```
Use a hexagonal pattern to do the same.
```cardlink
url: https://youtu.be/YzmnpTjit-c
title: "Procedural Stochastic Texturing in #godot #visualshader #shaders #gamedev #indiedev"
description: "Hello community! Have you tried using tiled textures to cover large surfaces in your meshes?If so, you're probably familiar with the visible repeat pattern t..."
host: youtu.be
favicon: https://www.youtube.com/s/desktop/30100020/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/YzmnpTjit-c/maxresdefault.jpg
```
### Example Shader Code
Based on https://eheitzresearch.wordpress.com/722-2/:
```cardlink
url: https://godotshaders.com/shader/stochastic-procedural-texture-shader/
title: "Stochastic Procedural Texture Shader - Godot Shaders"
description: "This is ported the “stochastic procedural texture shader”. some preparation..."
host: godotshaders.com
favicon: https://godotshaders.com/wp-content/uploads/2021/01/favicon-150x150.png
image: http://godotshaders.com/wp-content/uploads/2021/01/ssssss.jpg
```
```cardlink
url: https://github.com/acegiak/Godot4TerrainShader
title: "GitHub - acegiak/Godot4TerrainShader: Split texture, stochastic sampled, triplanar texture shader for Godot4"
description: "Split texture, stochastic sampled, triplanar texture shader for Godot4 - acegiak/Godot4TerrainShader"
host: github.com
favicon: https://github.githubassets.com/favicons/favicon.svg
image: https://opengraph.githubassets.com/c9ea33863c2e83616cfce9a9e7fc8af91874f23c4b3913ccabb3167a7bbe71cd/acegiak/Godot4TerrainShader
```
```cardlink
url: https://godotshaders.com/shader/triplanar-stochastic-terrain-shader/
title: "Triplanar Stochastic Terrain Shader - Godot Shaders"
description: "Inspired by several terrain shaders, as they often did not..."
host: godotshaders.com
favicon: https://godotshaders.com/wp-content/uploads/2021/01/favicon-150x150.png
image: http://godotshaders.com/wp-content/uploads/2021/01/Terrain-1.jpg
```
- https://forum.godotengine.org/t/making-a-3d-triplanar-stochastic-texture-shader-for-tiles/54530
- https://pelto.dev/blog/textures-and-compute-shaders-in-godot/
## Noise Mixing
Use noise to mix between multiple textures.
This tutorial also incorporates "cell bombing", but using procedural textures. Although in my testing having to use a separate texture to merge cells isn't super important if you configure the texture sampler to use nearest-neighbor instead of linear interpolation on the [[Cellular Noise]].
```cardlink
url: https://youtu.be/ssrJGxMtssE
title: "Hiding texture repetition in Godot 4 | Tutorial"
description: "Github repo: https://github.com/quwatz/tiling-texturesAll textures taken from textures.com _______ Resources:for this I basically had to transform my blender..."
host: youtu.be
favicon: https://www.youtube.com/s/desktop/30100020/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/ssrJGxMtssE/maxresdefault.jpg
```
## Procedural
[[Procedural Texture Generator]], [[Procedural Terrain Generation]]
```cardlink
url: https://youtu.be/GlQS6PWzEF8
title: "Procedural Textures"
description: "In this paper I propose a new 3-to-3 random number generation algorithm.More seriously though: In this video I explore procedurally generated texturing using..."
host: youtu.be
favicon: https://www.youtube.com/s/desktop/5e42dd8a/img/favicon_32x32.png
image: https://i.ytimg.com/vi/GlQS6PWzEF8/maxresdefault.jpg
```
## Misc
```cardlink
url: https://youtu.be/sT6Putyi6_Y
title: "Non-tiling materials in Godot 4 [Liblast ubershader WIP 2023-03-24]"
description: "Liblast is an open-source multiplayer FPS game created with Godot 4 game engine and a completely open-source toolset.Get the game here: https://codeberg.org/..."
host: youtu.be
favicon: https://www.youtube.com/s/desktop/a669eefe/img/favicon_32x32.png
image: https://i.ytimg.com/vi/sT6Putyi6_Y/maxresdefault.jpg
```
### Using Blender to Paint Terrain
This is a pretty simplistic system that maps each RGBA channel to one of 4 textures, with black being the 5th texture.
```cardlink
url: https://youtu.be/hpfxUDPxVZ8
title: "Making a Terrain Shader for a Game Engine"
description: "This tutorial walks through creating a terrain shader in Blender and then creating a similar shader Godot that can use the assets you've just created in Blen..."
host: youtu.be
favicon: https://www.youtube.com/s/desktop/fba944d3/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/hpfxUDPxVZ8/maxresdefault.jpg
```
# References
- [[Making Textures Repeats Less Obvious]]
- [Histogram-preserving Blending for Randomized Texture Tiling](https://www.jcgt.org/published/0008/04/02/paper.pdf)