This release fixes a bug that caused corrupted materials on voxel variants. I also slipped in some big performance improvements in mirror scenarios, and some smaller smoke performance improvements. It otherwise includes the rest of the 0.4 fixes and updates, like smoke, speed-ups, geometry intrusions, etc.
This image doesn't have much to do with the new work, I just liked seeing the indirect moonlight bouncing off of the lizard trooper
How to install/run:
- Purchase and install Duke Nukem 3D: 20th Anniversary World Tour (or otherwise have it installed on your computer - you need a commercial version of Duke 3D to use with the Duke-RT engine fork)
- Download the .zip file in the assets section from this release
- Unzip Duke-RT to your computer
- Run launch-duke-rt.cmd in that folder
- Give it the path to your Duke 3D install (if it doesn't find it automatically)
- Let it grab the normal maps from Duke World Tour (if that's your Duke version, will still work without them)
- Let it open your browser to grab the voxels
- Download the voxels from that site
- Go back to the Duke-RT console window and hit enter
- Let it unpack the voxels into its own directory for you
- Proceed into the game
- Always run via launch-duke-rt.cmd in the future
New stuff in 0.4:
- Fixed random insertion of a red frame for animated voxel sequences
- Fixed overlapping Build geometry that caused indirect ray occlusion (anomalous shadows)
- Can still see them briefly during disocclusions
- Mostly fixes E5L1 non-euclidean circular area!
- Fixed issue where actors from overlapping but separate localities would render as non-interactive apparitions
- Fixed stale actors being left behind as unmoving ghosts when passing out of view in some specific cases (E1L1 lizard troopers in the theater that would leave ghosts behind at hall doors)
- Fixed issue where voxel actors would flicker out of existence for a single frame while a voxel variant loaded (really evident on switches)
- Fixed black screen on transition to maps
- Made voxel actors calculate normals at the whole voxel level based on neighbor occupancy for more pixel art visual effect
- Smoke tweaks
- Updated physics sim to get better curling/vorticity effects
- Added artistic smoke rendering styles, including illustrative bands, painterly shading, ink-like contours, and radiance
- Introduced pulsed emission envelopes for distinct, chunky smoke billows
- Tuned fire-driven smoke into a pinched, wavering column with more varied billows
- Improved blending to eliminate visible froxel-grid aliasing in illustrative and painterly styles
- Lighting pass
- Brightened up E1L2 opening
- Brightened up parts of E1L3 and added a light to the chapel
- Made E2L3 elevator foyer brighter
- Removed REBLUR from denoiser options, as there might be issue with the inputs I'm feeding it, resulting in extreme graininess
- Now building map chunk identity more directly from engine for better caching and reuse
- Stripped material payload CPU waits for new voxel variants out of the hot path
- Added a whole smoke system with grid-based densitites, temperatures, buoyancy, albedo, etc.
- Smoke includes a very simplistic fluid sim that will cause smoke to migrate based on heat and density over time
- World-space radiance pooling that lets smoke take light from all sources
- Temporal accumulation for radiance affecting smoke
- Added a bunch of rules for smoke triggered by things like fire, rocket projectiles, explosions, etc
- Build smoke quality profiles that map to amount of work done per frame
- Gunshot muzzle smoke and impact smoke generate analytic carriers that get simplified lighting and don't exhaust world smoke
- World smoke gets compacted on look-away to avoid permanent work scaling
- Added cool looking smoke all over E1L1
- Added a map smoke editing system, so I could start adding atmospheric smoke emitters to maps
What's coming next:
- More smoke and lighting tweaks across the three main episodes
- Water and other fluids
