First post, by akula65

User metadata
Rank Oldbie

Announcement Trailer: https://www.youtube.com/watch?v=Q970jljMTNk
Release Trailer: https://www.youtube.com/watch?v=wCGnQoakOWc
GitHub: https://github.com/BredaUniversityGames/DXX-Raytracer

DXX Raytracer […]
Show full quote

DXX Raytracer

DXX Raytracer is a fork of the DXX Retro project for Windows. DXX Raytracer uses modern raytracing techniques to update the graphics of the beloved retro game known as Descent.


Download dxx_raytracer.zip here.

Extract the zip file to a location of your choosing, and just run descent1.exe to play! This build of the game uses the shareware assets. If you have bought the original version of Descent 1995, you can replace the descent.pig and descent.hog files with your versions to play the whole game.


Physically-based rendering
Soft shadows
Pathtraced global illumination
Temporal anti-aliasing
Motion blur
Post-processing (Vignette, tonemap, etc.)

Community discord

You can join the community discord to make suggestions, report bugs, or just to hang around: https://discord.gg/vaEH5ryjvc


SHIFT + ALT + F1: Open debug menus, more on those below
SHIFT + ALT + F2: Toggle depth testing for debug lines
SHIFT + ALT + F: Toggle free camera option
F1: Menu with important keybindings from the game
ALT + F2: Save your game
ALT + F3: Load a save game

Debug Menus

Render Settings: All kinds of graphics settings and debug utility for rendering
GPU Profiler: A profiling tool to see how much time individual render passes took on the GPU
Material Editor: Adjust material properties from any level
Polymodel Viewer: Allows you to view a polymodel in the current scene.
Dynamic Lights: Allows for tweaking of dynamic lights, like weapons, explosions, and muzzle flashes.
Light Explorer: Allows for tweaking of individual lights, and adds ability to debug view lights in the level.


Sam Boots - Lead Programmer/Graphics Programmer
Justin Kujawa - Graphics Programmer
Lyubomir Kostadinov - Graphics Programmer
Daniël Cornelisse - Graphics Programmer
Stan Vogels - Engine Programmer
Wessel Frijters - Engine Programmer
Kylian Dekker - Engine Programmer/Audio Programmer
Lily Haverlag - Engine Programmer

Reply 1 of 3, by akula65

User metadata
Rank Oldbie

Version 1.1.0 Released: https://github.com/BredaUniversityGames/DXX-R … tracer/releases

Version 1.1.0 […]
Show full quote

Version 1.1.0


Yes, AMD FSR 2.2 is now fully integrated into the DXX-Raytracer and supports 4 different upscaling modes (as well as no upscaling). This should especially help the lower end graphics cards, and I am very curious to see how the performance looks on those. Please note that our own TAA and AMD FSR 2.2 exclude each other (because they do similar work, except TAA does not do upscaling). So if you choose to use AMD FSR 2.2 with no upscaling selected, you might as well use our own TAA instead, since its cheaper and gives you very similar results. The upscaling modes follow the recommendations given by AMD:

No Upscaling: 1.0x - Output resolution is the same as the render resolution
Quality: 1.5x upscaling
Balanced: 1.7x upscaling
Performance: 2.0x upscaling
Ultra performance: 3.0x upscaling

Texture compression

I think some people with high-res texture packs will definitely like this one. Texture compression with DDS files is now supported, meaning that your GPU VRAM will not be eaten up as quickly as before. To use texture compression, simply convert your textures from PNG to DDS. The game will first try to load the DDS file, and will fall back to the PNG file if no DDS file was found.

NVIDIA driver related crash

In December 2023 we received the first report of this crash in our GitHub issues, but over time it turned out that way more people are affected by this than initially thought. The issue was fixed and NVIDIA users with latest drivers can enjoy the path tracing goodness once more.

DXR Inline Raytracing

This is more relevant to devs since the average end user won't even see any of this, but all of the raytracing shaders have been rewritten to use the DXR Inline Raytracing API instead of DispatchRays with its shader tables. Inline raytracing makes the raytracing process less error prone and is easier to debug. The code can still be built with DispatchRays and shader tables, but the build we ship from now on will use DXR Inline Raytracing instead.

Full changelist

Added AMD FSR 2.2
Added DXR Inline Raytracing
Added DDS texture compression (Credit to Jeffrey Adams for the original implementation)
Added a python script to convert PNGs to DDS files
Added VSync toggle to the raytracing options menu
Added Upscaling & AA setting to the raytracing options menu
Added FSR2 upscaling mode to the raytracing options menu
Added FSR2 reactive mask flag for materials that write into the FSR2 reactive mask to reduce artifacts*
Added FSR2 reactive mask debug render mode
Added support for output independent render resolution in the render backend
Added output & render resolution to the render settings debug menu
Added FPS & frame time to the render settings debug menu, which are averaged over one second
Added missing dxcompiler.dll and dxil.dll files to the repository (relevant for devs)
Added toggle for inline raytracing/dispatchrays in assets/shaders/include_shared/shared_common.hlsl.h (relevant for devs)
Changed maximum FOV from 90 to 120
Changed triple buffering to double buffering to reduce input lag if GPU bound
Changed hard cap for FPS from 200 to 999
Changed some of the raytracing option names to be easier to understand
Fixed crash related to newer NVIDIA drivers
Fixed normals and tangents on rotated texture overlays (Credit to Jeffrey Adams for fixing this)
Fixed level geometry sometimes being rotated incorrectly (Credit to kevin/klmcdorm for fixing this)
Removed the path tracing reference mode

To create DDS textures: Download NVIDIA's https://developer.nvidia.com/gpu-accelerated- … ure-compression to compress the textures. We have prepared a script for you to convert a batch of textures for you to the correct format and settings. You can run the python script in a command line python PNGToDDS.py with a path to a directory to generate an nvtt file. That file can then be executed with nvtt_export --batch ".nvtt". That will generate DDS files for all PNG files in that directory that follow our naming conventions (_basecolor.png, _normal.png, _metallic.png, _roughness.png, and _emissive.png) and use the correct settings for each of these types. Make sure you generate DDS textures with mips.

*FSR2 reactive mask flag: Materials that are part of a texture animation or emit light should be marked with the new flag in the material editor, called FSR2 reactive mask. This is so that materials that do not write to the depth buffer or do not have motion vectors applied to them can be treated differently for the upscaling, reducing artifacts significantly. If you adjust the materials/textures, make sure that for these types of materials you use that flag.

Reply 2 of 3, by MrFlibble

User metadata
Rank Oldbie

Someone made a gameplay video, and it actually does not look that bad!

Very odd, but not bad.

DOS Games Archive | Free open source games | RGB Classic Games

Reply 3 of 3, by akula65

User metadata
Rank Oldbie

Version 1.2.0 released: https://github.com/BredaUniversityGames/DXX-R … ases/tag/v1.2.0

Version 1.2.0 Latest @SamBoots SamBoots released this 08 Jun 20:16 v1.2.0 […]
Show full quote

Version 1.2.0 Latest
@SamBoots SamBoots released this 08 Jun 20:16

Fixed texture mod loading

The previous build required you to write the texture path without the extension for material (.mat) files. In the new build it is now accounted for and will correctly load the texture files regardless of the .png or .dds file description.
In addition, even if a material file has marked a texture as texture.png, it is still able to load the .dds version of that texture if it can find one. So modifications on material files to support .dds is not required.

Dynamic texture loading

The big new feature of this build, you load in textures dynamically when you need them in a level. This reduces the overall VRAM usage which helps a wider selection of graphic cards with lower VRAM while also enabling them to use high-resolution texture packs. Load times between levels have slightly increased since the game will now load the required textures for each level instead of loading all of them on startup.

Full changelist

Added dynamic texture loading
Added more light on textures meant to be lights
Fix texture mod loading
Fix issue related to cloaked ships showing up as green instead of black
Fix issue with compressed texture with less then 8 bits per pixel
Fix automap aspect ratio


Thank you @Lehm2000 for:

Adding dynamic texture loading #24
Adding more light on textures meant to be lights #25
Fix texture mod loading #23
Fix issue related to cloaked ships showing up as green instead of black #19
Fix issue with compressed texture with less then 8 bits per pixel #18

Thank you @jstanley0 for:

Fix automap aspect ratio #17