What's new in TDM 2.06

From The DarkMod Wiki
Jump to: navigation, search

See the changelog

Version 2.06 of The Dark Mod has been released on 2018-05-27.


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

(EAX equivalent for non-Creative hardware) via OpenAL


It is also the first TDM release to offer Dual-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 the incorporation of FFMPEG decode.

(Now briefing videos and cut-scenes can be better looking than ever.)


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.


A new GUI scaling and opacity menu options now exist and there is

a visual preview area to test your scaling\opacity settings.


Some initial code 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 was 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 ( really capped at 166hz to prevent audio bugs, etc. )
  • r_useGLSL 1: Default on. Enables the GLSL backend. If off, it is automatically enabled when enabling Soft Shadows.
  • r_useFBO 1: Enables Frame Buffer Objects. Uses less fillrate and allows for new rendering options. This is forced on if Soft Shadows is set for Nvidia hardware. (See r_nvidiaOverride)
  • 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. Disable r_nvidiaOverride for granular control on nvidia hardware. See Experimental Soft Shadows FBO and You
  • 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 help some users with legacy ROQ playback in existing missions.
  • r_softShadowsRadius: Determines how large the light center is for light sources. Larger values soften shadows more. Blur is capped by number of samples/quality.
  • r_softShadowsQuality: Determines how many samples for shadows. Larger values produce smoother blending (gradient) at more performance cost.
  • r_shadowPolygonFactor: Set to 1 to reduce light leak artifacts in Soft Shadows.
  • r_nvidiaOverride 1: forces r_useFBO if you have nvidia hardware and soft shadows enabled See Experimental Soft Shadows FBO and You


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.

NEW:

This Beta package allows Nvidia users to use real MSAA while in FBO mode:

https://www.moddb.com/mods/the-dark-mod/downloads/tdm-206-vertex-buffer-beta


ORIGINAL:


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 hardware vendor is Nvidia.


However, enabling r_useFBO completely disables MSAA so we've converted AA settings

to resolution scaling values r_fboResolution to approximate SSAA.

You can also use custom resolution scaling (see workaround 3 below).


Another thing to note is the r_useFBO forces "Native Resolution" as detected by The Dark Mod,

so setting other resolutions generally will have no effect on this mode or may cause resolution

scaling issues where parts of the game are rendered off screen. You may workaround the latter by

disabling High DPI settings on the executable properties.


Enabling r_useFBO will also cause glass or transparent materials to render strange discontinuities.

They are generally not easy to see but may annoy you. It's a choice between artifacts but

the shadow flickering on noSelfShadows surfaces is far more of a visual bug

than the discontinuities in transparent materials



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 via r_useFBO 1 and GUI AA settings (see below).

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. So you wont necessarily need to
play with console variables (cvars) and you can instead just use the AA settings in the GUI.

Be forewarned that not every setting will be ideal for every monitor resolution so if you wish to tweak this
behavior and choose your own scaling multiplier disable r_nvidiaOverride and set r_fboResolution to your preferred value.

Experiment with r_fboResolution values between 1.05 and 2.55 to see what looks best.

( 1.25, 1.5, 1.75, and 2.0 are sweet spots for resolution scaling since its simple bi-linear scaling. ) 

If you use this AA method, you may see some skyboxes with bright artifacts. This only affects a few missions
that use the Portal Sky feature. 

  • 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)


To summarize:

  • 1) If Nvidia hardware is found, the r_nvidiaOverride cvar is enabled (default) and the user enabled Soft Shadows
  • 2) The renderer will force Frame Buffer Object rendering (r_useFBO 1)
  • 3) When this happens, real Multi-sample Anti-aliasing (MSAA) wont work
  • 4) If you have anything other than "Off" selected for AA, the AA value will be converted to a resolution scaling factor (multiplier)
  • 5) This will approximate SSAA but is a very heavy cost
  • 6) We recommend you consider FXAA or other driver based AA methods rather than in-game AA for this configuration

TDM 2.07 (SVN unstable) currently has MSAA support with FBO so much of the above is already resolved.

Soft Shadows don't get soft enough without High quality

The default shadow softening behavior in TDM 2.06 is very subtle and only produces significant softness when
the shadow is projected from close to a light source to a very distant surface. To increase the softness
effect without cranking the Quality setting set:


set r_softShadowsRadius "2.0"

or r_softShadowsRadius 2.0 in the console (experiment with values between 1.5 and 3.5).

Here is an unofficial patch with a Shadow Softness slider to accomplish the same thing:

https://www.moddb.com/mods/the-dark-mod/addons/unofficial-soft-shadows-softness-slider


TDM 2.06 Change List

Coding

  • Greebo and stgatilov merged 64-bit support from the Dhewm3 branch
  • Cabalistic and duzenko added initial Dual-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 including embeded AUDIO support. (no need for separate ogg audio files)
  • 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's 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
  • nbohr1more and Tels increased the "active contacts" physics limit to 128
  • stgatilov disabled "package compression" of .ogg files and video files (they are already in a compressed format) to improve mission loading times.

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 Game code resides in the executable exclusively.

The move to C++11 helped greatly with this.

AI

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"
  • duzenko 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 ambientLight specular is now oriented towards the sky like to match the diffuse ambient shading
  • duzenko improved fog behavior with the new "sort afterfog" material keyword

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
  • RPGista's Medical Tool models

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


See also