[Graphics]Procedural Texture Notes
Keywords: graphics, procedural texture, image compression, texture formats, BC1, BC2, BC5, BC6H, BC7
Blogs
Procedural Texturing
https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/procedural-texturing
Understanding BCn Texture Compression Formats
http://www.reedbeta.com/blog/understanding-bcn-texture-compression-formats/
Linear-Space Lighting (i.e. Gamma)
http://filmicworlds.com/blog/linear-space-lighting-i-e-gamma/
Gamma-correct rendering
https://blog.molecular-matters.com/2011/11/21/gamma-correct-rendering/
Documents
Procedural texture
https://en.wikipedia.org/wiki/Procedural_texture
Texture Block Compression in Direct3D 11
https://learn.microsoft.com/en-us/windows/win32/direct3d11/texture-block-compression-in-direct3d-11
Chapter 24. The Importance of Being Linear
https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-24-importance-being-linear
Tools & Frameworks
Procedural Textures - Blender 2.80 Fundamentals
https://www.youtube.com/watch?v=_deRNqDcwRk
Basis Universal is a “supercompressed” GPU texture compression system that outputs a highly compressed intermediate file format (.basis) that can be quickly transcoded to a very wide variety of GPU compressed and uncompressed pixel formats: ASTC 4x4 L/LA/RGB/RGBA, PVRTC1 4bpp RGB/RGBA, PVRTC2 RGB/RGBA, BC7 mode 6 RGB, BC7 mode 5 RGB/RGBA, BC1-5 RGB/RGBA/X/XY, ETC1 RGB, ETC2 RGBA, ATC RGB/RGBA, ETC2 EAC R11 and RG11, FXT1 RGB, and uncompressed raster image formats 8888/565/4444.
https://github.com/BinomialLLC/basis_universal
The “Quite OK Image” format for fast, lossless image compression.(High Performance)
https://github.com/phoboslab/qoi
Quite OK Image format encoder/decoder written in Zig
https://github.com/MasterQ32/zig-qoi
Super fast C++ .PNG writer
https://github.com/richgel999/fpng
PNG encoder and decoder in C and C++.
https://github.com/lvandeve/lodepng
SimpleJPEG: simple jpeg encoder
https://github.com/webmproject/sjpeg
Super fast C++ .PNG writer/reader
https://github.com/richgel999/fpng
JPEG XL image format reference implementation
https://github.com/libjxl/libjxl
Cross Platform Professional Procedural Terrain Generation & Texturing Tool
https://github.com/Jaysmito101/TerraForge3D
DirectXTex texture processing library
https://github.com/microsoft/DirectXTex
Examples & Demos
2D and 3D Procedural Textures in WebGL
http://math.hws.edu/graphicsbook/demos/c7/procedural-textures.html
Fragements Notes
Noise Generation
The Importance of Being Noisy: Fast, High Quality Noise
https://developer.amd.com/wordpress/media/2012/10/Tatarchuk-Noise(GDC07-D3D_Day).pdf
Tileable Noise
How do you generate tileable Perlin noise?
https://gamedev.stackexchange.com/questions/23625/how-do-you-generate-tileable-perlin-noise
Seamless noise generation on cubemap
Quickly generate procedural 3D space scenes in your browser with WebGL (Planet)
https://github.com/wwwtyro/space-3d
Fast procedural 2D space scene generation on the GPU. (Planet)
https://github.com/wwwtyro/space-2d
Source code for the MapToGlobe website (Planet)
https://github.com/kurt1288/MapToGlobe
Create procedural planet globes
https://sudonull.com/post/29794-Create-procedural-planet-globes
Converting a Cubemap into Equirectangular Panorama
https://stackoverflow.com/a/34427087/1645289
Cube Mapping (cubemap, skybox)
How would I go about making a good Space Skybox?
http://www.interlopers.net/forum/viewtopic.php?f=44&t=31549#p391293
Wave Function Collapse
Bitmap & tilemap generation from a single example with the help of ideas from quantum mechanics
https://github.com/mxgmn/WaveFunctionCollapse
Wave Function Collapse library in C, plus a command-line tool
https://github.com/krychu/wfc
Interpolating between two textures
Opengl Shader : Interpolating between two textures
https://stackoverflow.com/a/58658252/1645289
Blending
Blending in Detail
https://blog.selfshadow.com/publications/blending-in-detail/
Don't spend time with someone, who doesn't care spending it with you. ― Gabriel García Márquez