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)