What's new in TDM 2.06: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
Line 141: Line 141:




* Greebo, stgatilov and duzenko removed legacy library dependencies like Boost and reorganized
* Greebo, stgatilov and duzenko removed legacy library dependencies like Boost and  
   the code so that the DLL just has external libraries like FFMPEG whereas the executable now  
   reorganized the code so that the DLL just has external libraries like FFMPEG  
  contains the Game code exclusively
  whereas the executable now contains the Game code exclusively


=== Graphics ===
=== Graphics ===

Revision as of 06:27, 24 May 2018

Version 2.06 of The Dark Mod has not been released yet.

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.


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"

Experimental Soft Shadows, Anti-Aliasing, FBO and You.

The current Soft Shadows method has some rendering bugs for some hardware vendors when MSAA is enabled in TDM.

r_useFBO completely disables MSAA but offers resolution scaling (see workaround 3 below).

Additionally, without r_useFBO Nvidia and possibly other hardware produces flickering artifacts on noSelfShadows objects.

For this reason the r_nvidiaOverride cvar forces r_useFBO on when Soft Shadows are enabled.


Here are the workarounds for these issues:

  • 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 2 (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 or MLAA in your driver settings also set r_useFBO 1. (best performance)
  • 6) Enable in-game AA, set Transparency AA (SSAA method) in your driver settings and set r_useFBO 0.

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 convert 90-bit FPU math to modern 32-bit or 64-bit optimized floats and fix precision issues
  • 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

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
  • Dragofer's Stagecoach models
  • Epifire's additional Steampunk objects
  • Springheel's new architectural modules
  • Goldwell fixed some of Airship Ballet's chest prefabs

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