A checkbox enables the feature, and a slider sets the custom value starting from a minimum range of
1.0 causes most widgets to scale as if the screen were 768 units tall. Disabling the checkbox allows the game chooses a default scale that between
1.00 for Retail, or between
1.00 for Classic.
To demonstrate, assume an onscreen texture is 256x256 pixels. If the actual y-res matches the WoW y-res (e.g., 1024x768 = 768) then the texture appears as 256px (768/768 = 1*256 = 256). Increasing the resolution, so does our multiplier ([actual y/WoW y] = multiplier). Observe the following (all results are with the same 256x256 texture):
|Y-Resolution||Scale 1.0 Multiplier||Scale Off Multiplier||Scale 0.64 Size|
- At 768y we see pixel-per-pixel accurate representation of our texture, and again at 1200y if at 0.64 scale.
- When UI Scale is turned off, the Scale Off Multiplier changes gradually and is not initially a constant.
- In each case after 768y, unless the UI Scale is enabled, your texture will be overblown past its intended size. Given that these higher resolutions show more detail, your textures will appear successively worse.
Pixel perfect UIs
As a result of how WoW handles UI coordinates, having an improperly set UI scale may result in various glitches with interface addons. For instance, a one pixel wide border on a frame may have a varying width (ie. occasionally appear to be two pixels wide) depending on the frame's position and size.
To rectify this behaviour, you should set your UI scale so that your screen height matches with the UI coordinates. You can find out the correct UI scale from UIScale = 768 / verticalResolution, and set it with the command /console UIScale [number].
For instance, if you play with a 1920x1080 resolution, the correct UI scale would be 768/1080 = 0.7111..., and you would set that by typing /run SetCVar("UIScale", 0.7111111111) in the chat.
Note that the above only works for screen resolutions up to 1200 vertical pixels (0.64 UI scale), as the setting won't go lower than 0.64. For screen resolutions above 1920x1200, you will have to use /run UIParent:SetScale(UIScale) where UIScale is the decimal number you got out of the equation above. Since this setting is not saved, you'll have to use an addon that rescales the UI every time the game loads (ie. after every loading screen). While writing such an addon is a trivial task, you can also download one if you can't be arsed to figure out how to write it yourself.