Renderer (Video)

From Oldunreal-Wiki
Revision as of 13:59, 4 December 2021 by Smirftsch (talk | contribs)
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 is an entirely new renderer written from scratch. It utilizes OpenGL 3.3 to OpenGL 4.6 functions. It uses shaders which can be found in current 227j version in the Unreal/System/xopengl folder. Here are the settings for it:

[XOpenGLDrv.XOpenGLRenderDevice]

  • UseHWClipping=True

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

  • AlwaysMipmap=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.

  • ShareLists=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 MacroTextures=True BumpMaps=True DescFlags=0 Description=GeForce RTX 3070/PCIe/SSE2 Coronas=True ShinySurfaces=True VolumetricLighting=True RefreshRate=0 UseTrilinear=True UsePrecache=False LODBias=0.000000 GammaCorrectScreenshots=True GammaOffsetScreenshots=0.700000 HighDetailActors=True MaxAnisotropy=4.000000 UseAA=True NumAASamples=4 UseVSync=Adaptive NoBuffering=False NoAATiles=True NoFiltering=False UseBufferInvalidation=True GenerateMipMaps=False OpenGLVersion=Core UsePersistentBuffers=False UseBindlessTextures=True SyncToDraw=False UseOpenGLDebug=False DebugLevel=2 NoDrawGouraud=False NoDrawComplexSurface=False NoDrawTile=False NoDrawSimple=False UseEnhancedLightmaps=True NoDrawGouraudList=False UseHWLighting=False MaxBindlessTextures=4096 UseShaderDrawParameters=True ParallaxVersion=None SimulateMultiPass=False

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