Unreal v227 Manual/Video renderers

From Oldunreal-Wiki
Revision as of 02:36, 28 June 2022 by Neon Knight (talk | contribs) (Protected "Unreal v227 Manual/Video renderers" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Unreal v227 Manual
Main pageNew maps and itemsNew menu optionsVideo renderersAudio renderersServer admin toolsNew mod authoring toolsFrequently Asked Questions
Unreal v227 Manual
<- Previous New menu options
Next -> Audio renderers

Currently, Unreal supports nine renderer options: Direct3D 7 (Deprecated), Direct3D 8 (Deprecated), Direct3D 9, OpenGL, XOpenGL, S3 MeTaL, PowerVR SGL, 3dfx Glide and Software Rendering. Upon running Unreal for the first time, you’ll be asked to choose one out of a list of recommended renderers.

The renderer updates are based on the work of UTGLR, and were added to make Unreal work with new graphic cards, support new features and increase speed. One of the advantages is to make so called S3TC (High Res, High Color) textures usable with almost every new card. Those textures can be found on the second UT CD. For more information, visit the OldUnreal HighRes Textures board.

OpenGL

Uses Unreal's OpenGL support. Provides best performance and support for almost every graphic card. High resolution texture support. Requires an OpenGL 2.1 or higher-compatible card.

Direct3D 7/8/9

Uses Direct3D hardware rendering. Direct3D 7 is compatible with older video cards; its use is not recommended with very early video cards such as ATI Rage Pro, Riva 128, Intel i740, or Rendition V2200. For those cases, Software Rendering is your best option.

Direct3D 8 and Direct3D 9 support high texture resolution, though Direct3D 9’s card range is higher than Direct3D 8.

OpenGL/D3D7/D3D8/D3D9 Setting Details

  • 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 to disable this setting, as there are far too many video drivers that have unstable, slow, and/or broken support for this extension.
  • NoFiltering [True/False] - Disables filtering on all textures. Useful as a debug option.
  • MaxAnisotropy [Integer] - Controls the use and level of anisotropic texture filtering. 0 disables it. If set to a value above 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’s only a minor quality loss. In other cases, like with various skyboxes and coronas, there’s often a 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 for potential better performance at the expense of blurry textures. (GL_EXT_texture_lod_bias).
  • UseTNT [True/False] - A workaround for buggy TNT/TNT2 drivers. Alters texture scaling and mipmap generation behaviour.
  • 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 are 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. It should always be enabled, as the renderer has a few glitches when it is not. 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] - Enables texture precaching. 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.
  • 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’s hardware support for paletted textures, using them can significantly improve performance.
  • UseAlphaPalette [True/False] - A workaround for very old buggy GeForce drivers. If set to False, it won’t upload masked textures as paletted. If there’s hardware support for paletted textures, set this option 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’s some risk involved with the use of this option, which is why it's called a hack. 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 fails, 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, it’s recommended to start with small values such as -0.3 or 0.3.
  • GammaCorrectScreenshots [True/False] - Applies gamma correction to screenshots.
  • 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. In single texture mode, the D3D renderer does appear to do blending like 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] - Requests a specific refresh rate when running in 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 it 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 multi-sample anti-aliasing. Requires the GL_ARB_multisample extension.
  • NumAASamples [Integer] - Specifies the number of samples to use per fragment for anti-aliasing. 2 and 4 are common values that should work on many video cards.
  • AAFilterHint [Integer] - Enables 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 halving z-buffer precision. 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&L. It is likely to slow things down 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 trade-off and it is unlikely to make much of a difference either way.
  • UseSSE [True/False] - Autodetects CPU and OS support for SSE instructions and uses it if present. Set to False to disable the use of SSE instructions.
  • UseVertexProgram [True/False] - Enables vertex program mode. 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 the use of 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.

XOpenGL

XOpenGL is an entirely new future proof renderer written from scratch. It utilizes OpenGL 3.3-4.6 functions. Provides support for modern high-end graphic cards. Offers new features like normal and parallax mapping (requires new or additional textures) and additional support up to BC7 texture compression.

It requires at least an OpenGL 3.3 or higher-compatible card. It uses shaders which can be found in current 227j version in the XOpenGL directory in Unreal’s system folder (like Unreal/System/xopengl).

Here are some of the new functions:

  • UseHWClipping [True/False] - Performance option. It moves some clipping operations into hardware as well as batches 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 [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. Basically that just means that it defines if MipMaps are used for filtering or not.
  • GenerateMipMaps [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 [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. More info here.
  • DetailTextures [True/False] - Enables the use of detail textures.
  • MacroTextures [True/False] - Enables the use of macro textures.
  • BumpMaps [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 [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.
  • Description [String] - Automatically filled in with the description (name) of the graphics card used.
  • Coronas [True/False] - Enables coronas in game.
  • ShinySurfaces [True/False] - Enables shiny surfaces (such as mirrors).
  • VolumetricLighting [True/False] - Enables lighting effects.
  • RefreshRate [Integer] - Requests a specific refresh rate when running in full screen. If set to 0, a default refresh rate is used. Windows only. Usually set to 0 (disabled).
  • UseTrilinear [True/False] - Controls the use of trilinear texture filtering.
  • UsePrecache [True/False] - Enables texture precaching. 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 [Float] - Allows mipmap selection bias to be adjusted. Use negative values to pseudo sharpen textures. Use positive values to blur textures for potential better performance at the expense of blurry textures. (GL_EXT_texture_lod_bias).
  • GammaCorrectScreenshots [True/False] - Applies gamma correction to screenshots.
  • GammaOffsetScreenshots [Float] - Value for GammaCorrectScreenshots.
  • HighDetailActors [True/False] - Allows high detail actors to be rendered.
  • MaxAnisotropy [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/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.
  • UseVSync [On/Off/Adaptive] - Controls the VSync mode.
  • NoAATiles [True/False] - Fixes some issue with AA tiles.
  • NoFiltering [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/False] - May increase performance. Makes use of glInvalidateBufferData.
  • OpenGLVersion [Core/ES] - Specifies 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/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 [Integer] - The maximum amount of textures to be stored bindless. Determined automatically if not set.
  • UseEnhancedLightmaps [True/False] - Slightly improves lighting quality (in 227j).
  • UseShaderDrawParameters [True/False] - Improves performance by using SSBO's. More info.
  • SimulateMultiPass [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 [True/False] - Uses the textures in SRGB color space. May improve visual quality depending on textures used.

The following are debugging options. Note that any of these options may cause severe performance loss or disables entire rendering paths completely.

  • UseOpenGLDebug [True/False] - Enables OpenGL debugging. Also enables a lot of additional logging.
  • DebugLevel [3/2/1/0] - Verbosity of the debug logging: None, Low, Medium, High.
  • NoBuffering [True/False] - Disables any buffering. Only enable to debug rendering issues. Heavy performance impact.
  • NoDrawGouraud [True/False] - Disables the drawing Gouraud (Meshes if UseHWClipping=False)
  • NoDrawGouraudList [True/False] - Disables the drawing Gouraud (most Meshes if UseHWClipping=False and StaticMeshes)
  • NoDrawComplexSurface [True/False] - Disables the drawing of ComplexSurface (BSP)
  • NoDrawTile [True/False] - Disables the drawing of tiles (such as menus or fonts)
  • NoDrawSimple [True/False] - Disables the simple drawing routines such as lines or endflash.