What's new in TDM 2.06: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
No edit summary
 
(173 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<!-- keywords whats new -->
<!-- keywords whats new -->
{{notreleasedyet|2.06}}
See the [http://bugs.thedarkmod.com/changelog_page.php?version_id=76 changelog]
See the [http://bugs.thedarkmod.com/roadmap_page.php roadmap] on our bugtracker.
{{released|2.06|2018-05-27}}
<!-- See the [http://bugs.thedarkmod.com/changelog_page.php?version_id=71 changelog] on our bugtracker. -->
Source Revision 7400
<!-- {{released|2.06|XXXX-XX-XX}} -->
<br>
<br>
{{clear}}
 
== '''<font size="5">The Dark Mod 2.06 is a major step forward!</font>''' ==
 
 
{{clear}}
 
 
 
<font size="3">It is the first TDM release to offer a native '''64-bit build''' with [[Setting_Reverb_Data_of_Rooms_(EAX) | '''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?
<br><br>This is the first TDM release to offer '''Video Codec support''' other than [[Playing_ROQ_Video_Files|ROQ]]
<br>via the incorporation of '''[[Cutscene_video_with_FFmpeg | FFMPEG decode.]]''' </font>


== '''The Dark Mod 2.06 is a major step forward!''' ==
<font size="2">(Now briefing videos and cut-scenes can be better looking than ever.)</font>


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.
<font size="3">A substantial amount of work was done to replace legacy OpenGL methods


Another first? This is the first TDM release to offer '''video codec support''' other than ROQ via FFMPEG.
with their equivalents in '''modern OpenGL'''.


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'''.
The Mission browsing experience via smooth '''Scrolling GUI Menus'''.


GUI scaling menu options exist now with a visual preview area.


A new '''GUI scaling and opacity''' menu options now exist and there is
a visual preview area to test your scaling\opacity settings.
<br>
'''2.06 GUI video:'''
<br>
[https://www.youtube.com/watch?v=g-6Ok7foV2Y https://img.youtube.com/vi/g-6Ok7foV2Y/hqdefault.jpg]
<br><br>
Some initial code support for [[Security_Camera | '''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!!!</font>


Finally, Duzenko and Stgatilov have implemented an experimental '''Soft Shadows option'''


which has some distance based softening and anisotropic sampling correction.
<font size="2">(Some prior Soft Shadow research and implementation was borrowed or approximated


(Some prior Soft Shadow research and implementation 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.)
<br>
<font size="3">
'''2.06 Soft Shadows video:'''
</font>
<br>
[https://www.youtube.com/watch?v=XFAa9iZjDig https://img.youtube.com/vi/XFAa9iZjDig/hqdefault.jpg]
<br><br>


{{clear}}


=== '''Cvars:''' ===
 
----
 
 
=== 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_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
* 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_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
* 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_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_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_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. <br>'''See [[#Experimental_Soft_Shadows.2C_Anti-Aliasing.2C_FBO_and_You. | Experimental Soft Shadows FBO and You]]'''
* r_fboColorBits: Set either 16 or 32 bit color
* 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_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_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_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 <br>'''See [[#Experimental_Soft_Shadows.2C_Anti-Aliasing.2C_FBO_and_You. | Experimental Soft Shadows FBO and You]]'''


* 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




{{clear}}


=== '''Toggling Creep!''' ===
=== Toggling Creep! ===


You can now setup a key bind for toggling creep.
You can now setup a key bind for toggling creep.
Line 73: Line 122:
</pre>
</pre>


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




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


r_useFBO completely disables MSAA but offers resolution scaling (see workaround 3 below).
=== Old TDM Look ===


Additionally, without r_useFBO Nvidia and possibly other hardware produces
If you have older hardware that doesn't work well with GLSL
flickering artifacts on noSelfShadows objects.  
or just wish to have things look as they did in TDM 2.05 simply set these cvar values:


For this reason the r_nvidiaOverride cvar forces r_useFBO on when Soft Shadows are enabled.
* r_nvidiaOverride 0
* r_softShadowsQuality 0
* r_useFBO 0
* r_useGLSL 0


{{clear}}
{{clear}}




Here are the workarounds for these issues:
 
<font size="4">
=== Experimental Soft Shadows, Anti-Aliasing, FBO and You. ===
</font>
 
<font size="3">
<br><br>
 
'''NEW:'''
 
'''The issues described below are <u>[[What's_new_in_TDM_2.07|fixed in TDM 2.07 which is now available.]]</u>'''
</font>
 
<s>2.07 Beta package allows Nvidia users to use real MSAA while in FBO mode:
 
http://forums.thedarkmod.com/topic/19774-beta-testing-207/
</s>
 
 
{{clear}}
 
<font size="3">
 
'''(OBSOLETE) ORIGINAL:'''
</font>
 
 
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 <u>when Soft Shadows are enabled and the hardware vendor is Nvidia.</u>'''
 
 
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
 
 
 
{{clear}}
 
 
Here are the workarounds for this issue:


* 1) Increase resolution to where AA is not needed
* 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
* 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)
* 3) Use in-game resolution scaling via r_useFBO 1 and GUI AA settings (see below).


<pre>
<pre>


Note: when r_useFBO is enabled along with r_nvidiaOverride, the AA settings in the GUI are converted
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.  
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.


Not every setting will be ideal for every monitor resolution so if you wish to tweak this  
Be forewarned that 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
behavior and choose your own scaling multiplier 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
Experiment with r_fboResolution values between 1.05 and 2.55 to see what looks best.
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.
( 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.  


</pre>
</pre>


* 4) Disable in-game AA and set SSAA in your driver settings also set r_useFBO 1.
* 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)
* 5) Disable in-game AA, set FXAA, SMAA 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.
 
{{clear}}
 


{{clear}}
{{clear}}
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
<br><br>
==== Soft Shadows don't get soft enough without High quality ====
<font size="3">The default shadow softening behavior in TDM 2.06 is very subtle and only produces significant softness when
<br>the shadow is projected from close to a light source to a very distant surface. To increase the softness
<br>effect without cranking the Quality setting set:


<pre>
<pre>


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


</pre>
</pre>


== Coding ==
or r_softShadowsRadius 2.0 in the console (experiment with values between 1.5 and 3.5).
</font>
 
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
 
 
{{clear}}
 
== '''TDM 2.06 Change List''' ==
 
=== Coding ===


* Greebo and stgatilov merged 64-bit support from the Dhewm3 branch
* 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 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
* Cabalistic moved the LightGem into its own dedicated session for better threading support
* Greebo and Stgatilov added FFMPEG video playback 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
* Blue_Pill, duzenko, stgatilov, and grayman further improved uncapped FPS support
* stgatilov added SIMD support to Linux and x64
* stgatilov added SIMD support to Linux and x64
* stgatilov optimized idClip::Translation
* stgatilov optimized idClip::Translation
* duzenko merged Mh Vertex Buffer Object "MapBufferRange" optimization
* duzenko merged Mh's Vertex Buffer Object "MapBufferRange" optimization
* AnonReclaimer added support for Doom 3 BFG style culling: r_useBfgPortalCulling
* AnonReclaimer added support for Doom 3 BFG style culling: r_useBfgPortalCulling
* duzenko replaced all legacy (pre 2.0) OpenGL with modern equivalents
* duzenko replaced all legacy (pre 2.0) OpenGL with modern equivalents
* duzenko optimized some of the loops in the render backend
* 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
* 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 executable now contains the Game code exclusively
<pre>


== Graphics ==
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.
 
</pre>
 
=== AI ===
 
* grayman added code support for AI [[Sleeping_AI#Sleeping_While_Sitting | sleeping and waking in chairs]]
 
=== Graphics ===


* duzenko, Stgatilov and SteveL added initial support for Soft Shadows
* duzenko, Stgatilov and SteveL added initial support for Soft Shadows
Line 147: Line 307:
* duzenko moved the Postprocess "HDR-Lite" shader setup to the backend
* duzenko moved the Postprocess "HDR-Lite" shader setup to the backend
* duzenko improved the GLSL AmbientCubicLight to use industry standard "Irradiance cubemap"
* duzenko improved the GLSL AmbientCubicLight to use industry standard "Irradiance cubemap"
* duznko new "makeIrradiance" material keyword to convert standard skybox to Irradiance.
* duzenko new "makeIrradiance" material keyword to convert standard skybox to Irradiance.
* grayman and duzenko improved security camera rendering
* grayman and duzenko improved security camera rendering
* nbohr1more shadows no longer pulse and flicker when holding a light in noclip mode
* 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 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
* 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 ==
=== Assets ===


* Rich_is_Bored supplied an improved CubicLight lamp texture
* Rich_is_Bored supplied an improved CubicLight lamp texture
* Arcturus new Horse animations
* Arcturus new Horse animations
* Arcturus new AI sleeping in chairs animations
* Dragofer's Stagecoach models
* Dragofer's Stagecoach models
* Epifire's additional Steampunk objects
* Epifire's additional Steampunk objects
* Springheel's new architectural modules
* Springheel's new architectural modules
* Goldwell fixed some of Airship Ballet's chest prefabs
* Goldwell fixed some of Airship Ballet's chest prefabs
* Springheel improved splash effects
* RPGista's Medical Tool models


== GUIs ==
=== GUIs ===


* Durandall's scrolling mission lists
* Durandall's scrolling mission lists
Line 171: Line 335:
* grayman reformatted the Mission Statistics page
* grayman reformatted the Mission Statistics page


== Gameplay ==
=== Gameplay ===


* grayman and duzenko did significant work to improve the security camera system
* grayman and duzenko did significant work to improve the security camera system
Line 177: Line 341:
* nbohr1more support for Toggle Creep
* nbohr1more support for Toggle Creep


== Sound ==
=== Sound ===


* Greebo and Stgatilov support for EFX (EAX equivalent) ported from Dhewm3
* Greebo and Stgatilov support for EFX (EAX equivalent) ported from Dhewm3


== Language ==
=== Translation ===


* Skina supplied updated Russian fixes
* Skina supplied updated Russian fixes
* Petike the Taffer supplied Slovak fixes
* Petike the Taffer supplied Slovak fixes
* Anderson supplied Romanian fixes
* Anderson supplied Romanian fixes
{{clear}}
== '''Release news links''' ==
*[http://www.thedarkmod.com/posts/the-dark-mod-2-06-now-released/ TheDarkMod.com News]
*[http://forums.thedarkmod.com/topic/19443-tdm-206-released/ The Dark Mod forums News & Announcements]
*[https://www.moddb.com/mods/the-dark-mod/news/the-dark-mod-206-is-here ModDB.com]
{{clear}}


{{whatsnew|sort=206}}
{{whatsnew|sort=206}}

Latest revision as of 16:40, 2 February 2021

See the changelog

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

Source Revision 7400

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.


2.06 GUI video:
hqdefault.jpg


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


2.06 Soft Shadows video:
hqdefault.jpg




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:

The issues described below are fixed in TDM 2.07 which is now available.

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

http://forums.thedarkmod.com/topic/19774-beta-testing-207/


(OBSOLETE) 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



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

Translation

  • Skina supplied updated Russian fixes
  • Petike the Taffer supplied Slovak fixes
  • Anderson supplied Romanian fixes

Release news links


See also