Skip to main content

Watch Dogs 1 Shader System — Parallellines' Addon Configuration

Source: Discord conversation between Selene (PP2) and Parallellines (2026-07-29 to 2026-09-27). Documents WD1 shader architecture, community context, and technical approach.

Key Facts​

  • WD1 ships full shader source in shaders.dat (Ubisoft included the entire shader code)
  • No BC6H support — WD1 uses DX11 and doesn't support HDR texture compression
  • HDR workaround: RGBM encoding in textures + shader decode (instead of BC6H)
  • Parallellines' mods are WD1-only — shader work cannot be ported to WD2 or WDL
  • Parallellines plans to open-source shaders eventually ("all mods should be open source")
  • Selene has a Blender XBG plugin fork with integrated material editor

Community Context​

  • Mod thief concern: Strong suspicion that zachimpact/Zuhair is an alt of a banned mod thief
  • Parallellines stepped down as moderator (was doing it as a favor,不喜欢 the role)
  • Community trust issues around mod attribution and theft
  • Epic stream man took over moderation after Parallellines stepped down

Shader Addon Configuration​

Parallellines' addonconfig.h — controls which shader addons are enabled during compilation:

Vanilla-Compatible Addons (no adjustments needed)​

// Rain
#define ADDON_FIXRAINALPHA 1 // Fix rain transparency.
#define ADDON_FIXMETHODZERORAIN 1 // Fix NaN rain with auto exposure computation method 0. Requires FIXUNLITEXPOSURE.

// Water
#define ADDON_FIXWATERLIGHTING 1 // Disable fake water shadow attenuation, use proper ambient lighting and fix double waterflow fresnel.
#define ADDON_WATERDEPTHEXP 1 // Smooth water transparency.
#define ADDON_FIXWATERREFLECTION 1 // Fix black spots in water reflection, disable the distant fade hack and disable SSR on the Loop lake.
#define ADDON_WATERPARABOLOIDSSR 1 // Combine paraboloid and screen space reflections for water.

// Post Processing
#define ADDON_FIXNEGATIVECOLORS 1 // Clamp broken colors before tone mapping.
#define ADDON_DITHERING 1 // Fix color banding.
#define ADDON_DEBANDMOTIONBLUR 1 // Jitter motion blur to reduce banding.
#define ADDON_DISABLEBOKEHBOOST 1 // Disable DOF bokeh boost.
#define ADDON_UPDATEFXAA 1 // Use less blurry settings for FXAA.
#define ADDON_UPDATESMAA 1 // Update SMAA to latest version, fix the edge detection pass and use more sensible settings.

// Lighting
#define ADDON_FIXFOGCOLOR 1 // * Fix several color-related issues with fog.
#define ADDON_FIXGLASSLIGHTING 1 // * Fix several issues with glass lighting.
#define ADDON_FIXBLACKTREEREFLECTION 1 // Fix black trees in reflections.
#define ADDON_FIXOCCLUSIONTERM 1 // * Fix several issues with ambient occlusion.
#define ADDON_HORIZONFADE 0 // Use IBL horizon fade for deferred lighting. Same implementation as Legion. May cause edge artifacts.
#define ADDON_REFLECTIONLIGHTINGTWEAK 1 // Use "highcontrast" hack for reflection lighting to make up for the lack of GI.
#define ADDON_AIDENSKINTWEAK 1 // Use Aiden's skin tweak for every character and hair as well.
#define ADDON_ENABLECORNEAAMBIENT 1 // Enable ambient lighting for eye cornea.
#define ADDON_DISABLEFAKEDARKENING 1 // Disable fake car paint darkening.
#define ADDON_DISABLENORMALMASK 1 // Disable masking specular by normal, which fixes dark spots on cars and glass.
#define ADDON_UNLITTWEAKS 1 // Force unlit AffectedByExposure = 1 and AffectedByAutoExposure = 1, and disable FadeOutParams.
#define ADDON_DISABLERIMLIGHT 1 // Disable fake character and cloth rim lighting. Too much of a hassle to disable from materials.
#define ADDON_DISABLEWETREFLECTANCE 1 // Disable WetReflectance parameter. Too much of a hassle to disable from materials.
#define ADDON_FIXGLASSFRESNEL 1 // * Always use 4% reflectance for glass. Too much of a hassle to fix in materials.
#define ADDON_OVERRIDELODFRESNEL 1 // * Allow MaskBlueChannelMode to override LOD building reflectance.
#define ADDON_DISABLEHAIRNOISE 1 // Remove hair noise.
#define ADDON_CUBICLIGHTPROBES 1 // Use cubic filtering for light probes. May cause light leaking.
#define ADDON_FIXLIGHTCOOKIES 1 // Do not sample mipmaps for projected light textures. Fixes aliased edges around lit objects.

// Specular Mask Toggles
#define ADDON_DISABLECARMASK 1 // * Disable specular masking on cars.
#define ADDON_DISABLEGLASSDUSTMASK 1 // Disable specular masking on glass by dust.
#define ADDON_CUSTOMVEGETATIONMASK 1 // Add a bit of specular to vegetation.
#define ADDON_CUSTOMREALTREEMASK 1 // Reduce realtree specular intensity.

// SSAO
#define ADDON_FIXAONANS 1 // Fix NaN values on e.g. fences with MHBAO.
#define ADDON_FIXAONORMALS 1 // Use more accurate reconstructed normals, fixes black dots and overocclusion on vegetation.
#define ADDON_FIXAODOWNSAMPLE 1 // Use nearest depth and normal downsampling.
#define ADDON_XEGTAO 1 // Replace MHBAO with XeGTAO. Requires FIXAONORMALS and FIXAODOWNSAMPLE.

// Miscellaneous
#define ADDON_FIXLUMCONSTANTS 1 // Use BT.709 luminance constants everywhere.
#define ADDON_FIXSSNEXUSLINES 1 // Fix invisible nexuslines when supersampling is enabled.

Addons Requiring Minor Adjustments​

// Post processing
#define ADDON_NEWBLOOM 1 // * Complete bloom reimplementation. Recommended to use iDownsamplePower = 1 in bloom.lib for better quality.

// Lighting
#define ADDON_BOTTOMREFLECTION 1 // * Enable bottom paraboloid reflection. Requires enabling ParaboloidReflectionRenderDownward in defaultrenderconfig.xml.

// Shadows
#define ADDON_CHSS 1 // Contact hardening shadows (aka PCSS) and improved filtering for perspective lights.
#define ADDON_SSS 1 // Screen space shadows.

Addons Requiring Significant Adjustments​

// Rain
#define ADDON_NEWRAINLIGHTING 1 // Custom rain lighting using GI.

// Post processing
#define ADDON_HDRLUT 1 // Use PQ (ST2084) encoded LUTs. Requires FIXNEGATIVECOLORS.

// Lighting
#define ADDON_PBREXTENSION 1 // * Overhaul BRDFs and add metalness support. Requires FIXGLASSLIGHTING and FIXOCCLUSIONTERM.
#define ADDON_BURLEYDIFFUSE 0 // Implement Burley diffuse BRDF (Frostbite version). Requires PBREXTENSION, do not use with ORENNAYARDIFFUSE.
#define ADDON_ORENNAYARDIFFUSE 1 // Implement Oren-Nayar diffuse BRDF (EON version). Requires PBREXTENSION, do not use with BURLEYDIFFUSE.
#define ADDON_DISABLEGLOSSMASK 1 // Disable global reflection masking by gloss. Requires BOTTOMREFLECTION.
#define ADDON_FIXWHITEPOINT 0 // * Fix white point setting affecting the brightness of several materials and effects.

// Specular Mask Toggles
#define ADDON_DISABLEGENERICMASK 1 // * Disable specular masking on most generic objects by default.

// Sky
#define ADDON_HEMISPHERE 1 // Turn cloud ring into a hemisphere.
#define ADDON_ALIGNSKYWITHSUN 1 // Align center of cloud texture with the sun. Requires HEMISPHERE.
#define ADDON_HDRSKY 1 // Use RGBM encoded cloud textures. Requires HEMISPHERE.
#define ADDON_CUSTOMCLOUDSSS 1 // * Custom subsurface scattering for clouds.

Experimental Addons​

// Lighting
#define ADDON_INVERSESQUAREFALLOFF 0 // Use alternative inverse square light falloff function. Looks good in gameplay, but ruins all cutscene spotlights, so they'd need to be reauthored.

Technical Notes​

PBREXTENSION​

  • Adds GGX specular
  • Completely overhauls water BRDF
  • Ensures energy conservation between diffuse and specular when possible
  • Hair IBL is always disabled (doesn't look good without anisotropy)
  • Half lambert is removed from characters and skin, alternative function used for lights
  • Metalness has 5 bits of precision and may not work correctly with decals
  • No pregenerated mips for filtered importance sampling — gaussian prefilter used instead

HDR Sky Workflow​

  • WD doesn't support BC6H (HDR texture compression)
  • Parallellines encodes textures with RGBM and decodes in shaders
  • HDR sky requires HEMISPHERE addon to be enabled first

CUSTOMCLOUDSSS​

  • Made specifically for "The Fall of Windy City 2"
  • Won't work elsewhere without code adjustments
  • Parallellines' Maniapark profile: https://maniapark.com/usershow/2054
  • WD1 shader source: shaders.dat (included with game)
  • Selene's Blender XBG plugin fork with material editor (in development)