Skip to content
This repository has been archived by the owner on Jul 14, 2022. It is now read-only.

Derpius/gmod-dxr

Repository files navigation

Garry's Mod DXR On

Binary module that renders the GMod environment almost entirely directly using DirectX Raytracing via NVIDIA's Falcor framework.

Uses PNG textures placed in GarrysMod/bin/win64/Data/Overrides/materials with matching paths to the relative ones in an entity's VMT file (currently $basetexture and $bumpmap), and will hopefully eventually load texture data on the fly from mounted VPKs, GMAs, and filesystem addons (with the overrides folder being used for selective texture replacement, which would mainly be used for PBR textures like occlusion, metalness, and roughness).

The iterative path tracer currently handles diffuse and specular lobes of the Falcor BSDF, as well as direct lighting using analytic lights and emissives and envmap sampling with MIS (multiple importance sampling).

The accumulator and tonemapper shaders are modified versions of those found in Falcor's accumulation and tonemapping render passes, using compensated accumulation, and ACES tonemapping with auto exposure and toggleable white balance adjustment.

Example Render
Example Render

PBR textures are made by me using Quixel Mixer and GIMP, you can get them here.

Map surfaces will be broken until I implement loading BSPs myself, as GMod's SurfaceInfo classes are missing key faces (although unlikely, this may be due to some SurfaceInfos being present on entities other than world, which I have yet to test).