1985-2010

articles about

Unreal engine Direct3D 10 renderer

This Direct3D 10 renderer for Unreal, Unreal Tournament, Deus Ex and Rune aims to provide a good, consistent looking and future proof renderer for these games. The focus is not on fancy effects; the idea is to have something that will allow these games to perform well and look good on modern systems, something which I can support and bugfix. Written from scratch, it ditches a lot of legacy stuff and profits from the fact that D3D10 support means a clear baseline. Furthermore, source code and documentation are provided (see bottom of page), which should aid future efforts to keep these games running.

Thanks, for various reasons, go out to Danny, Tyler, Ro, Sebastian. Special thanks to Chris who made the other renderers and provided valuable feedback.

Downloads

Changelog

Screenshots

screenshot screenshot screenshot
screenshot screenshot screenshot
screenshot screenshot screenshot
screenshot screenshot screenshot

Features

Supported games:

There are also renderers for some specific, non-newest, game versions:

Unreal note: The renderer does not work with the version 227 fanpatch, there's nothing I can do about this until headers for it become available. Perhaps the developers of the patch will see fit to include the D3D10 renderer at some point in the future.

Tactical Ops: Mikhail informs me the UT renderer sort-of works with 'Tactical Ops: Assault on Terror': the brightness is off and in-hand weapon models aren't drawn.

Installation and settings

  1. Make sure you've got the latest DirectX update. As of writing, that can be found here. Mirror: my site. Without this, the game will complain about d3dx10 files missing.
  2. Download the renderer from the link at the top of the page.
  3. Unzip the files for the game you're playing to that game's 'system' directory (e.g. "c:\deusex\system"). Note that the files (d3d10drv.dll, etc) and the 'd3d10drv' subdirectory must be directly in the system directory; make sure to not accidentally keep them in the folder they came in in the zip (e.g. 'deusex' or 'unreal_226_gold').
  4. Start the game, go into its video options, and click the the renderer selection button. The game should restart and allow the Direct3D 10 renderer to be picked (make sure to select "Show all devices").
  5. That should be all; read on for more settings.
Renderer selection window
The renderer selection window.

Note that all standard Unreal engine detail settings such as 32 bit color, coronas, detail textures etc. are always enabled no matter what the game might say. To change the various advanced settings the renderer offers you need to conjure up the advanced preferences dialog:

Preferences: UnrealPreferences: UTPreferences: DXPreferences: Rune
Getting to the preferences dialog in various games.
Preferences window (screenshot might not be up to date)
Direct3D 10 renderer settings.

The dialog shown above should pop up, browse to 'rendering->Direct3D 10 support'. The renderer offers these settings:

Anisotropy
Anisotropic filtering, makes textures look less blurry at a distance. Valid settings: 0 to 16. Default: 8.
Anti aliasing
Greatly improves visual quality by filtering jagged lines. Valid settings: depends on video card. 1 and lower is off. 16 is the absolute maximum. If an unsupported setting is selected the renderer falls back on the next lowest supported one.
LOD bias
Setting this to a negative values makes the game use larger mipmaps (textures) than it'd normally do. Theoretically improves quality but far-off textures tend to look too 'busy'. Valid settings: -10 to 10. Default: 0.
VSync
Synchronizes the game's frame redraws with monitor updates. Reduces visual tearing. More importantly, it has the effect of limiting the game's framerate to your monitor refresh rate , which will often be around 60 times per second. Recommended to keep this enabled as it prevents the games from running too fast, which introduces various issues such as crackling sound. Valid settings: true/false. Default: true.
Precache
Makes the game preload textures, which can lead to smoother gameplay. However, it does increase (un)loadtimes. Valid settings: true/false. Default: false.
Parallax Occlusion Mapping
Uses the game's detail textures to give surfaces 3D relief. Pretty GPU intensive, and you might not like the way it looks. Valid settings: true/false. Default: false.
Alpha to coverage.
Smoothens the edges of 'masked' textures such as grates and leaves. Unfortunately, this does lead to artifacts where the textures don't tile (example). Requires at least 4x anti aliasing enabled to take effect. Valid settings: true/false. Default: Deus Ex - true (tiling issue doesn't seem as apparent in this game) / Other games - false.
Bump mapping.
Attempts to fake bump mapping if textures have normal maps present. For most people this setting can be ignored.

For most of these to take effect, the renderer needs to be restarted. Switching to full screen (and back again if desired) accomplishes this.

Known issues

Known non-issues

Testing the renderer, some issues cropped up which were found out to actually be due to the games/API itself and visible on all renderers tried. Some might still be able to be fixed in a renderer though. Also, be sure to check page for Deus Ex issues.

Pre-emptive FAQ

Why Direct3D 10?
Multiple reasons. It's bound to be the most future proof; the newer the API the less problematic with modern hardware it's bound to be; it's a clear baseline from a hardware standpoint; it makes most sense for me to work with this API at this time. Some effects are plain not supported on earlier APIs, for example the geometry shader is used to calculate world geometry tangent space.
Why haven't you added fancy effects such as [effect]?
At this point, the aim is purely to have the games run and look good and glitch free; although some nice effects might be added in the future, it's not the intent to have the games drowned in misplaced bloom.
Why doesn't the renderer support [game]?
Unfortunately, adding support for a game requires that its developers released a native modding SDK. I don't know of any games for which that applies other than the currently supported ones.
Will the renderer work with [game] anyway?
There's no harm in trying, but it will probaby not work. Perhaps one of the renderers will work with one specific version of a game. I have tried Undying, Wheel of Time, Klingon Honour Guard and DS9 The Fallen; none of them worked.
I've found a glitch/bug/error!
Good, that means it can be taken a look at and hopefully fixed! Please tell me where in which game you found the problem: my e-mail address is in the readme file that comes with the renderers. Also note that the game's log file might contain relevant error information, please send it too.

See next page for source and old versions.

Page: 1 2 next ›

Created: Jun 09 2009
Modified: Feb 07 2010