GRAVEMIST - CREDITS
Kaelll, 2026

Every line of GLSL in this pack was written from scratch. Nothing was copied,
adapted or derived from Complementary, BSL, Bliss, Solas, Spooklementary or any
other shaderpack.

What follows is the list of PUBLISHED TECHNIQUES the pack implements. These are
other people's ideas, described in papers, talks and public documentation. They
are named here because that is what you do.

--------------------------------------------------------------------------------
LIGHTING
--------------------------------------------------------------------------------

GGX / Trowbridge-Reitz microfacet distribution
    Bruce Walter, Stephen R. Marschner, Hongsong Li, Kenneth E. Torrance
    "Microfacet Models for Refraction through Rough Surfaces"
    Eurographics Symposium on Rendering, 2007
    -> gm_distributionGGX in common/gm_light.glsl

    The distribution itself is due to T. S. Trowbridge and K. P. Reitz,
    "Average irregularity representation of a rough surface for ray
    reflection", JOSA 65(5), 1975.

Smith geometry term, Schlick-Karis approximation
    Brian Karis, "Real Shading in Unreal Engine 4"
    SIGGRAPH 2013 Physically Based Shading course
    -> gm_geometrySmith in common/gm_light.glsl

Fresnel approximation
    Christophe Schlick, "An Inexpensive BRDF Model for Physically-based
    Rendering", Computer Graphics Forum 13(3), 1994
    -> gm_fresnelSchlick in common/gm_light.glsl

--------------------------------------------------------------------------------
SHADOWS
--------------------------------------------------------------------------------

Shadow map distortion
    Technique standardised for Minecraft by the Chocapic13 shaderpack lineage
    and used across the whole scene since. Texels are concentrated around the
    player by dividing clip-space XY by a radial factor.
    -> gm_shadowDistort in common/gm_space.glsl

Vogel disk sampling (Fermat spiral, golden angle)
    Sunflower-seed arrangement described by Helmut Vogel,
    "A better way to construct the sunflower head", Mathematical Biosciences
    44(3-4), 1979. Popularised for PCF shadow sampling by Panagiotis
    Christopoulos-Charitos, "Vogel Disk Sampling" (2016).
    -> gm_vogelDisk in common/gm_common.glsl

--------------------------------------------------------------------------------
AMBIENT OCCLUSION
--------------------------------------------------------------------------------

Normal-oriented screen-space obscurance
    Morgan McGuire, Michael Mara, David Luebke
    "The Alchemy Screen-Space Ambient Obscurance Algorithm"
    High Performance Graphics, 2011
    -> deferred.fsh

--------------------------------------------------------------------------------
ATMOSPHERE AND VOLUMETRICS
--------------------------------------------------------------------------------

Henyey-Greenstein phase function
    Louis G. Henyey, Jesse L. Greenstein
    "Diffuse radiation in the Galaxy", Astrophysical Journal 93, 1941
    -> gm_phaseHG in common/gm_fog.glsl

Single-scattering atmosphere
    Tomoyuki Nishita, Takao Sirai, Katsumi Tadamura, Eihachiro Nakamae
    "Display of the Earth Taking into Account Atmospheric Scattering"
    SIGGRAPH 1993. Reduced here to a stylised analytic form: this pack wants a
    mood, not a simulation.
    -> common/gm_sky.glsl

--------------------------------------------------------------------------------
NOISE
--------------------------------------------------------------------------------

Value noise with quintic interpolation
    Interpolant from Ken Perlin, "Improving Noise", SIGGRAPH 2002
    -> gm_vnoise2 / gm_vnoise3 in common/gm_common.glsl

Cellular / Worley noise
    Steven Worley, "A Cellular Texture Basis Function", SIGGRAPH 1996
    -> gm_worley2 in common/gm_common.glsl

PCG3D integer hash
    Mark Jarzynski, Marc Olano
    "Hash Functions for GPU Rendering"
    Journal of Computer Graphics Techniques 9(3), 2020
    -> gm_pcg3d in common/gm_common.glsl

Interleaved gradient noise
    Jorge Jimenez, "Next Generation Post Processing in Call of Duty: Advanced
    Warfare", SIGGRAPH 2014
    -> gm_ign in common/gm_common.glsl

--------------------------------------------------------------------------------
IMAGE
--------------------------------------------------------------------------------

Octahedral normal encoding
    Zina H. Cigolle, Sam Donow, Daniel Evangelakos, Michael Mara,
    Morgan McGuire, Quirin Meyer
    "A Survey of Efficient Representations for Independent Unit Vectors"
    Journal of Computer Graphics Techniques 3(2), 2014
    -> gm_encodeNormal / gm_decodeNormal in common/gm_common.glsl

Bloom soft-knee threshold and progressive blur
    Jorge Jimenez, "Next Generation Post Processing in Call of Duty: Advanced
    Warfare", SIGGRAPH 2014
    -> composite2.fsh, composite3.fsh, composite4.fsh

ACES filmic tonemapping approximation
    Krzysztof Narkowicz, "ACES Filmic Tone Mapping Curve" (2015), a curve fit to
    the Academy Color Encoding System reference transform.
    -> gm_tonemapACES in common/gm_palette.glsl

Uncharted 2 filmic tonemapping
    John Hable, "Filmic Tonemapping for Real-time Rendering"
    SIGGRAPH 2010 Color Enhancement and Rendering course
    -> gm_tonemapUncharted2 in common/gm_palette.glsl

Extended Reinhard, "Jodie" hue-preserving variant
    Erik Reinhard, Michael Stark, Peter Shirley, James Ferwerda
    "Photographic Tone Reproduction for Digital Images", SIGGRAPH 2002.
    Hue-preserving variant popularised in the real-time community by Jodie.
    -> gm_tonemapReinhardJodie in common/gm_palette.glsl

Purkinje / scotopic shift
    Rod-response model after Adam G. Kirk, James F. O'Brien
    "Perceptually Based Tone Mapping for Low-Light Conditions"
    SIGGRAPH 2011
    -> gm_purkinje in common/gm_palette.glsl

FXAA
    Timothy Lottes, "FXAA" white paper, NVIDIA, 2009-2011.
    The console-quality variant of FXAA 3.11 is reimplemented here.
    -> gm_fxaa in final.fsh

Ordered dithering
    Bryce Bayer, "An Optimum Method for Two-Level Rendition of Continuous-Tone
    Pictures", IEEE International Conference on Communications, 1973
    -> gm_bayer8 in common/gm_common.glsl

--------------------------------------------------------------------------------
MATERIALS
--------------------------------------------------------------------------------

LabPBR 1.3 material format (optional support)
    Community specification maintained at https://shaderlabs.org/wiki/LabPBR
    -> gbuffers_terrain.fsh, behind the GM_PBR_RESOURCE_PACK option

--------------------------------------------------------------------------------
PLATFORM
--------------------------------------------------------------------------------

Iris Shaders
    IrisShaders team. The shader pipeline, uniforms and .properties format this
    pack targets. https://irisshaders.dev

OptiFine shader documentation
    sp614x. The original specification of the gbuffers / deferred / composite
    pipeline and of the .properties directives that Iris implements.

Minecraft
    Mojang Studios. This pack is an unofficial community work and is not
    affiliated with, endorsed by, or connected to Mojang Studios or Microsoft.

--------------------------------------------------------------------------------
TOOLING
--------------------------------------------------------------------------------

The validation harness in tools/ uses GLFW (Camilla Loewy and contributors) and
PyOpenGL (Mike C. Fletcher and contributors).

--------------------------------------------------------------------------------

Built with the help of AI.
Fait a l'aide de l'IA.
