What's new in TDM 2.06: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
Line 37: Line 37:
Finally, Duzenko and Stgatilov have implemented an '''Experimental Soft Shadows option'''  
Finally, Duzenko and Stgatilov have implemented an '''Experimental Soft Shadows option'''  


which has some distance based softening and anisotropic sampling correction!!!
which has some distance based softening and anisotropic sampling correction!!!</font>


(Some prior Soft Shadow research and implementation was borrowed or approximated  
 
<font size="3">(Some prior Soft Shadow research and implementation was borrowed or approximated  


from SteveL's old Soft Shadow code for 2.04 era development builds.)</font>
from SteveL's old Soft Shadow code for 2.04 era development builds.)</font>

Revision as of 14:19, 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 OpenAL compliant 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.

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.

GUI scaling menu options now exist and there is a visual preview area to test your scaling settings.


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 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: 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 so we've converted AA settings

to resolution scaling values r_fboResolution to approximate SSAA.

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


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)

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

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

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