Renderer (Video)

From Oldunreal-Wiki
Jump to navigation Jump to search

Chose your preferred renderer during the first run after installation: XOpenGL, OpenGL, Direct3D, Direct3D8, Direct3D9, Software, Glide

The renderer updates are made to make Unreal work with new graphics-cards, supporting new features and increase speed. One of the advantages is for example to make so called „S3TC“ (High Res, High Color) textures usable with almost every new card.

Those textures can be found on the 2nd UT CD (check the tools folder in your Unreal\System dir for the converting tool and a howto) and a project is working on a high res reworked texture set for Unreal as well. For more informations visit https://www.oldunreal.com/phpBB3/viewforum.php?f=4.

XOpenGL

XOpenGL is an entirely new renderer written from scratch. It utilizes OpenGL 3.3 and up to OpenGL 4.6 functions. It uses shaders which can be found in current 227j version in the xopengl directory in Unreals system folder (like Unreal/System/xopengl).

Settings:

[XOpenGLDrv.XOpenGLRenderDevice]

  • UseHWClipping=True [True/False]

Performance option. This options name is a bit misleading as it does not only moves some clipping operations into hardware, but was also extended later to batch single drawcalls to one bigger call, so that instead of like 1000 calls of 1 Poly it does 1 call with 1000 Polys (for DrawGouraud, Mesh drawing). Newer OpenGL versions are unlike older GL 1.x version not meant or optimized to process an extremely amount of single calls, so this is a very important optimization.

  • AlwaysMipmap=False [True/False]

Switches GL_TEXTURE_MIN_FILTER between GL_NEAREST/GL_LINEAR and GL_NEAREST_MIPMAP_NEAREST/GL_LINEAR_MIPMAP_NEAREST (depending on PF_NoSmooth flag GL_NEAREST is used). Details can be found here: https://docs.gl/gl3/glSamplerParameter Basically that just means that it defines if MipMaps are used for filtering or not.

  • GenerateMipMaps=False [True/False]

Uses glGenerateMipmap(GL_TEXTURE_2D) to generate a complete set of mipmaps for a texture. May improve quality for mipmaps, adds mipmaps if missing in a texture. Usually not needed.

  • ShareLists=False [True/False]

Share lists (The wglShareLists function enables multiple OpenGL rendering contexts to share a single display-list space.) between rendering contexts. Usually only needed an in use for UED. See https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-wglsharelists for details.

  • DetailTextures=True [True/False]

Enables the use of detail textures.

  • MacroTextures=True [True/False]

Enables the use of macro textures.

  • BumpMaps=True [True/False]

Enables the use of bumpmap (well, actually normal map) textures. Already existing texture packages can be complemented with a bumpmap using the in 227j integrated TextureMerger commandlet.

  • ParallaxVersion=None [Disabled/Basic/Occlusion/Relief]

Enables the parallax feature (the use of a heightmap) if included. Already existing texture packages can be complemented with a heightmap using the in 227j integrated TextureMerger commandlet.

  • DescFlags=0

Unused for the most part nowadays. Was/is used for sorting renderers in setup.

  • Description=

Automatically filled in with the description (name) of the graphics card used.

  • Coronas=True [True/False]

Enables coronas in game.

  • ShinySurfaces=True [True/False]

Enables shiny surfaces (such as mirrors).

  • VolumetricLighting=True [True/False]

Enables lighting effects.

  • RefreshRate=0 [Integer]

Tries to switch display frequency to given value. Windows only. Usually set to 0 (disabled).

  • UseTrilinear=True [True/False]

Controls the use of trilinear texture filtering.

  • UsePrecache=False [True/False]

Controls texture precaching. Texture precaching may improve performance by initializing internal data structures for a number of world textures and most likely getting them loaded into video memory at level load time. Can reduce or even eliminate stuttering during gameplay because textures are already loaded into video memory. Will cause a slight delay one-time on each map load.

  • LODBias=0.000000 [Float]

Allows mipmap selection bias to be adjusted. Use negative values to pseudo sharpen textures. Use positive values to blur textures and potentially improve performance at the expense of blurry textures. (GL_EXT_texture_lod_bias).

  • GammaCorrectScreenshots=True [True/False]

If enabled, will apply gamma correction to screen shots.

  • GammaOffsetScreenshots=0.700000 [Float]

Value for GammaCorrectScreenshots

  • HighDetailActors=True [True/False]

Allow HighDetailActors to be rendered.

  • MaxAnisotropy=4.000000 [Float]

Anisotropic filtering (GL_EXT_texture_filter_anisotropic). Controls the use and level of anisotropic texture filtering. Disabled if set to 0. Should make no difference if set to 1 (isotropic texture filtering). If set to greater than 1, specifies the maximum degree of anisotropy to use for texture filtering.

  • UseAA=True [True/False]

Enables multisample antialiasing. Requires the GL_ARB_multisample extension.

  • NumAASamples=4 [Integer]

Specifies the number of samples to use per fragment for antialiasing. 2 and 4 are common values that should work on many video cards.

  • UseVSync=Adaptive [On/Off/Adaptive]

Controls the VSync mode.

  • NoAATiles=True [True/False]

Fixes some issue with AA tiles.

  • NoFiltering=False [True/False]

Disables texture filtering- or rather sets it to the most basic version possible to reproduce the visuals of the very first Unreal versions.

  • UseBufferInvalidation=True [True/False]

May increase performance. Makes use of glInvalidateBufferData.

  • OpenGLVersion=Core [Core/ES]

Which OpenGL version to be used. Core is commonly used on most desktop systems, ES is often used in integrated systems like Raspberry Pi, but it can also be tried if there are performance or rendering issues when using Core.

  • UseBindlessTextures=True [True/False]

One of the more important performance options. Enabled it will make use of the bindless texture feature OpenGL 4 provides, reducing a lot of overhead. Also allows internally better batching drawcalls.

  • MaxBindlessTextures=4096

The maximum amount of textures to be stored bindless. Determined automatically if not set.

  • UseEnhancedLightmaps=True [True/False]

Slightly improves lighting quality (in 227j).

  • UseShaderDrawParameters=True [True/False]

Improve performance by using SSBO's. See Shader_Storage_Buffer_Object

  • SimulateMultiPass=False [True/False]

If set to true it simulates (older) renderer behavior when having MultiPass rendering enabled. Restores original (f.e. v200) SkyBox behavior in Maps like Dark.

  • UseSRGBTextures=False [True/False]

If set to true it uses the textures in SRGB color space. May improve visual quality depending on textures used.

Debug options

Note that any option below may cause severe performance loss or disables entire rendering paths completely. For debug only.

  • UseOpenGLDebug=False [True/False]

Enables OpenGL debugging. Also enabled a lot of additional logging.

  • DebugLevel=2 [3/2/1/0]

Verbosity of the debug logging: None, Low, Medium, High.

  • NoBuffering=False [True/False]

Disables any buffering. Only enable to debug rendering issues. Heavy performance impact.

  • NoDrawGouraud=False [True/False]

Disables the drawing Gouraud (Meshes if UseHWClipping=False)

NoDrawGouraudList=False [True/False] Disables the drawing Gouraud (most Meshes if UseHWClipping=True and StaticMeshes)

NoDrawComplexSurface=False [True/False] Disables the drawing of ComplexSurface (BSP)

NoDrawTile=False [True/False] Disables the drawing of tiles (such as menus or fonts)

NoDrawSimple=False [True/False] Disables the simple drawing routines such as lines or endflash.

OpenGL, D3D8 and D3D9

OpenGL, D3D8 and D3D9 renderers are based on the work from UTGLR, see https://www.cwdohnal.com/utglr/

For informations and help visit https://www.oldunreal.com/phpBB3/viewforum.php?f=1

Here are some details for the settings (D3D8/D3D9/OpenGL):

  • UseTrilinear - [True/False]

Controls the use of trilinear texture filtering.

  • AlwaysMipmap - [True/False]

Can make the renderer always generates mipmaps for textures that are not supplied with them. But, it's always set to 0 by the initialization code (has been this was for a long time), so changing the value of this setting should make no difference.

  • AutoGenerateMipmaps - [True/False]

Enables the use of the GL_SGIS_generate_mipmap extension for automatic mipmap generation. It is recommended that this setting be disabled as there are far too many video drivers that have unstable, slow, and/or broken support for this extension.

  • NoFiltering - [True/False]

Can disable filtering on all textures. Useful as a debug option.

  • MaxAnisotropy - [Integer]

Controls the use and level of anisotropic texture filtering. Disabled if set to 0. Should make no difference if set to 1 (isotropic texture filtering). If set to greater than 1, specifies the maximum degree of anisotropy to use for texture filtering.

  • UseS3TC - [True/False]

Enables the use of high resolution S3TC compressed textures if they are installed.

  • Use16BitTextures - [True/False]

Selects lower quality and more compact formats for a number of textures, which will often speed things up. In many cases, there is only minor quality loss. In other cases, like with various skyboxes and coronas, there is often major quality loss.

  • UseBGRATextures - [True/False]

Allows textures to be uploaded in BGRA format rather than RGBA format if the GL_EXT_bgra extension is supported. This can improve texture upload performance. This option should always be enabled unless it causes problems.

  • LODBias - [Floating point]

Allows mipmap selection bias to be adjusted. Use negative values to pseudo sharpen textures. Use positive values to blur textures and potentially improve performance at the expense of blurry textures.

  • UseTNT - [True/False]

A workaround for buggy TNT/TNT2 drivers. Alters texture scaling and mipmap generation behavior. If you really want to know all the details, check the source code.

  • TexDXT1ToDXT3 - [True/False]

A workaround for poor image quality on NVIDIA GeForce1 - GeForce4 series hardware when using DXT1 format S3TC compressed textures. If enabled, converts all DXT1 textures to DXT3 textures on upload. This improves image quality on the previously mentioned NVIDIA hardware at the expense of twice as much texture memory usage for these textures. The NVIDIA DXT1 image quality problems or most noticeable on certain skybox textures. Keep this in mind when deciding whether or not to trade image quality for speed here. This option should not be enabled on any hardware that draws DXT1 textures with the same quality as DXT3 textures of course.

  • UseMultiTexture - [True/False]

Controls the use of multitexturing. Should always be enabled as the renderer has a few glitches when it is not. I might try to track these down some day. Due to the way some parts of the renderer are still written, it is likely to fail on any system without support for the GL_ARB_multitexture extension anyway.

  • UsePrecache - [True/False]

Controls texture precaching. Texture precaching may improve performance by initializing internal data structures for a number of world textures and most likely getting them loaded into video memory at level load time. It will also slow level loading down some.

  • MaxTMUnits - [Integer]

Used to limit the number of texture units used by the renderer. Useful as a debug option. Disabled if set to 0.

  • UsePalette - [True/False]

Controls the use of paletted textures. If there is hardware support for paletted textures, using them can significantly improve performance.

  • UseAlphaPalette - [Tru/False]

A workaround for very old buggy GeForce drivers. If set to False, will not upload masked textures as paletted. If there is hardware support for paletted textures, this option should be set to True unless it causes any problems.

  • MaskedTextureHack - [True/False]

Enabling this option can prevent rendering problems with masked textures when the same texture is applied to different polygons that do not have the masked attribute set consistently across all of them. Likely examples of masked texture problems are rendering errors with solid colored boxes around railings and trees that can often times be fixed with the flush command. There is some risk to using this option, which is why it's called a hack option. It's likely to be very safe, but not completely safe. Implementing it the completely safe way is a lot of extra work, so it uses the simple solution. If it does happen to fail, there will be some completely incorrect textures on some objects.

  • GammaOffset - [Floating point]

Offset for gamma correction. Can be used to adjust gamma correction even more if you hit the end of the Brightness slider in Video options. The default value of 0.0 causes no change. Use negative values for darker or positive values for brighter. If adjusting this setting for the first time, I'd recommend starting with small values such as -0.3 or 0.3.

  • GammaCorrectScreenshots - [True/False]

If enabled, will apply gamma correction to screen shots.

  • GammaOffsetRed - [Floating point] / GammaOffsetGreen - [Floating point] / GammaOffsetBlue - [Floating point]

Fine tuning parameters for gamma correction. These allow different offsets to be specified for each color channel. These offsets are never applied when gamma correcting screen shots, even if GammaCorrectScreenshots is enabled.

  • OneXBlending - [True/False]

If enabled, matches what the D3D renderer does for blending in multitexture mode when applying lightmaps to world geometry. I can't say for sure which way is correct. In single texture mode, the D3D renderer does appear to do blendinglike the OpenGL renderer in single texture mode or multitexture mode without OneXBlending enabled.

  • RequestHighResolutionZ - [True/False]

Allows a high resolution Z buffer to be requested when running in a 16-bit color mode. It's a good idea to enable this option if running in 16-bit color because rendering problems can occur if a 16-bit Z buffer is used. Note that not all video cards support Z and color buffers of dissimilar bit depths.

  • RefreshRate - [Integer]

Can be used to request a specific refresh rate when running full screen. If set to 0, a default refresh rate is used. If this value is set to an invalid or unsupported refresh rate based on video card or monitor capabilities, the renderer will fail to initialize.

  • SwapInterval - [Integer]

Controls V Sync. If set to the default value of -1, the default buffer swapping method is used. Set to 0 to disable V Sync. Set to 1 to enable V Sync. Set to higher values for one frame every N screen refreshes. Not all video drivers support values higher than 1.

  • FrameRateLimit - [Integer]

CPU controlled frame rate limiter in frames per second. Set to 0 to disable.

  • UseAA - [True/False]

Enables multisample antialiasing. Requires the GL_ARB_multisample extension.

  • NumAASamples - [Integer]

Specifies the number of samples to use per fragment for antialiasing. 2 and 4 are common values that should work on many video cards.

  • AAFilterHint - [Integer]

Can be used to enable Quincunx AA on NVIDIA video cards that support it. Set to 2 to enable this mode.

  • UseZTrick - [True/False]

Can avoid some z-buffer clears at the expense of cutting z-buffer precision in half. This may improve performance on some video cards. On video cards with z-buffer optimization hardware, enabling this setting may significantly reduce performance as it interferes with some hardware z-buffer optimization implementations.

  • MaxLogUOverV - [Integer]

Set to 8.

  • MaxLogVOverU - [Integer]

Set to 8.

  • MinLogTextureSize - [Integer]

Set to 0.

  • MaxLogTextureSize - [Integer]

Set to 8, or 0.

  • UseCVA - [True/False]

Enables the use of the compiled vertex array (CVA) extension. It may be useful on video cards without HW T&ampL. It is likely to slow things down a little bit on video cards with HW T&L.

  • UseMultidrawArrays - [True/False]

Enables the use of the GL_EXT_multi_draw_arrays extension.

  • BufferClippedActorTris - [True/False]

Alters how certain actor polygons are handled, some of which happen to be clipped by higher level code. It's a tradeoff and it is unlikely to make much of a difference either way.

  • UseSSE - [True/False]

Will auto detect CPU and OS support for SSE instructions and use it if present. Set to False to disable the use of SSE instructions.

  • UseVertexProgram - [True/False]

Enables vertex program mode. Consider this an experimental option. It can improve performance in some cases. It can also slow things down a lot if certain other settings are not configured correctly. It is likely to slow things down a lot if detail textures are enabled, but single pass detail texture mode is not enabled. It may not work correctly or may cause crashes with some video drivers.

  • UseTexIdPool - [True/False]

Should be set to True.

  • UseTexPool - [True/False]

Should be set to True.

  • DynamicTexIdRecycleLevel - [Integer]

Should be set to the default value of 100.

  • DetailTextures - [True/False]

Enables detail textures.

  • UseDetailAlpha - [True/False]

Must be enabled for proper detail texture support.

  • DetailClipping - [True/False]

Enables the use of a somewhat experimental detail texture mode. It costs more CPU time, but may improve performance in fill rate limited situations.

  • SinglePassDetail - [True/False]

Enables single pass detail texture mode. This should generally be the highest performance detail texture mode. It requires 4 texture units. It also requires the UseDetailAlpha option to be enabled.

  • ColorizeDetailTextures - [True/False]

Debug option for detail textures. If enabled, adds a green tint to detail textures