Skip to content

Commit

Permalink
Merge branch 'xoxor4d/ui-legacy-texture-lists' into 'main'
Browse files Browse the repository at this point in the history
[PR:49] Split Texture Category List - Fixes and Improvements

See merge request lightspeedrtx/dxvk-remix-nv!681
  • Loading branch information
sultim-t-nv committed Jan 22, 2024
2 parents d1ba9c9 + d060c9f commit 90bb5a0
Show file tree
Hide file tree
Showing 4 changed files with 249 additions and 157 deletions.
16 changes: 10 additions & 6 deletions RtxOptions.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.froxelReservoirSamplesStabilityHistoryPower|float|2|The power to apply to the Reservoir sample stability history weight\.|
|rtx.fusedWorldViewMode|int|0|Set if game uses a fused World\-View transform matrix\.|
|rtx.graphicsPreset|int|5|Overall rendering preset, higher presets result in higher image quality, lower presets result in better performance\.|
|rtx.gui.legacyTextureGuiShowAssignedOnly|bool|False|A setting to show only the textures in a category that are assigned to it \(Unassigned textures are found in the new "Uncategorized" list at the top\)\.<br>Requires: 'Split Texture Category List' option to be enabled\.|
|rtx.gui.reflexStatRangeInterpolationRate|float|0.05|A value controlling the interpolation rate applied to the Reflex stat graph ranges for smoother visualization\.|
|rtx.gui.reflexStatRangePaddingRatio|float|0.05|A value specifying the amount of padding applied to the Reflex stat graph ranges as a ratio to the calculated range\.|
|rtx.gui.showLegacyTextureGui|bool|False|A setting to toggle the old texture selection GUI, where each texture category is represented as its own list\.|
Expand Down Expand Up @@ -313,9 +314,8 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.legacyMaterial.useAlbedoTextureIfPresent|bool|True|A flag to determine if an "albedo" texture \(a qualifying color texture\) from the original application should be used if present on non\-replaced "legacy" materials\.|
|rtx.lightConversionDistantLightFixedAngle|float|0.0349|The angular size in radiance of the distant light source for legacy lights converted to distant lights\. Set to ~2 degrees in radians by default\.|
|rtx.lightConversionDistantLightFixedIntensity|float|1|The fixed intensity \(in W/sr\) to use for legacy lights converted to distant lights \(currently directional lights will convert to distant lights\)\.|
|rtx.lightConversionEqualityDirectionThreshold|float|0.99|The lower cosine angle threshold between two directions used to determine if two directional lights as the same light when uniquely identifying legacy lights for conversion\.|
|rtx.lightConversionEqualityDistanceThreshold|float|0.05|The upper distance threshold between two positions used to determine if two positional lights as the same light when uniquely identifying legacy lights for conversion\.|
|rtx.lightConversionSphereLightFixedRadius|float|4|The fixed radius in world units to use for legacy lights converted to sphere lights \(currently point and spot lights will convert to sphere lights\)\. Use caution with large light radii as many legacy lights will be placed close to geometry and intersect it, causing suboptimal light sampling performance or other visual artifacts \(lights clipping through walls, etc\)\.|
|rtx.lights.debugDrawLightHashes|bool|False|Draw light hashes of all visible ob screen lights, when enableDebugMode=true\.|
|rtx.lights.enableDebugMode|bool|False|Enables light debug visualization\.|
|rtx.localtonemap.boostLocalContrast|bool|False|Boosts contrast on local features\.|
|rtx.localtonemap.displayMip|int|0|Bottom mip level of tone map pyramid\.|
Expand Down Expand Up @@ -376,11 +376,12 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.opacityMicromap.building.conservativeEstimation.enable|bool|True|Enables Conservative Estimation of micro triangle opacities\.|
|rtx.opacityMicromap.building.conservativeEstimation.maxTexelTapsPerMicroTriangle|int|64|Max number of texel taps per micro triangle when Conservative Estimation is enabled\.<br>Set to 64 as a safer cap\. 512 has been found to cause a timeout\.<br>Any microtriangles requiring more texel taps will be tagged as Opaque Unknown\.|
|rtx.opacityMicromap.building.decalsMinResolveTransparencyThreshold|float|0|Min resolve transparency threshold for decals\.|
|rtx.opacityMicromap.building.enableUnlimitedBakingAndBuildingBudgets|bool|False|Enables unlimited baking and building budgets so that all available Opacity Micromaps are generated in a frame\.|
|rtx.opacityMicromap.building.enableVertexAndTextureOperations|bool|True|Applies vertex and texture operations during baking\.|
|rtx.opacityMicromap.building.force2StateOpacityMicromaps|bool|False|Forces generation of two state Opacity Micromaps\.|
|rtx.opacityMicromap.building.highWorkloadMultiplier|int|20|High workload multiplier that is applied to number of Opacity Micromaps to bake and build per frame\.<br>This is used for testing to decrease frame latency for Opacity Micromaps being ready\.|
|rtx.opacityMicromap.building.maxAllowedBillboardsPerInstanceToSplit|int|16|Max billboards per instance to consider for splitting \(large value results in increased CPU costs on BLAS builds\)\.|
|rtx.opacityMicromap.building.maxMicroTrianglesToBakeMillionPerSecond|int|60|Max Micro Triangles to bake \[Million/Second\]\.|
|rtx.opacityMicromap.building.maxMicroTrianglesToBakeMillionPerSecond|int|60|Max Micro Triangles to bake \[Million/Second\]\.<br>The actual number of issued micro triangles also depends on "costPerTexelTapPerMicroTriangleBudget" option\.|
|rtx.opacityMicromap.building.maxMicroTrianglesToBuildMillionPerSecond|int|300|Max Micro Triangles to build \[Million/Second\]\.|
|rtx.opacityMicromap.building.numFramesAtStartToBuildWithHighWorkload|int|0|Number of frames at start to to bake and build Opacity Micromaps with high workload multiplier\.<br>This is used for testing to decrease frame latency for Opacity Micromaps being ready\.|
|rtx.opacityMicromap.building.splitBillboardGeometry|bool|True|Splits billboard geometry and corresponding Opacity Micromaps to quads for higher reuse\.<br>Games often batch instanced geometry that reuses same geometry and textures, such as for particles\.<br>Splitting such batches into unique subgeometries then allows higher reuse of build Opacity Micromaps\.|
Expand Down Expand Up @@ -433,6 +434,7 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.postfx.blurDiameterFraction|float|0.02|The diameter of the circle that motion blur samplings occur\. Motion vectors beyond this circle will be clamped\.|
|rtx.postfx.chromaticAberrationAmount|float|0.02|The strength of chromatic aberration\.|
|rtx.postfx.chromaticCenterAttenuationAmount|float|0.975|Control the amount of chromatic aberration effect that attunuated when close to the center of screen\.|
|rtx.postfx.desaturateOthersOnHighlight|bool|True|If true, desaturare all objects that are not highlighted\.|
|rtx.postfx.enable|bool|True|Enables post\-processing effects\.|
|rtx.postfx.enableChromaticAberration|bool|True|Enables chromatic aberration post\-processing effect\.|
|rtx.postfx.enableMotionBlur|bool|True|Enables motion blur post\-processing effect\.|
Expand Down Expand Up @@ -547,6 +549,7 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.subsurface.enableTextureMaps|bool|True|Enable texture maps such as thickness map or scattering albedo map\. The corresponding subsurface properties will fallback to per\-material constants if this is disabled\.|
|rtx.subsurface.enableThinOpaque|bool|True|Enable thin opaque material\. The materials withthin opaque properties will fallback to normal opaque material\.|
|rtx.subsurface.surfaceThicknessScale|float|1|Scalar of the subsurface thickness\.|
|rtx.suppressLightKeeping|bool|False|If true, Remix doesn't keep game's original light sources for many frames\. For example, if a game switches a point light off, then, in Remix, the light might still be rendered as if it's enabled: because the light would be cached \(kept\) for many consecutive frames\. \(So to solve this, set this option to True\)\.|
|rtx.taauPreset|int|1|Adjusts TAA\-U scaling factor, trades quality for performance\.|
|rtx.temporalAA.colorClampingFactor|float|1|A scalar factor to apply to the standard deviation of the neighborhood of pixels in the color signal used for clamping\. Should be in the range 0\-infinity\.<br>This value essentially represents how many standard deviations of tolerance from the current frame's colors around each pixel pixel the temporally accumulated color signal may have\.<br>Higher values will cause more ghosting whereas lower values may reduce ghosting but will impact image quality \(less ability to upscale effectively\) and reduce stability \(more jittering\)\.|
|rtx.temporalAA.maximumRadiance|float|10000|The maximum value to use in TAA\-U's perceptual quantizer color transformation, measured in cd/m^2\.<br>The typical value used for the PQ transformation is 10,000 and usually shouldn't be changed\.|
Expand Down Expand Up @@ -601,7 +604,7 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.translucentMaterial.transmittanceColorScale|float|1|A scale factor to apply to all transmittance color values in the translucent material\. Should only be used for debugging or development\.|
|rtx.translucentSpecularLobeSamplingProbabilityZeroThreshold|float|0.01|The threshold for which to zero translucent specular probability weight values\.|
|rtx.translucentTransmissionLobeSamplingProbabilityZeroThreshold|float|0.01|The threshold for which to zero translucent transmission probability weight values\.|
|rtx.uniqueObjectDistance|float|300|\[cm\]|
|rtx.uniqueObjectDistance|float|300|The distance \(in game units\) that an object can move in a single frame before it is no longer considered the same object\.<br>If this is too low, fast moving objects may flicker and have bad lighting\. If it's too high, repeated objects may flicker\.<br>This does not account for sceneScale\.|
|rtx.upscalerType|int|1|Upscaling boosts performance with varying degrees of image quality tradeoff depending on the type of upscaler and the quality mode/preset\.|
|rtx.upscalingMipBias|float|0|Specifies a mipmapping level bias to add to all material texture filtering when upscaling \(such as DLSS\) is used\.<br>Mipmaps are determined based on how far away a texture is, using this can bias the desired level in a lower quality direction \(positive bias\), or a higher quality direction with potentially more aliasing \(negative bias\)\.<br>Note that mipmaps are also important for good spatial caching of textures, so too far negative of a mip bias may start to significantly affect performance, therefore changing this value is not recommended|
|rtx.useAnisotropicFiltering|bool|True|A flag to indicate if anisotropic filtering should be used on material textures, otherwise typical trilinear filtering will be used\.<br>This should generally be enabled as anisotropic filtering allows for less blurring on textures at grazing angles than typical trilinear filtering with only usually minor performance impact \(depending on the max anisotropy samples\)\.|
Expand Down Expand Up @@ -654,7 +657,7 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
| RTX Option | Type | Default Value | Description |
| :-- | :-: | :-: | :-- |
|rtx.animatedWaterTextures|hash set||Textures on draw calls to be treated as "animated water"\.<br>Objects with this flag applied will animate their normals to fake a basic water effect based on the layered water material parameters, and only when rtx\.opaqueMaterial\.layeredWaterNormalEnable is set to true\.<br>Should typically be used on static water planes that the original application may have relied on shaders to animate water on\.|
|rtx.antiCulling.antiCullingTextures|hash set||\[Experimental\] Textures that are forced to extend life length when anti\-culling is enabled\.<br>Some games use different culling methods we can't fully match, use this option to manually add textures to force extend their life when anti\-culling fails\.|
|rtx.antiCulling.antiCullingTextures|hash set||Textures that are forced to extend life length when anti\-culling is enabled\.<br>Some games use different culling methods we can't fully match, use this option to manually add textures to force extend their life when anti\-culling fails\.|
|rtx.baseGameModPathRegex|string||Regex used to redirect RTX Remix Runtime to another path for replacements and rtx\.conf\.|
|rtx.baseGameModRegex|string||Regex used to determine if the base game is running a mod, like a sourcemod\.|
|rtx.beamTextures|hash set||Textures on draw calls that are already particles or emissively blended and have beam\-like geometry\.<br>Typically objects marked as particles or objects using emissive blending will be rendered with a special method which allows re\-orientation of the billboard geometry assumed to make up the draw call in indirect rays \(reflections for example\)\.<br>This method works fine for typical particles, but some \(e\.g\. a laser beam\) may not be well\-represented with the typical billboard assumption of simply needing to rotate around its centroid to face the view direction\.<br>To handle such cases a different beam mode is used to treat objects as more of a cylindrical beam and re\-orient around its main spanning axis, allowing for better rendering of these beam\-like effect objects\.|
Expand All @@ -667,8 +670,8 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.geometryAssetHashRuleString|string|positions,indices,geometrydescriptor|Defines which hashes we need to include when sampling from replacements and doing USD capture\.|
|rtx.geometryGenerationHashRuleString|string|positions,indices,texcoords,geometrydescriptor,vertexlayout,vertexshader|Defines which asset hashes we need to generate via the geometry processing engine\.|
|rtx.hideInstanceTextures|hash set||Textures on draw calls that should be hidden from rendering, but not totally ignored\.<br>This is similar to rtx\.ignoreTextures but instead of completely ignoring such draw calls they are only hidden from rendering, allowing for the hidden objects to still appear in captures\.<br>As such, this is mostly only a development tool to hide objects during development until they are properly replaced, otherwise the objects should be ignored with rtx\.ignoreTextures instead for better performance\.|
|rtx.ignoreBakedLightingTextures|hash set||Textures for which to ignore two types of baked lighting, Texture Factors and Vertex Color\.<br><br>Texture Factor disablement:<br>Using this feature on selected textures will eliminate the texture factors\.<br>For instance, if a game bakes lighting information into the Texture Factor for particular textures, applying this option will remove them\.<br>This becomes useful when unexpected results occur due to the Texture Factor\.<br>Consider an example where the original texture contains red tints baked into the Texture Factor\. If a user replaces the texture, it will blend with the red tints, resulting in an undesirable reddish outcome\.<br>In such cases, users can employ this option to eliminate the unwanted tints from their replacement textures\.<br>Similarly, users can tag textures if shadows are baked into the Texture Factor, causing the replacing texture to appear darker than anticipated\.<br><br>Vertex Color disablement:<br>Using this feature on selected textures will eliminate the vertex colors\.<br><br>Note, enabling this setting will automatically disable multiple\-stage texture factor blendings for the selected textures\.<br>Only use this option when necessary, as the Texture Factor and Vertex Color can be used for simulating various texture effects, tagging a texture with this option will unexpectedly eliminate these effects\.|
|rtx.ignoreLights|hash set||Lights that should be ignored\.<br>Any matching light will be skipped and not added to be ray traced\.|
|rtx.ignoreTextureFactorBlendingTextures|hash set||Textures for which to ignore Texture Factor Blending at any texture stage\.<br>Using this feature on selected textures will eliminate the texture factors typically employed for simulating pre\-baked lights in games\.<br>For instance, if a game bakes lighting information into the Texture Factor for particular textures, applying this option will remove them\.<br>This becomes useful when unexpected results occur due to the Texture Factor\.<br>Consider an example where the original texture contains red tints baked into the Texture Factor\. If a user replaces the texture, it will blend with the red tints, resulting in an undesirable reddish outcome\.<br>In such cases, users can employ this option to eliminate the unwanted tints from their replacement textures\.<br>Similarly, users can tag textures if shadows are baked into the Texture Factor, causing the replacing texture to appear darker than anticipated\.<br>Note, enabling this setting will automatically disable multiple\-stage texture factor blendings for the selected textures\.<br>Only using this option when necessary, as the Texture Factor can be used for simulating various texture effects, tagging a texture with this option will unexpectedly eliminate these effects\.|
|rtx.ignoreTextures|hash set||Textures on draw calls that should be ignored\.<br>Any draw call using an ignore texture will be skipped and not ray traced, useful for removing undesirable rasterized effects or geometry not suitable for ray tracing\.|
|rtx.lightConverter|hash set|||
|rtx.lightmapTextures|hash set||Textures used for lightmapping \(baked static lighting on surfaces\) in older games\.<br>These textures will be ignored when attempting to determine the desired textures from a draw to use for ray tracing\.|
Expand All @@ -685,5 +688,6 @@ Tables below enumerate all the options and their defaults set by RTX Remix. Note
|rtx.sourceRootPath|string||A path pointing at the root folder of the project, used to override the path to the root of the project generated at build\-time \(as this path is only valid for the machine the project was originally compiled on\)\. Used primarily for locating shader source files for runtime shader recompilation\.|
|rtx.terrainTextures|hash set||Albedo textures that are baked blended together to form a unified terrain texture used during ray tracing\.<br>Put albedo textures into this category if the game renders terrain as a blend of multiple textures\.|
|rtx.uiTextures|hash set||Textures on draw calls that should be treated as screenspace UI elements\.<br>All exclusively UI\-related textures should be classified this way and doing so allows the UI to be rasterized on top of the ray traced scene like usual\.<br>Note that currently the first UI texture encountered triggers RTX injection \(though this may change in the future as this does cause issues with games that draw UI mid\-frame\)\.|
|rtx.welcomeMessage|string||Display a message to the user on startup, leave empty if no message is to be displayed\.|
|rtx.worldSpaceUiBackgroundTextures|hash set||Hack/workaround option for dynamic world space UI textures with a coplanar background\.<br>Apply to backgrounds if the foreground material is a dynamic world texture rendered in UI that is unpredictable and rapidly changing\.<br>This offsets the background texture backwards\.|
|rtx.worldSpaceUiTextures|hash set||Textures on draw calls that should be treated as worldspace UI elements\.<br>Unlike typical UI textures this option is useful for improved rendering of UI elements which appear as part of the scene \(moving around in 3D space rather than as a screenspace element\)\.|
Loading

0 comments on commit 90bb5a0

Please sign in to comment.