// Procedural granite pattern float granite(vec3 p) float n = 0.0; n += 0.5 * cnoise(p * 4.0); n += 0.25 * cnoise(p * 8.0); n += 0.125 * cnoise(p * 16.0); return 0.5 + 0.5 * n;
NVIDIA released these books entirely for free in PDF format. Chapter 5 of GPU Gems 1 ("Implementing Improved Perlin Noise") is a direct, modern implementation of the core chapter from Procedural Elements . procedural elements for computer graphics pdf free top