What's new in TDM 2.06
See the roadmap on our bugtracker.
The Dark Mod 2.06 is a major step forward!
It is the first TDM release to offer a native 64-bit build with EFX sound support for all audio OpenAL hardware.
It is also the first TDM release to offer true Multi-Core support via patches from Cabalistic's VR branch.
Another first? This is the first TDM release to offer Video Codec support other than ROQ via FFMPEG.
A substantial amount of work was done to replace legacy OpenGL methods with their equivalents in modern OpenGL.
The Mission browsing experience via smooth Scrolling GUI Menus.
GUI scaling menu options exist now with a visual preview area.
Some initial support for Security Cameras has been implemented.
Finally, Duzenko and Stgatilov have implemented an experimental Soft Shadows option
which has some distance based softening and anisotropic sampling correction!!!
(Some prior Soft Shadow research and implementation borrowed or approximated
from SteveL's old Soft Shadow code for 2.04 era development builds.)
Cvars:
- com_smp 1: allows the frontend and backend to run on different threads. same as the multi-core enhancement option in the GUI
- com_fixedTic 1: uncapped FPS
- r_useGLSL 1: Enables the GLSL backend. Is automatically enabled when enabling Soft Shadows
- r_useFBO 1: Enables Frame Buffer Objects. Uses less fillrate and allows for new rendering options
- r_fboSharedDepth 1: Read and Write to the Depth buffer in a feedback loop setup. Offers a big performance boost for Intel GPU's
- r_fboSharedColor 1: Read and Write to the Color buffer in a feedback loop setup. Offers a big performance boost for Intel GPU's (do not use on Nvidia).
- r_fboResolution: Multiplies your native resolution times your input value. 2 means double resolution. Works like SSAA. Very high performance cost.
- r_fboColorBits: Set either 16 or 32 bit color
- r_useMapBufferRange 1: Improves VBO performance. Some render artifacts if you enable this with com_smp and lightgem interleave.
- r_useBfgPortalCulling 1: AnonReclaimer's port of culling code from Doom 3 BFG. Improves cache behavior and is meant to be paired with com_smp and r_useMapBufferRange.
- r_cinematic_legacyRoq 1: Decode ROQ videos with old Doom 3 code rather than FFMPEG. It may improve performance for some users.
- r_softshadowsradius: Determines how large the light center is for light sources. Larger values soften shadows more.
- r_softshadowsquality: Determines how many gradients for shadows. Larger values produce smoother blending at more performance cost.
- r_shadowPolygonFactor: Set to 1 to reduce light leak artifacts in Shadows.
- r_nvidiaOverride 1: forces r_useFBO if you have nvidia hardware and soft shadows enabled
Toggling Creep!
You can now setup a key bind for toggling creep.
To use you must define a toggle in Darkmod.cfg
bind "<preferred key>" "toggle tdm_toggle_creep 0 1"
replace <preferred key> with whatever key you wish.
If you want to use CTRL, you will need to remove:
bind "CTRL" "_button5"
Old TDM Look
If you have older hardware that doesn't work well with GLSL or just wish to have things look as they did in TDM 2.05 simply set these cvar values:
- r_nvidiaOverride 0
- r_softShadowsQuality 0
- r_useFBO 0
- r_useGLSL 0
Experimental Soft Shadows, Anti-Aliasing, FBO and You.
The current Soft Shadows method has some rendering bugs (flickering artifacts on noSelfShadows objects) for some hardware vendors (Nvidia is the main one) when Frame Buffer Objects are not used (r_useFBO 0).
For this reason the r_nvidiaOverride cvar forces r_useFBO on when Soft Shadows are enabled and the vendor is Nvidia.
However, enabling r_useFBO completely disables MSAA.
You can use resolution scaling (r_fboResolution) with r_useFBO (see workaround 3 below).
Here are the workarounds for this issue:
- 1) Increase resolution to where AA is not needed
- 2) Use Resolution Scaling (DSR) in your video driver and set TDM resolution higher than your native resolution
- 3) Use in-game resolution scaling r_useFBO 1 and r_fboResolution 1.25 (or higher)
Note: when r_useFBO is enabled along with r_nvidiaOverride, the AA settings in the GUI are converted to r_fboResolution scaling values to approximate SSAA. Not every setting will be ideal for every monitor resolution so if you wish to tweak this disable r_nvidiaOverride and set r_fboResolution to your preferred value ( 1.25, 1.5, 1.75, and 2.0 are sweet spots for resolution scaling). If you use this mode, you may see some skyboxes with bright artifacts. This only affects a few missions that use the Portal Sky feature. r_useFBO will also cause glass or transparent materials to render strange discontinuities. They are generally not easy to see but may annoy you.
- 4) Disable in-game AA and set SSAA in your driver settings also set r_useFBO 1.
- 5) Disable in-game AA, set FXAA, SMAA or MLAA in your driver settings also set r_useFBO 1. (best performance)
TDM 2.07 (SVN unstable) currently has MSAA support with FBO so much of the above is already resolved.
TDM 2.06 Change List
Coding
- Greebo and stgatilov merged 64-bit support from the Dhewm3 branch
- Cabalistic, duzenko and stgatilov added initial Multi-Core Support partly ported from Doom 3 BFG
- Cabalistic moved the LightGem into its own dedicated session for better threading support
- Greebo and Stgatilov added FFMPEG video playback support
- Blue_Pill, duzenko, stgatilov, and grayman further improved uncapped FPS support
- stgatilov added SIMD support to Linux and x64
- stgatilov optimized idClip::Translation
- duzenko merged Mh Vertex Buffer Object "MapBufferRange" optimization
- AnonReclaimer added support for Doom 3 BFG style culling: r_useBfgPortalCulling
- duzenko replaced all legacy (pre 2.0) OpenGL with modern equivalents
- duzenko optimized some of the loops in the render backend
- stgatilov converted 90-bit FPU math to modern 32-bit or 64-bit optimized floats and fix precision issues
- stgatilov and Greebo added support for C++11
- nbohr1more and Tels increased the "active contacts" physics limit to 128
Greebo, stgatilov and duzenko removed legacy library dependencies like Boost and reorganized the code so that the DLL just has external libraries like FFMPEG whereas the executable now contains the Game code exclusively
AI
- grayman added code support for AI sleeping and waking in chairs
Graphics
- duzenko, Stgatilov and SteveL added initial support for Soft Shadows
- duzenko GLSL backend based loosely on Pat Raynor's Doom 3 branch
- duzenko and SteveL added initial support for Frame Buffer Objects
- duzenko moved the Postprocess "HDR-Lite" shader setup to the backend
- duzenko improved the GLSL AmbientCubicLight to use industry standard "Irradiance cubemap"
- duznko new "makeIrradiance" material keyword to convert standard skybox to Irradiance.
- grayman and duzenko improved security camera rendering
- nbohr1more shadows no longer pulse and flicker when holding a light in noclip mode
- duzenko GUI text now renders when using the "Simple" texture based ambient
- duzenko ambient specular is now oriented towards the sky like to match the diffuse ambient shading
Assets
- Rich_is_Bored supplied an improved CubicLight lamp texture
- Arcturus new Horse animations
- Arcturus new AI sleeping in chairs animations
- Dragofer's Stagecoach models
- Epifire's additional Steampunk objects
- Springheel's new architectural modules
- Goldwell fixed some of Airship Ballet's chest prefabs
- Springheel improved splash effects
GUIs
- Durandall's scrolling mission lists
- Springheel's improved menu screen textures
- Obsttorte and Tels support for GUI scaling (new menu option)
- AluminumHaste's new Splash Screen images
- AluminumHaste added an FOV slider
- grayman reformatted the Mission Statistics page
Gameplay
- grayman and duzenko did significant work to improve the security camera system
- grayman All food gives default health
- nbohr1more support for Toggle Creep
Sound
- Greebo and Stgatilov support for EFX (EAX equivalent) ported from Dhewm3
Language
- Skina supplied updated Russian fixes
- Petike the Taffer supplied Slovak fixes
- Anderson supplied Romanian fixes