$darkmode
Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
pp_params.h File Reference

Parameter structs and defaults for uber-shader post-processing effects. More...

#include <cglm/types.h>
#include <stdint.h>
Include dependency graph for pp_params.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ColorGradingParams
 Unreal-style color grading parameters. More...
 
struct  VignetteParams
 Controls for the screen-edge darkening effect. More...
 
struct  GrainParams
 Fine-grained controls for film noise. More...
 
struct  ExposureParams
 Manual exposure tuning. More...
 
struct  ChromAbberationParams
 Focal-length distortion simulation. More...
 
struct  WhiteBalanceParams
 Temperature and tint correction. More...
 
struct  TonemapParams
 ACES-like filmic tonemapping curve parameters. More...
 
struct  FXAAParams
 Parameters for Fast Approximate Anti-Aliasing. More...
 
struct  BandingParams
 Controls for color banding/quantization. More...
 
struct  FogParams
 Depth-based atmospheric fog parameters. More...
 

Macros

#define DEFAULT_VIGNETTE_INTENSITY   0.8F
 
#define DEFAULT_VIGNETTE_SMOOTHNESS   0.5F
 
#define DEFAULT_VIGNETTE_ROUNDNESS   1.0F
 
#define DEFAULT_GRAIN_INTENSITY   0.02F
 
#define DEFAULT_GRAIN_SHADOWS_MAX   0.09F
 
#define DEFAULT_GRAIN_HIGHLIGHTS_MIN   0.5F
 
#define DEFAULT_GRAIN_TEXEL_SIZE   1.0F
 
#define DEFAULT_EXPOSURE   1.00F
 
#define DEFAULT_CHROM_ABBR_STRENGTH   0.005F
 
#define DEFAULT_FXAA_SUBPIX   0.75F
 
#define DEFAULT_FXAA_EDGE_THRESHOLD   0.125F
 
#define DEFAULT_FXAA_EDGE_THRESHOLD_MIN   0.063F
 
#define DEFAULT_BANDING_LEVELS   256.0F
 
#define DEFAULT_FOG_DENSITY   0.0F
 
#define DEFAULT_FOG_START   10.0F
 
#define DEFAULT_FOG_HEIGHT_FALLOFF   0.1F
 
#define DEFAULT_FOG_COLOR_R   0.5F
 
#define DEFAULT_FOG_COLOR_G   0.6F
 
#define DEFAULT_FOG_COLOR_B   0.7F
 
#define DEFAULT_WB_TEMP   6500.0F
 
#define DEFAULT_WB_TINT   0.0F
 
#define DEFAULT_FILMIC_SLOPE   1.0F
 
#define DEFAULT_FILMIC_TOE   0.0F
 
#define DEFAULT_FILMIC_SHOULDER   0.0F
 
#define DEFAULT_FILMIC_BLACK_CLIP   0.0F
 
#define DEFAULT_FILMIC_WHITE_CLIP   0.0F
 
#define DEFAULT_ACTIVE_EFFECTS
 Default mask of active effects. More...
 

Enumerations

enum  BandingMode {
  BANDING_MODE_LINEAR = 0 , BANDING_MODE_DITHERED = 1 , BANDING_MODE_PERCEPTUAL = 2 , BANDING_MODE_CHANNEL = 3 ,
  BANDING_MODE_LUMINANCE = 4
}
 Styles of color quantization. More...
 
enum  PostProcessEffect {
  POSTFX_VIGNETTE = (1U << 0U) , POSTFX_GRAIN = (1U << 1U) , POSTFX_EXPOSURE = (1U << 2U) , POSTFX_CHROM_ABBR = (1U << 3U) ,
  POSTFX_BLOOM = (1U << 4U) , POSTFX_COLOR_GRADING , POSTFX_DOF = (1U << 6U) , POSTFX_DOF_DEBUG = (1U << 7U) ,
  POSTFX_AUTO_EXPOSURE , POSTFX_EXPOSURE_DEBUG , POSTFX_MOTION_BLUR = (1U << 10U) , POSTFX_MOTION_BLUR_DEBUG ,
  POSTFX_FXAA = (1U << 12U) , POSTFX_FXAA_DEBUG = (1U << 13U) , POSTFX_BANDING = (1U << 14U) , POSTFX_VECTOR_FIELD_DEBUG ,
  POSTFX_STENCIL_DEBUG = (1U << 16U) , POSTFX_BLOOM_DEBUG = (1U << 17U) , POSTFX_FOG = (1U << 18U) , POSTFX_FOG_DEBUG = (1U << 19U) ,
  POSTFX_LUT3D = (1U << 20U) , POSTFX_LUT_VIZ = (1U << 21U)
}
 Bitmask flags for enabling/disabling individual effects. More...
 

Detailed Description

Parameter structs and defaults for uber-shader post-processing effects.

Contains configuration structs for effects that run inside the combined uber-shader pass (Vignette, Grain, Exposure, ChromAbbr, WhiteBalance, ColorGrading, Tonemap, FXAA, Banding, Fog). Effects with their own multi-pass pipeline (Bloom, DoF, AutoExposure, MotionBlur, LUT3D) define their params in their respective fx_*.h headers.

Macro Definition Documentation

◆ DEFAULT_ACTIVE_EFFECTS

#define DEFAULT_ACTIVE_EFFECTS
Value:
((unsigned int)POSTFX_EXPOSURE | (unsigned int)POSTFX_COLOR_GRADING | \
(unsigned int)POSTFX_FXAA)
@ POSTFX_COLOR_GRADING
Definition: pp_params.h:187
@ POSTFX_FXAA
Definition: pp_params.h:198
@ POSTFX_EXPOSURE
Definition: pp_params.h:184

Default mask of active effects.

◆ DEFAULT_BANDING_LEVELS

#define DEFAULT_BANDING_LEVELS   256.0F

8-bit simulation.

◆ DEFAULT_CHROM_ABBR_STRENGTH

#define DEFAULT_CHROM_ABBR_STRENGTH   0.005F

◆ DEFAULT_EXPOSURE

#define DEFAULT_EXPOSURE   1.00F

◆ DEFAULT_FILMIC_BLACK_CLIP

#define DEFAULT_FILMIC_BLACK_CLIP   0.0F

◆ DEFAULT_FILMIC_SHOULDER

#define DEFAULT_FILMIC_SHOULDER   0.0F

◆ DEFAULT_FILMIC_SLOPE

#define DEFAULT_FILMIC_SLOPE   1.0F

◆ DEFAULT_FILMIC_TOE

#define DEFAULT_FILMIC_TOE   0.0F

◆ DEFAULT_FILMIC_WHITE_CLIP

#define DEFAULT_FILMIC_WHITE_CLIP   0.0F

◆ DEFAULT_FOG_COLOR_B

#define DEFAULT_FOG_COLOR_B   0.7F

◆ DEFAULT_FOG_COLOR_G

#define DEFAULT_FOG_COLOR_G   0.6F

◆ DEFAULT_FOG_COLOR_R

#define DEFAULT_FOG_COLOR_R   0.5F

◆ DEFAULT_FOG_DENSITY

#define DEFAULT_FOG_DENSITY   0.0F

◆ DEFAULT_FOG_HEIGHT_FALLOFF

#define DEFAULT_FOG_HEIGHT_FALLOFF   0.1F

◆ DEFAULT_FOG_START

#define DEFAULT_FOG_START   10.0F

◆ DEFAULT_FXAA_EDGE_THRESHOLD

#define DEFAULT_FXAA_EDGE_THRESHOLD   0.125F

◆ DEFAULT_FXAA_EDGE_THRESHOLD_MIN

#define DEFAULT_FXAA_EDGE_THRESHOLD_MIN   0.063F

◆ DEFAULT_FXAA_SUBPIX

#define DEFAULT_FXAA_SUBPIX   0.75F

◆ DEFAULT_GRAIN_HIGHLIGHTS_MIN

#define DEFAULT_GRAIN_HIGHLIGHTS_MIN   0.5F

◆ DEFAULT_GRAIN_INTENSITY

#define DEFAULT_GRAIN_INTENSITY   0.02F

Default film grain strength.

◆ DEFAULT_GRAIN_SHADOWS_MAX

#define DEFAULT_GRAIN_SHADOWS_MAX   0.09F

◆ DEFAULT_GRAIN_TEXEL_SIZE

#define DEFAULT_GRAIN_TEXEL_SIZE   1.0F

◆ DEFAULT_VIGNETTE_INTENSITY

#define DEFAULT_VIGNETTE_INTENSITY   0.8F

Default vignette strength.

◆ DEFAULT_VIGNETTE_ROUNDNESS

#define DEFAULT_VIGNETTE_ROUNDNESS   1.0F

Default vignette shape.

◆ DEFAULT_VIGNETTE_SMOOTHNESS

#define DEFAULT_VIGNETTE_SMOOTHNESS   0.5F

Default vignette falloff.

◆ DEFAULT_WB_TEMP

#define DEFAULT_WB_TEMP   6500.0F

◆ DEFAULT_WB_TINT

#define DEFAULT_WB_TINT   0.0F

Enumeration Type Documentation

◆ BandingMode

Styles of color quantization.

Enumerator
BANDING_MODE_LINEAR 

Standard uniform (Posterization).

BANDING_MODE_DITHERED 

Ordered dithering (Bayer).

BANDING_MODE_PERCEPTUAL 

Gamma-weighted.

BANDING_MODE_CHANNEL 

RGB independent.

BANDING_MODE_LUMINANCE 

Grayscale quantization + Tint.

◆ PostProcessEffect

Bitmask flags for enabling/disabling individual effects.

Enumerator
POSTFX_VIGNETTE 

Vignette overlay.

POSTFX_GRAIN 

Film grain noise.

POSTFX_EXPOSURE 

Manual exposure compensation.

POSTFX_CHROM_ABBR 

Chromatic aberration.

POSTFX_BLOOM 

HDR Bloom.

POSTFX_COLOR_GRADING 

Saturation/Contrast/Gamma adjustment.

POSTFX_DOF 

Depth of Field.

POSTFX_DOF_DEBUG 

Focus visualization.

POSTFX_AUTO_EXPOSURE 

Automatic exposure adaptation.

POSTFX_EXPOSURE_DEBUG 

Exposure histogram visualization.

POSTFX_MOTION_BLUR 

Velocity-based motion blur.

POSTFX_MOTION_BLUR_DEBUG 

Velocity buffer visualization.

POSTFX_FXAA 

Fast Approximate Anti-Aliasing.

POSTFX_FXAA_DEBUG 

Edge detection visualization.

POSTFX_BANDING 

Color banding/quantization.

POSTFX_VECTOR_FIELD_DEBUG 

Vector field velocity visualization.

POSTFX_STENCIL_DEBUG 

Stencil mask visualization.

POSTFX_BLOOM_DEBUG 

Bloom debug view.

POSTFX_FOG 

Atmospheric depth fog.

POSTFX_FOG_DEBUG 

Fog component visualization.

POSTFX_LUT3D 

3D LUT Gamut Mapping.

POSTFX_LUT_VIZ 

3D LUT Lattice visualization.