# UNGODLY NVR — an enhanced preset for New Vegas Reloaded 4.4.0

**Author:** StixsworldHD (StixsmasterHD4k)
**Version:** 1.1.0
**Contains:** New Vegas Reloaded 4.4.0 (unmodified) + the Ungodly preset, pre-installed.

---

## About ray tracing

There is none, because there is none to remove.

I checked before tuning anything: NVR 4.4.0 ships **no ray-traced or path-traced
code path of any kind**. There is no RT shader in `Shaders/NewVegasReloaded/`, no
RT section in the config schema, and no RT symbol anywhere in
`NewVegasReloaded.dll`. Nothing in this preset depends on RT hardware, RTGI
injectors, or a ReShade add-on.

Everything here is classical real-time rendering:

* **Shadows** — cascaded shadow maps (EVSM4, 32-bit, 2048 cascades) plus a
  depth-buffer screen-space contact-shadow pass.
* **Ambient occlusion** — a 5-tap blue-noise hemisphere SSAO with an edge-aware
  denoise.
* **Lighting** — a Cook-Torrance/GGX specular term evaluated in the object and
  terrain shaders, plus a screen-space sky-tint and fresnel pass.
* **Atmosphere** — analytic height and distance fog, screen-space god rays.
* **Surfaces** — parallax occlusion mapping on objects and terrain, ortho-map
  driven puddles and snow coverage.

That is a *raster* pipeline running hard, not a ray tracer.

---

## Install (Mod Organizer 2)

1. Install **xNVSE** if you have not already. NVR is an NVSE plugin and will not
   load without it.
2. Drag this archive into the MO2 **Downloads** pane, then double-click it to
   install.
3. Tick the mod in the left pane. Place it **below** any other graphics mod that
   also writes to `nvse/Plugins/`.
4. Launch through MO2 via **`nvse_loader.exe`** — not the vanilla launcher.

Nothing else to do. The preset is already the live config
(`nvse/Plugins/NewVegasReloaded.dll.toml`).

### Requirements in `Fallout.ini`

The water shader needs both of these, or water renders glassy and see-through:

```ini
bUseWaterReflections=1
bUseWaterRefractions=1
```

If your INI came from Viva New Vegas or the Performance Guide you already have
them.

### Strongly recommended first

NVR is heavy. Run [WallSogB's Fallout New Vegas Performance
Guide](https://performance.moddinglinked.com/falloutnv.html) before you judge the
frame rate. In particular install **DXVK** and set, in `dxvk.conf`:

```ini
d3d9.floatEmulation = strict
```

Without that you get a black diagonal seam across the sky in shadowed areas.
It is a DXVK bug, not a preset bug.

---

## Using the in-game menu

| Action | Key |
|---|---|
| Open / close menu | `O` |
| Navigate | Arrow keys |
| Change value | `Numpad +` / `Numpad -` |
| Type a value | `Numpad Enter`, then numpad digits |
| Page through options | `PgUp` / `PgDn` |
| **Save to disk** | `Enter` |
| Screenshot, no HUD | `F11` → `<game root>/Screenshots` |

Changes are live but revert on restart unless you press `Enter`.

No numpad? Replace the `[_Main.Menu.Keys]` block in the TOML with the alternate
set from the NVR wiki FAQ — it maps `E` and `X` to increment/decrement.

---

## The three variants

`Docs/UngodlyNVR/Presets/` holds all three as complete, ready files. To switch,
copy one over `nvse/Plugins/NewVegasReloaded.dll.toml` and rename it to that
exact filename.

| Variant | What it is |
|---|---|
| **Ungodly-Ultra** | Installed and active. Everything at maximum: 32-bit EVSM4 shadow maps, 2048 cascades, 2048 ortho map, 1024 interior shadow cubemaps, 12 shadow-casting point lights, night point-light shadows, high-quality terrain parallax to 4096 units, MSAA + SMAA + sharpening. |
| **Ungodly-Balanced** | Same grade and same atmosphere, roughly 25–35% cheaper on the passes that actually cost: 16-bit 1536 cascades, no night point shadows, 512 cubemaps, 8 point lights, SMAA off, 6 bloom passes instead of 8. |
| **Ungodly-Purist** | Ultra lighting and shadows, with all camera-simulation post removed — no chromatic aberration, no film grain, no vignette, no dirt lens, no depth of field, and a neutral grade with no split tone. |

`CHANGES-ULTRA.md` in this folder lists every one of the 285 settings that
differ from stock, with the stock value beside it.

---

## The five knobs worth knowing

Everything is a one-line edit or a couple of taps in the `O` menu.

**1. `[_Shaders.PBR.Status] Enabled`** — this is the single biggest change to how
surfaces look, and the first thing to turn off if a texture pack renders oddly
shiny or flat. It adds a physically-based specular term to object shaders.

**2. `[_Shaders.Cinema.Status] Enabled`** — chromatic aberration, film grain and
vignette. It is on, but `AspectRatio` is set to `1.0`, so there are **no black
bars**. If you dislike lens effects, set `Enabled = false` (or just use Purist).

**3. `[_Main.Main.Misc] ForceMSAA`** — `true` here. It fixes the black squares
that appear around trees and tumbleweeds. **Set it `false` if you use ReShade
depth-buffer effects or ENB**, both of which need MSAA off to read depth.

**4. `[_Shaders.DepthOfField.FirstPersonView] Enabled`** — `false`, so gameplay
stays sharp. The values under it are already tuned for a subtle cinematic look
with distance blur to hide LOD; flip it to `true` whenever you want it.

**5. `[_Shaders.VolumetricFog]` and `[_Shaders.GodRays]`** — these two are the
only effects that can wash the sky toward white if pushed. I raised them, but
conservatively. If your weather mod is unusually bright and the sky looks blown,
drop `VolumetricFog.Main.Amount` and `GodRays.Main.RayIntensity` first.

---

## Night visibility (what changed in 1.1.0)

Version 1.0.0 crushed outdoor nights to near-black. Fixed. Three things were
stacking, and the first one is a genuine trap in the plugin.

**The auto-exposure was switched off at night.** `Exposure.fx.hlsl` ends on:

```hlsl
return delinearize(float4(lerp(color.rgb, color.rgb / lumaDiff, maxBrightness), 1));
```

`MaxBrightness` is the **blend weight of the correction**, not the "brightness
threshold above which the screen will be darkened" that the wiki describes.
`MinBrightness` is the target average luma the correction aims for. Stock ships
`[_Shaders.Exposure.Night] MaxBrightness = 0.0`, which multiplies the entire
correction by zero — so at night NVR does no exposure compensation whatsoever,
and whatever the tonemapper hands over is what you get. This preset now runs
`MinBrightness = 0.16`, `MaxBrightness = 0.6`:

| Average scene luma | Before | Now |
|---|---|---|
| 0.01 (moonless) | 1.00× | 2.66× |
| 0.04 | 1.00× | 1.83× |
| 0.12 | 1.00× | 1.17× |
| 0.16 (target) | 1.00× | 1.00× |
| 0.25 (lit street) | 1.00× | 0.81× |

The lift is strongest where it's darkest and cancels itself once the scene
reaches the target, so already-lit areas and neon are left alone.

**The grading stages were crushing shadows.** ImageAdjust applies contrast as
`(c - 0.5) * Contrast + 0.5`. At night nearly every pixel sits below 0.5, so the
`1.05` in 1.0.0 dragged the entire frame down. It's `0.99` now, with `Brightness`
at `1.18` and the dark-tone multipliers raised — those are taken to the power 2.2
in the shader, so `DarkColorB = 1.30` is about a 1.75× gain on shadows, with blue
kept highest to hold the moonlit cast. `Tonemapping.Main.WeatherContrast` is back
at `0.0`; the author's own comment warns it causes black crush, and it does.

**Everything that subtracts light was pushed at once.** Night ambient scale is up
(`PBR.Night` and `Terrain.Night` `AmbientScale` 1.05 → 1.45), shadow darkness and
the AO floor are backed off, the vignette is much lighter and starts further out,
and the night dirt lens is down from `0.3` to `0.1` — that was what threw the soft
blobs across the lower half of your screenshot.

### Still too dark? Three numbers, in order

1. `[_Shaders.Exposure.Night] MaxBrightness` — `0.6`, ceiling `1.0`. Biggest lever.
2. `[_Shaders.Exposure.Night] MinBrightness` — `0.16`. Raise toward `0.25` to aim
   at a brighter target.
3. `[_Shaders.Tonemapping.Night] Exposure` — `1.95`. Pre-tonemap multiplier.

All three are live in the `O` menu, so you can sit in Primm at midnight and dial
them with `Numpad +` until it reads right, then press `Enter` to save.

If interiors are also dark, the equivalents are
`[_Shaders.Exposure.Interiors] MaxBrightness` (now `0.42`) and
`[_Shaders.Tonemapping.Interiors] Exposure` (now `1.4`).

Worth ruling out first: your in-game brightness slider, and whether your weather
mod ships its own night lighting values.

---

## One thing I fixed while I was in there

`WetWorld` — the puddle and rain-ripple system — ships effectively dead. Its
`Amount`, `Increase` and `Decrease` are all `0.0` in the stock config, so puddles
never form and never dry.

Turning those on is only half of it. Reading `Effects/WetWorld.fx.hlsl`, the
puddle specular is evaluated as:

```hlsl
modifiedBRDF(lerp(TESR_DebugVar.x * 0.00015, TESR_DebugVar.y * 0.0001, puddlemask), ...)
```

Those are `DebugVar1` and `DebugVar2` from `[_Main.Develop.Main]`, both `0.0` by
default. A GGX distribution with `alpha = 0` has a numerator of `alpha²`, so the
whole specular term evaluates to zero — puddles render as darkened ground with no
highlight whatsoever.

The line immediately below it in the source is the author's own commented
reference: `// float roughness = lerp(0.00015, 0.00007, puddlemask);`. Setting
`DebugVar1 = 1.0` and `DebugVar2 = 0.7` reproduces that curve exactly. That is
what this preset does, and it is why rain leaves real reflective water on the
ground here.

**Caveat, since these are shared globals:** `DebugVar2` is also used as a divisor
in `Flashlight.fx.hlsl`, and `DebugVar1`–`4` are read by the Skin shaders. Both
of those are disabled in this preset, so there is no conflict. If you enable the
**Flashlight** or **Skin** shader, re-check its brightness.

---

## Troubleshooting

| Symptom | Cause |
|---|---|
| Crash on startup | Enhanced Camera with `bFirstPersonShadows=1`. Set it to `0`. Also confirm `bModifyDirectXBehavior = 1` in NVTF. |
| Black diagonal seam in the sky | DXVK. Set `d3d9.floatEmulation = strict` in `dxvk.conf`. |
| Black main menu | Set `[_Main.Main.Misc] ReplaceIntro = false` — it already is here, so if you see this, something else overwrote the config. |
| Water is glassy / fully transparent | Reflections and refractions are off in `Fallout.ini`. See above. |
| Black squares around trees | MSAA is off. `ForceMSAA` is `true` here; if you set it false, enable MSAA in the launcher instead. |
| Depth buffer looks the wrong size | Bad values in `Fallout.ini`. Replace with the Viva New Vegas INI. |
| Player shadow has no head | Enhanced Camera's headless body. Set `bEnableHeadFirstPerson=1` in its config. |
| Nights still too dark | Raise `[_Shaders.Exposure.Night] MaxBrightness`, then `MinBrightness`, then `[_Shaders.Tonemapping.Night] Exposure`. See the night section above. |
| Nights now too bright / washed out | Lower `[_Shaders.Exposure.Night] MaxBrightness` toward `0.35`. |

---

## Credits

New Vegas Reloaded is by the TES Reloaded team. This package contains version
4.4.0 unmodified — the DLL, shaders, textures and defaults file are exactly as
distributed. The only thing I added is the tuned
`NewVegasReloaded.dll.toml`, the alternate presets, and this documentation.

Preset and documentation: **StixsworldHD (StixsmasterHD4k)**
