Add harnesses from latest MarkBench
74
forza5/ForzaHorizon5.exe.cfg
Normal file
@@ -0,0 +1,74 @@
|
||||
[OSD]
|
||||
EnableOSD=1
|
||||
EnableBgnd=1
|
||||
EnableFill=0
|
||||
EnableStat=0
|
||||
BaseColor=00FF8000
|
||||
BgndColor=00000000
|
||||
FillColor=80000000
|
||||
PositionX=1
|
||||
PositionY=1
|
||||
ZoomRatio=2
|
||||
CoordinateSpace=0
|
||||
EnableFrameColorBar=0
|
||||
FrameColorBarMode=0
|
||||
RefreshPeriod=500
|
||||
IntegerFramerate=1
|
||||
MaximumFrametime=0
|
||||
EnableFrametimeHistory=0
|
||||
FrametimeHistoryWidth=-32
|
||||
FrametimeHistoryHeight=-4
|
||||
FrametimeHistoryStyle=0
|
||||
ScaleToFit=0
|
||||
[Statistics]
|
||||
FramerateAveragingInterval=1000
|
||||
PeakFramerateCalc=0
|
||||
PercentileCalc=0
|
||||
FrametimeCalc=0
|
||||
PercentileBuffer=0
|
||||
[Framerate]
|
||||
Limit=900
|
||||
LimitDenominator=1
|
||||
LimitTime=0
|
||||
LimitTimeDenominator=1
|
||||
SyncScanline0=0
|
||||
SyncScanline1=0
|
||||
SyncPeriods=0
|
||||
SyncLimiter=0
|
||||
PassiveWait=1
|
||||
[Hooking]
|
||||
EnableHooking=1
|
||||
EnableFloatingInjectionAddress=0
|
||||
EnableDynamicOffsetDetection=0
|
||||
HookLoadLibrary=0
|
||||
HookDirectDraw=0
|
||||
HookDirect3D8=1
|
||||
HookDirect3D9=1
|
||||
HookDirect3DSwapChain9Present=1
|
||||
HookDXGI=1
|
||||
HookDirect3D12=1
|
||||
HookOpenGL=1
|
||||
HookVulkan=1
|
||||
InjectionDelay=15000
|
||||
UseDetours=0
|
||||
[Font]
|
||||
Height=-9
|
||||
Weight=400
|
||||
Face=Unispace
|
||||
Load=
|
||||
[RendererDirect3D8]
|
||||
Implementation=2
|
||||
[RendererDirect3D9]
|
||||
Implementation=2
|
||||
[RendererDirect3D10]
|
||||
Implementation=2
|
||||
[RendererDirect3D11]
|
||||
Implementation=2
|
||||
[RendererDirect3D12]
|
||||
Implementation=2
|
||||
[RendererOpenGL]
|
||||
Implementation=2
|
||||
[RendererVulkan]
|
||||
Implementation=2
|
||||
[Info]
|
||||
Timestamp=19-04-2023, 16:58:10
|
||||
41
forza5/README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Forza Horizon 5
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Python 3.10+
|
||||
- Forza Horizon 5 installed.
|
||||
|
||||
## Setup
|
||||
|
||||
1. Follow the setup instructions for the framework. If you have done so, all required python dependencies *should* be installed.
|
||||
2. Install Forza Horizon 5 from steam.
|
||||
1. Location does not matter, this harness uses Steam command to launch the game.
|
||||
|
||||
## Configuration
|
||||
|
||||
Below is an example use of this harness as a test in a benchmark configuration.
|
||||
|
||||
```yaml
|
||||
...
|
||||
...
|
||||
tests:
|
||||
- name: forza5
|
||||
executable: "forza5.py"
|
||||
process_name: "ForzaHorizon5.exe"
|
||||
asset_paths:
|
||||
- 'harness/forza5/run'
|
||||
```
|
||||
|
||||
__name__ : _(required)_ name of the test. This much match the name of a directory in the harness folder so the framework
|
||||
can find the executable and any supplementary files.
|
||||
|
||||
__executable__ : _(required)_ the entry point to the test harness. In this case a python script.
|
||||
|
||||
__process_name__ : _(required)_ The process name that should be the target for FPS recording (ex: PresentMon).
|
||||
|
||||
__asset_paths__: _(optional)_ list of files to aggregate copies of after a successful test run. If a directory path is
|
||||
given, the contents are copied.
|
||||
|
||||
## Common Issues
|
||||
1. "Login to Microsoft" modal pops up
|
||||
- This game will not let you pass into the menu if you are not signed into Xbox. If you run this game at least once before running you can login then, or pre-login before running the harness.
|
||||
219
forza5/cv2_utils.py
Normal file
@@ -0,0 +1,219 @@
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
from enum import Enum
|
||||
|
||||
import cv2
|
||||
import imutils
|
||||
import numpy as np
|
||||
import pyautogui as gui
|
||||
import mss
|
||||
import pydirectinput as user
|
||||
|
||||
DEFAULT_MATCH_THRESHOLD = 0.80 #
|
||||
DEFAULT_INTERVAL = 2 # seconds
|
||||
DEFAULT_TIMEOUT = 60 # seconds
|
||||
|
||||
# path relative to script
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
images_dir = os.path.join(script_dir, "images")
|
||||
dir16x9 = os.path.join(images_dir, "16x9")
|
||||
dir16x10 = os.path.join(images_dir, "16x10")
|
||||
|
||||
templates = {
|
||||
"settings": {
|
||||
"16x10": cv2.imread(os.path.join(dir16x10, "settings.png"), cv2.IMREAD_UNCHANGED),
|
||||
"16x9": cv2.imread(os.path.join(dir16x9, "settings.png"), cv2.IMREAD_UNCHANGED)
|
||||
},
|
||||
"graphics": {
|
||||
"16x10": cv2.imread(os.path.join(dir16x10, "graphics.png"), cv2.IMREAD_UNCHANGED),
|
||||
"16x9": cv2.imread(os.path.join(dir16x9, "graphics.png"), cv2.IMREAD_UNCHANGED)
|
||||
},
|
||||
"benchmark_mode": {
|
||||
"16x10": cv2.imread(os.path.join(dir16x10, "benchmark_mode.png"), cv2.IMREAD_UNCHANGED),
|
||||
"16x9": cv2.imread(os.path.join(dir16x9, "benchmark_mode.png"), cv2.IMREAD_UNCHANGED)
|
||||
},
|
||||
"benchmark_mode_pink": {
|
||||
"16x10": cv2.imread(os.path.join(dir16x10, "benchmark_mode_pink.png"), cv2.IMREAD_UNCHANGED),
|
||||
"16x9": cv2.imread(os.path.join(dir16x9, "benchmark_mode_pink.png"), cv2.IMREAD_UNCHANGED)
|
||||
},
|
||||
"results": {
|
||||
"16x10": cv2.imread(os.path.join(dir16x10, "results.png"), cv2.IMREAD_UNCHANGED),
|
||||
"16x9": cv2.imread(os.path.join(dir16x9, "results.png"), cv2.IMREAD_UNCHANGED)
|
||||
},
|
||||
"accessibility": {
|
||||
"16x10": cv2.imread(os.path.join(dir16x9, "accessibility2.png"), cv2.IMREAD_UNCHANGED),
|
||||
"16x9": cv2.imread(os.path.join(dir16x9, "accessibility2.png"), cv2.IMREAD_UNCHANGED)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def get_template(name, set="16x9"):
|
||||
return templates[name][set]
|
||||
|
||||
|
||||
class ClickType(Enum):
|
||||
SINGLE = 0 # uses .click()
|
||||
DOUBLE = 1 # uses .doubleclick()
|
||||
HARD = 2 # uses mouse.down() and mouse.up()
|
||||
AUTO_GUI = 3 # uses pyautogui instead of pydirectinput
|
||||
|
||||
|
||||
def get_middle_of_rect(top_left_corner, height, width):
|
||||
x = top_left_corner[0] + (width / 2)
|
||||
y = top_left_corner[1] + (height / 2)
|
||||
return int(x), int(y) # round to avoid fractional pixels
|
||||
|
||||
|
||||
def move_mouse_to(img, timeout):
|
||||
top_left_corner = wait_for_image_on_screen(img, DEFAULT_TIMEOUT)
|
||||
move_loc = get_middle_of_rect(top_left_corner, img.shape[0], img.shape[1])
|
||||
user.moveTo(move_loc[0], move_loc[1])
|
||||
user.move(xOffset=5)
|
||||
|
||||
|
||||
def click(top_left_corner, img):
|
||||
click_loc = get_middle_of_rect(top_left_corner, img.shape[0], img.shape[1])
|
||||
logging.info(f"Clicking {click_loc}")
|
||||
user.click(click_loc[0], click_loc[1])
|
||||
|
||||
|
||||
def double_click(top_left_corner, img):
|
||||
click_loc = get_middle_of_rect(top_left_corner, img.shape[0], img.shape[1])
|
||||
logging.info(f"Double clicking {click_loc}")
|
||||
user.doubleClick(click_loc[0], click_loc[1])
|
||||
|
||||
|
||||
def hard_click(top_left_corner, img):
|
||||
click_loc = get_middle_of_rect(top_left_corner, img.shape[0], img.shape[1])
|
||||
logging.info(f"Hard Clicking {click_loc}")
|
||||
user.moveTo(click_loc[0], click_loc[1])
|
||||
user.move(xOffset=5)
|
||||
user.mouseDown()
|
||||
time.sleep(0.2)
|
||||
user.mouseUp()
|
||||
|
||||
|
||||
def autogui_click(top_left_corner, img):
|
||||
click_loc = get_middle_of_rect(top_left_corner, img.shape[0], img.shape[1])
|
||||
logging.info(f"Using AutoGui Clicking {click_loc}")
|
||||
user.moveTo(click_loc[0], click_loc[1])
|
||||
gui.click()
|
||||
|
||||
|
||||
def wait_and_click(template_name, name, click_type: ClickType = ClickType.SINGLE, timeout=DEFAULT_TIMEOUT,
|
||||
threshold=DEFAULT_MATCH_THRESHOLD):
|
||||
logging.info(f"Waiting to find and click on {name}")
|
||||
img, img_loc = wait_for_image_on_screen(template_name, timeout=timeout)
|
||||
if click_type == ClickType.SINGLE:
|
||||
click(img_loc, img)
|
||||
elif click_type == ClickType.DOUBLE:
|
||||
double_click(img_loc, img)
|
||||
elif click_type == ClickType.HARD:
|
||||
hard_click(img_loc, img)
|
||||
elif click_type == ClickType.AUTO_GUI:
|
||||
autogui_click(img_loc, img)
|
||||
else:
|
||||
raise ValueError("Unknown click type")
|
||||
|
||||
class ImageNotFoundTimeout(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class ImageNotFound(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def gcd(a, b):
|
||||
return a if b == 0 else gcd(b, a % b)
|
||||
|
||||
|
||||
def aspect_ratio(w, h):
|
||||
denom = int(gcd(w, h))
|
||||
x = int(w / denom)
|
||||
y = int(h / denom)
|
||||
if x == 8 and y == 5:
|
||||
return "16x10"
|
||||
elif x == 16 and y == 9:
|
||||
return "16x9"
|
||||
|
||||
|
||||
def locate_on_screen(template_name, threshold=DEFAULT_MATCH_THRESHOLD, debug=0):
|
||||
with mss.mss() as sct:
|
||||
monitor_1 = sct.monitors[1] # Identify the display to capture
|
||||
screen = np.array(sct.grab(monitor_1))
|
||||
screen = cv2.cvtColor(screen, cv2.COLOR_RGB2BGR)
|
||||
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)
|
||||
(h, w) = screen.shape[:2]
|
||||
r = aspect_ratio(w, h)
|
||||
needle = get_template(template_name, r)
|
||||
return needle, locate_in_image(needle, screen, threshold=DEFAULT_MATCH_THRESHOLD, debug=0)
|
||||
|
||||
|
||||
# This approach was largely inspired by the article
|
||||
# https://pyimagesearch.com/2015/01/26/multi-scale-template-matching-using-python-opencv/
|
||||
def locate_in_image(needle, haystack, threshold=DEFAULT_MATCH_THRESHOLD, debug=0):
|
||||
(tH, tW) = needle.shape[:2]
|
||||
|
||||
if debug:
|
||||
cv2.imshow("Looking For", needle)
|
||||
cv2.waitKey(0)
|
||||
|
||||
for scale in np.linspace(0.2, 1.0, 20)[::-1]:
|
||||
# resize the image according to the scale, and keep track
|
||||
# of the ratio of the resizing
|
||||
resized = imutils.resize(haystack, width=int(haystack.shape[1] * scale), inter=cv2.INTER_NEAREST)
|
||||
r = haystack.shape[1] / float(resized.shape[1])
|
||||
|
||||
# if the resized image is smaller than the template, then break
|
||||
# from the loop
|
||||
if resized.shape[0] < tH or resized.shape[1] < tW:
|
||||
break
|
||||
|
||||
result = cv2.matchTemplate(resized, needle, cv2.TM_CCOEFF_NORMED)
|
||||
(_, maxVal, _, maxLoc) = cv2.minMaxLoc(result)
|
||||
|
||||
if debug:
|
||||
# draw a bounding box around the detected region
|
||||
# clone = np.dstack([edged, edged, edged])
|
||||
cv2.rectangle(resized, (maxLoc[0], maxLoc[1]),
|
||||
(maxLoc[0] + tW, maxLoc[1] + tH), (0, 0, 255), 2)
|
||||
cv2.imshow("Searching", resized)
|
||||
cv2.waitKey(0)
|
||||
|
||||
if maxVal >= threshold:
|
||||
found = (maxVal, maxLoc, r)
|
||||
|
||||
# unpack the bookkeeping variable and compute the (x, y) coordinates
|
||||
# of the bounding box based on the resized ratio
|
||||
(_, maxLoc, r) = found
|
||||
(startX, startY) = (int(maxLoc[0] * r), int(maxLoc[1] * r))
|
||||
(endX, endY) = (int((maxLoc[0] + tW) * r), int((maxLoc[1] + tH) * r))
|
||||
|
||||
if debug:
|
||||
# draw a bounding box around the detected result and display the image
|
||||
cv2.rectangle(haystack, (startX, startY), (endX, endY), (0, 0, 255), 2)
|
||||
cv2.imshow("Found", haystack)
|
||||
cv2.waitKey(0)
|
||||
|
||||
return startX, startY
|
||||
raise ImageNotFound("Image not found on screen")
|
||||
|
||||
|
||||
def wait_for_image_on_screen(template_name, match_threshold=DEFAULT_MATCH_THRESHOLD, interval=DEFAULT_INTERVAL,
|
||||
timeout=DEFAULT_TIMEOUT):
|
||||
"""Function that will wait for an image to appear on screen. This function will check every
|
||||
interval for a match that meets is greater than the match threshold. The function will raise
|
||||
an error if the image is not found within the timeout given. Will return the location
|
||||
of the image if found"""
|
||||
t0 = time.time()
|
||||
t1 = t0
|
||||
while not t1 - t0 > timeout:
|
||||
try:
|
||||
img, loc = locate_on_screen(template_name, match_threshold)
|
||||
return img, loc
|
||||
except ImageNotFound:
|
||||
pass
|
||||
time.sleep(interval)
|
||||
t1 = time.time()
|
||||
raise ImageNotFoundTimeout("Could not find image on screen within timeout")
|
||||
107
forza5/forza5.py
Normal file
@@ -0,0 +1,107 @@
|
||||
import logging
|
||||
from subprocess import Popen
|
||||
import sys
|
||||
|
||||
from cv2_utils import *
|
||||
from forza5_utils import read_resolution
|
||||
|
||||
sys.path.insert(1, os.path.join(sys.path[0], '..'))
|
||||
|
||||
from harness_utils.logging import *
|
||||
from harness_utils.process import terminate_processes
|
||||
from harness_utils.rtss import start_rtss_process, copy_rtss_profile
|
||||
from harness_utils.steam import get_run_game_id_command, DEFAULT_EXECUTABLE_PATH as steam_path
|
||||
|
||||
STEAM_GAME_ID = 1551360
|
||||
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
|
||||
LOG_DIRECTORY = os.path.join(SCRIPT_DIR, "run")
|
||||
APPDATALOCAL = os.getenv("LOCALAPPDATA")
|
||||
CONFIG_LOCATION = f"{APPDATALOCAL}\\ForzaHorizon5\\User_SteamLocalStorageDirectory\\ConnectedStorage\\ForzaUserConfigSelections"
|
||||
CONFIG_FILENAME = "UserConfigSelections"
|
||||
PROCESSES = ["ForzaHorizon5.exe", "RTSS.exe"]
|
||||
|
||||
|
||||
def start_rtss():
|
||||
profile_path = os.path.join(SCRIPT_DIR, "ForzaHorizon5.exe.cfg")
|
||||
copy_rtss_profile(profile_path)
|
||||
return start_rtss_process()
|
||||
|
||||
|
||||
def start_game():
|
||||
steam_run_arg = get_run_game_id_command(STEAM_GAME_ID)
|
||||
logging.info(steam_path + " " + steam_run_arg)
|
||||
return Popen([steam_path, steam_run_arg])
|
||||
|
||||
|
||||
def run_benchmark():
|
||||
start_rtss()
|
||||
# Give RTSS time to start
|
||||
time.sleep(10)
|
||||
|
||||
start_game()
|
||||
t1 = time.time()
|
||||
|
||||
# Wait for menu to load
|
||||
time.sleep(60)
|
||||
|
||||
user.press("x")
|
||||
time.sleep(2)
|
||||
|
||||
try:
|
||||
wait_for_image_on_screen("accessibility", 0.70, 1, 5)
|
||||
user.press("escape")
|
||||
user.press("down")
|
||||
user.press("down")
|
||||
user.press("enter")
|
||||
except ImageNotFoundTimeout:
|
||||
pass
|
||||
|
||||
|
||||
wait_and_click("graphics", "graphics menu", ClickType.HARD)
|
||||
try:
|
||||
wait_and_click("benchmark_mode_pink", "run benchmark", ClickType.HARD)
|
||||
except:
|
||||
wait_and_click("benchmark_mode", "run benchmark", ClickType.HARD)
|
||||
|
||||
time.sleep(1)
|
||||
user.press("down")
|
||||
user.press("enter")
|
||||
t2 = time.time()
|
||||
logging.info(f"Harness setup took {round((t2 - t1), 2)} seconds")
|
||||
start_time = time.time()
|
||||
|
||||
time.sleep(110) # wait for benchmark to finish 95 seconds
|
||||
wait_for_image_on_screen("results", 0.70, 2, 60)
|
||||
end_time = time.time()
|
||||
logging.info(f"Benchmark took {round((end_time - start_time), 2)} seconds")
|
||||
terminate_processes(*PROCESSES)
|
||||
return start_time, end_time
|
||||
|
||||
|
||||
setup_log_directory(LOG_DIRECTORY)
|
||||
|
||||
logging.basicConfig(filename=f'{LOG_DIRECTORY}/harness.log',
|
||||
format=DEFAULT_LOGGING_FORMAT,
|
||||
datefmt=DEFAULT_DATE_FORMAT,
|
||||
level=logging.DEBUG)
|
||||
console = logging.StreamHandler()
|
||||
formatter = logging.Formatter(DEFAULT_LOGGING_FORMAT)
|
||||
console.setFormatter(formatter)
|
||||
logging.getLogger('').addHandler(console)
|
||||
|
||||
try:
|
||||
start_time, end_time = run_benchmark()
|
||||
width, height = read_resolution(f"{CONFIG_LOCATION}\\{CONFIG_FILENAME}")
|
||||
result = {
|
||||
"resolution": format_resolution(width, height),
|
||||
"graphics_preset": "current",
|
||||
"start_time": seconds_to_milliseconds(start_time),
|
||||
"end_time": seconds_to_milliseconds(end_time)
|
||||
}
|
||||
|
||||
write_report_json(LOG_DIRECTORY, "report.json", result)
|
||||
except Exception as e:
|
||||
logging.error("Something went wrong running the benchmark!")
|
||||
logging.exception(e)
|
||||
terminate_processes(*PROCESSES)
|
||||
exit(1)
|
||||
18
forza5/forza5_utils.py
Normal file
@@ -0,0 +1,18 @@
|
||||
import re
|
||||
|
||||
|
||||
def read_resolution(config_path: str) -> tuple[int]:
|
||||
height_pattern = re.compile(r"<ResolutionHeight value=\"(\d+)\"/>")
|
||||
width_pattern = re.compile(r"<ResolutionWidth value=\"(\d+)\"/>")
|
||||
width = 0
|
||||
height = 0
|
||||
with open(config_path) as f:
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
height_match = height_pattern.search(line)
|
||||
width_match = width_pattern.search(line)
|
||||
if height_match is not None:
|
||||
height = height_match.group(1)
|
||||
if width_match is not None:
|
||||
width = width_match.group(1)
|
||||
return (width, height)
|
||||
BIN
forza5/images/16x10/benchmark_mode.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
forza5/images/16x10/benchmark_mode_pink.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
forza5/images/16x10/graphics.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
forza5/images/16x10/results.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
forza5/images/16x10/settings.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
forza5/images/16x9/accessibility2.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
forza5/images/16x9/benchmark_mode.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
forza5/images/16x9/benchmark_mode_pink.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
forza5/images/16x9/graphics.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
forza5/images/16x9/interface_visuals.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
forza5/images/16x9/results.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
forza5/images/16x9/settings.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
forza5/images/tests/accessibility_menu.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
forza5/images/tests/graphics_menu_2k.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
forza5/images/tests/main_menu_2k.png
Normal file
|
After Width: | Height: | Size: 4.0 MiB |
BIN
forza5/images/tests/results_menu_2k.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
forza5/images/tests/settings_menu_2k.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
14
forza5/manifest.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
friendly_name: "Forza Horizon 5"
|
||||
executable: "forza5.py"
|
||||
process_name: "forzahorizon5.exe"
|
||||
# default recording delay to reduce capturing menus during setup, this should be revisited every test bench as loading times may be different
|
||||
recording_delay: 75
|
||||
asset_paths:
|
||||
- "harness/forza5/run"
|
||||
options:
|
||||
- name: preset
|
||||
type: select
|
||||
# removing preset options in favor of manual process for now
|
||||
# values: [current, verylow, low, medium, high, ultra, extreme]
|
||||
values: [current]
|
||||
tooltip: Don't forget to set game graphics!
|
||||
105
forza5/presets/UserConfigSelections_extreme
Normal file
@@ -0,0 +1,105 @@
|
||||
|
||||
<UserConfig Version="30" HardwareHash="0">
|
||||
<settings>
|
||||
<PresentInterval value="2"/>
|
||||
<MonitorRefreshPeriod value="refreshreplace"/>
|
||||
<CollidableShadows isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<UIScale value="1.000000"/>
|
||||
<CarSpecularCubemapResolution isDynamic="1" dynamicValue="High"/>
|
||||
<GlobalSpecularCubemapResolution isDynamic="0" dynamicValue="Default" name="Default" value="512"/>
|
||||
<UseCarSpecularCubemapInCockpit isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarSpecularCubemapMSAA isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CubemapDrawDistanceScalar isDynamic="0" dynamicValue="Default" name="Default" value="3.000000"/>
|
||||
<CubemapMeshSizeThresholdScalar isDynamic="0" dynamicValue="Default" name="Default" value="0.143000"/>
|
||||
<ParticleRateScale isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<EnvMapFrequencyScale isDynamic="1" dynamicValue="Ultra"/>
|
||||
<CarReflectionLOD isDynamic="1" dynamicValue="Ultra"/>
|
||||
<TilingScenario isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<CollidablesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MaxCarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="16"/>
|
||||
<LOD3CarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<HalfRateMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<ParticlesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<CarLODThresholds isDynamic="0" dynamicValue="Default" name="Default" lod1="3" lod2="6" lod3="9" count="30"/>
|
||||
<CarFocusLODMinMax isDynamic="1" dynamicValue="Ultra"/>
|
||||
<CarNonFocusLODMinMax isDynamic="0" dynamicValue="Default" name="Default" min="1" max="5"/>
|
||||
<CarLODTransDist isDynamic="0" dynamicValue="Default" name="Default" near="22.500000" far="37.500000" veryFar="75.000000" farthest="112.500000" lodproxy="125.000000" lodproxyfade="20.000000"/>
|
||||
<CarTextureMIPsDropped isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<ShadowMapUpdateRateWhenReduced isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<AllowScreenTearing isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<EnableWindshieldReflections isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<WindshieldReflectionResolution isDynamic="0" dynamicValue="Default" name="Default" value="512"/>
|
||||
<MirrorResolution isDynamic="0" dynamicValue="Default" name="Default" value="320"/>
|
||||
<MirrorFarDistance isDynamic="0" dynamicValue="Default" name="Default" value="2000"/>
|
||||
<ResolutionWidth value="1920"/>
|
||||
<ResolutionHeight value="1080"/>
|
||||
<Fullscreen value="1"/>
|
||||
<ShowFPS isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UseDynamicOptimization value="1"/>
|
||||
<DeformableSnowQuality isDynamic="0" dynamicValue="" Active="1" TessellationLOD0Dist="12.000000" TessellationLOD0EdgeLength="0.250000" TessellationLOD1Dist="20.000000" TessellationLOD1EdgeLength="1.000000" TessellationLOD2Dist="35.000000" TessellationLOD2EdgeLength="2.000000" VertexModifyMinDist="20.000000" VertexModifyMaxDist="35.000000"/>
|
||||
<SSRQuality isDynamic="1" dynamicValue="High"/>
|
||||
<MasterVolume value="1.000000"/>
|
||||
<ParticlesQuality isDynamic="0" dynamicValue="" name="Default" value="Medium"/>
|
||||
<PlayerCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="4096"/>
|
||||
<OpponentCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<PlayerCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<OpponentCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<PlayerCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<LiveryHighResolutionDecals isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<UIHUDGlassCaptureEnabled isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MegaTextureLowSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.025000"/>
|
||||
<MegaTextureHighSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.003000"/>
|
||||
<FollowLowFOV value="48.500000"/>
|
||||
<FollowHighFOV value="58.000000"/>
|
||||
<DriverFOV value="48.000000"/>
|
||||
<DriverNoWheelFOV value="48.000000"/>
|
||||
<HoodFOV value="66.000000"/>
|
||||
<BumperHighFOV value="58.000000"/>
|
||||
<DepthPrePass isDynamic="0" dynamicValue="" TrackCullDistanceDefault="0.000000" TrackCullDistanceReduced="200.000000"/>
|
||||
<ScreenAreaTestsMain isDynamic="0" dynamicValue="Default" MainScene="200.000000" Depth="60.000000" Cinematic="130.000000" GroundReflection="23.000000"/>
|
||||
<ScreenAreaTestsShadow isDynamic="0" dynamicValue="Default" name="Default" value="100.000000"/>
|
||||
<ScreenAreaTestsCubemap isDynamic="0" dynamicValue="Default" name="Default" value="100.000000"/>
|
||||
<ScreenAreaTestsMirror isDynamic="0" dynamicValue="Default" name="Default" value="5.000000"/>
|
||||
<FWDPlusQuality isDynamic="1" dynamicValue="High"/>
|
||||
<UseGlobalSpecularCubemapForCar isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<KeepCarsClean isDynamic="0" dynamicValue="" name="Default" value="0"/>
|
||||
<EnablePCHDR isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<DXRQuality value="0"/>
|
||||
<UseLowQualityAIDrivers isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<TAASharpness value="5.000000"/>
|
||||
<DLC1FollowLowFOV value="65.000000"/>
|
||||
<DLC1FollowHighFOV value="65.000000"/>
|
||||
<DLC1DriverFOV value="45.000000"/>
|
||||
<DLC1DriverNoWheelFOV value="45.000000"/>
|
||||
<DLC1HoodFOV value="53.000000"/>
|
||||
<DLC1BumperHighFOV value="53.000000"/>
|
||||
</settings>
|
||||
<selections>
|
||||
<option id="UseDynamicOptimization" value="0"/>
|
||||
<option id="FrameRate" value="4"/>
|
||||
<option id="VSync" value="0"/>
|
||||
<option id="EnableHDR" value="0"/>
|
||||
<option id="MotionBlurAmount" value="1"/>
|
||||
<option id="ShowFPS" value="0"/>
|
||||
<option id="ResolutionScaling" value="0"/>
|
||||
<option id="Anisotropic" value="2"/>
|
||||
<option id="ShadowQuality" value="4"/>
|
||||
<option id="NightShadows" value="1"/>
|
||||
<option id="MotionBlurQuality" value="3"/>
|
||||
<option id="EnvStreamingTex" value="4"/>
|
||||
<option id="GeometryQuality" value="5"/>
|
||||
<option id="MSAA" value="1"/>
|
||||
<option id="FXAA" value="0"/>
|
||||
<option id="TAA" value="0"/>
|
||||
<option id="SSAO" value="1"/>
|
||||
<option id="ReflectionQuality" value="4"/>
|
||||
<option id="CarLOD" value="4"/>
|
||||
<option id="DeformableSnowQuality" value="4"/>
|
||||
<option id="SSRQuality" value="3"/>
|
||||
<option id="LensEffects" value="3"/>
|
||||
<option id="ShaderQuality" value="4"/>
|
||||
<option id="ParticlesSettings" value="4"/>
|
||||
<option id="DXRQuality" value="2"/>
|
||||
</selections>
|
||||
</UserConfig>
|
||||
105
forza5/presets/UserConfigSelections_high
Normal file
@@ -0,0 +1,105 @@
|
||||
|
||||
<UserConfig Version="30" HardwareHash="0">
|
||||
<settings>
|
||||
<PresentInterval value="2"/>
|
||||
<MonitorRefreshPeriod value="refreshreplace"/>
|
||||
<CollidableShadows isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<UIScale value="1.000000"/>
|
||||
<CarSpecularCubemapResolution isDynamic="1" dynamicValue="High"/>
|
||||
<GlobalSpecularCubemapResolution isDynamic="0" dynamicValue="Default" name="Default" value="512"/>
|
||||
<UseCarSpecularCubemapInCockpit isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarSpecularCubemapMSAA isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CubemapDrawDistanceScalar isDynamic="0" dynamicValue="Default" name="Default" value="3.000000"/>
|
||||
<CubemapMeshSizeThresholdScalar isDynamic="0" dynamicValue="Default" name="Default" value="0.143000"/>
|
||||
<ParticleRateScale isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<EnvMapFrequencyScale isDynamic="1" dynamicValue="High"/>
|
||||
<CarReflectionLOD isDynamic="1" dynamicValue="High"/>
|
||||
<TilingScenario isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<CollidablesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<MaxCarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="7"/>
|
||||
<LOD3CarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<HalfRateMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<ParticlesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarLODThresholds isDynamic="0" dynamicValue="Default" name="Default" lod1="3" lod2="6" lod3="9" count="30"/>
|
||||
<CarFocusLODMinMax isDynamic="1" dynamicValue="Medium"/>
|
||||
<CarNonFocusLODMinMax isDynamic="0" dynamicValue="Default" name="Default" min="1" max="5"/>
|
||||
<CarLODTransDist isDynamic="0" dynamicValue="Default" name="Default" near="20.000000" far="30.000000" veryFar="60.000000" farthest="100.000000" lodproxy="120.000000" lodproxyfade="20.000000"/>
|
||||
<CarTextureMIPsDropped isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<ShadowMapUpdateRateWhenReduced isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<AllowScreenTearing isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<EnableWindshieldReflections isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<WindshieldReflectionResolution isDynamic="0" dynamicValue="Default" name="Default" value="512"/>
|
||||
<MirrorResolution isDynamic="0" dynamicValue="Default" name="Default" value="320"/>
|
||||
<MirrorFarDistance isDynamic="0" dynamicValue="Default" name="Default" value="2000"/>
|
||||
<ResolutionWidth value="1920"/>
|
||||
<ResolutionHeight value="1080"/>
|
||||
<Fullscreen value="1"/>
|
||||
<ShowFPS isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UseDynamicOptimization value="1"/>
|
||||
<DeformableSnowQuality isDynamic="0" dynamicValue="" Active="1" TessellationLOD0Dist="12.000000" TessellationLOD0EdgeLength="0.250000" TessellationLOD1Dist="20.000000" TessellationLOD1EdgeLength="1.000000" TessellationLOD2Dist="35.000000" TessellationLOD2EdgeLength="2.000000" VertexModifyMinDist="20.000000" VertexModifyMaxDist="35.000000"/>
|
||||
<SSRQuality isDynamic="1" dynamicValue="High"/>
|
||||
<MasterVolume value="1.000000"/>
|
||||
<ParticlesQuality isDynamic="0" dynamicValue="" name="Default" value="Medium"/>
|
||||
<PlayerCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="2048"/>
|
||||
<OpponentCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<PlayerCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<PlayerCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="4"/>
|
||||
<OpponentCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<LiveryHighResolutionDecals isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UIHUDGlassCaptureEnabled isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MegaTextureLowSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.025000"/>
|
||||
<MegaTextureHighSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.003000"/>
|
||||
<FollowLowFOV value="48.500000"/>
|
||||
<FollowHighFOV value="58.000000"/>
|
||||
<DriverFOV value="48.000000"/>
|
||||
<DriverNoWheelFOV value="48.000000"/>
|
||||
<HoodFOV value="66.000000"/>
|
||||
<BumperHighFOV value="58.000000"/>
|
||||
<DepthPrePass isDynamic="0" dynamicValue="" TrackCullDistanceDefault="0.000000" TrackCullDistanceReduced="200.000000"/>
|
||||
<ScreenAreaTestsMain isDynamic="0" dynamicValue="Default" MainScene="200.000000" Depth="60.000000" Cinematic="130.000000" GroundReflection="23.000000"/>
|
||||
<ScreenAreaTestsShadow isDynamic="0" dynamicValue="Default" name="Default" value="100.000000"/>
|
||||
<ScreenAreaTestsCubemap isDynamic="0" dynamicValue="Default" name="Default" value="70.000000"/>
|
||||
<ScreenAreaTestsMirror isDynamic="0" dynamicValue="Default" name="Default" value="5.000000"/>
|
||||
<FWDPlusQuality isDynamic="1" dynamicValue="High"/>
|
||||
<UseGlobalSpecularCubemapForCar isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<KeepCarsClean isDynamic="0" dynamicValue="" name="Default" value="0"/>
|
||||
<EnablePCHDR isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<DXRQuality value="0"/>
|
||||
<UseLowQualityAIDrivers isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<TAASharpness value="5.000000"/>
|
||||
<DLC1FollowLowFOV value="65.000000"/>
|
||||
<DLC1FollowHighFOV value="65.000000"/>
|
||||
<DLC1DriverFOV value="45.000000"/>
|
||||
<DLC1DriverNoWheelFOV value="45.000000"/>
|
||||
<DLC1HoodFOV value="53.000000"/>
|
||||
<DLC1BumperHighFOV value="53.000000"/>
|
||||
</settings>
|
||||
<selections>
|
||||
<option id="UseDynamicOptimization" value="0"/>
|
||||
<option id="FrameRate" value="4"/>
|
||||
<option id="VSync" value="0"/>
|
||||
<option id="EnableHDR" value="0"/>
|
||||
<option id="MotionBlurAmount" value="1"/>
|
||||
<option id="ShowFPS" value="0"/>
|
||||
<option id="ResolutionScaling" value="0"/>
|
||||
<option id="Anisotropic" value="2"/>
|
||||
<option id="ShadowQuality" value="2"/>
|
||||
<option id="NightShadows" value="0"/>
|
||||
<option id="MotionBlurQuality" value="2"/>
|
||||
<option id="EnvStreamingTex" value="2"/>
|
||||
<option id="GeometryQuality" value="3"/>
|
||||
<option id="MSAA" value="1"/>
|
||||
<option id="FXAA" value="0"/>
|
||||
<option id="TAA" value="0"/>
|
||||
<option id="SSAO" value="0"/>
|
||||
<option id="ReflectionQuality" value="3"/>
|
||||
<option id="CarLOD" value="2"/>
|
||||
<option id="DeformableSnowQuality" value="2"/>
|
||||
<option id="SSRQuality" value="3"/>
|
||||
<option id="LensEffects" value="2"/>
|
||||
<option id="ShaderQuality" value="2"/>
|
||||
<option id="ParticlesSettings" value="2"/>
|
||||
<option id="DXRQuality" value="1"/>
|
||||
</selections>
|
||||
</UserConfig>
|
||||
105
forza5/presets/UserConfigSelections_low
Normal file
@@ -0,0 +1,105 @@
|
||||
|
||||
<UserConfig Version="30" HardwareHash="0">
|
||||
<settings>
|
||||
<PresentInterval value="2"/>
|
||||
<MonitorRefreshPeriod value="refreshreplace"/>
|
||||
<CollidableShadows isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UIScale value="1.000000"/>
|
||||
<CarSpecularCubemapResolution isDynamic="1" dynamicValue="Low"/>
|
||||
<GlobalSpecularCubemapResolution isDynamic="0" dynamicValue="Default" name="Default" value="128"/>
|
||||
<UseCarSpecularCubemapInCockpit isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarSpecularCubemapMSAA isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CubemapDrawDistanceScalar isDynamic="0" dynamicValue="Default" name="Default" value="1.000000"/>
|
||||
<CubemapMeshSizeThresholdScalar isDynamic="0" dynamicValue="Default" name="Default" value="1.000000"/>
|
||||
<ParticleRateScale isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<EnvMapFrequencyScale isDynamic="1" dynamicValue="Low"/>
|
||||
<CarReflectionLOD isDynamic="1" dynamicValue="Low"/>
|
||||
<TilingScenario isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CollidablesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<MaxCarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="3"/>
|
||||
<LOD3CarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<HalfRateMirror isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<ParticlesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarLODThresholds isDynamic="0" dynamicValue="Default" name="Default" lod1="0" lod2="0" lod3="4" count="12"/>
|
||||
<CarFocusLODMinMax isDynamic="1" dynamicValue="VeryLow"/>
|
||||
<CarNonFocusLODMinMax isDynamic="0" dynamicValue="Default" name="Default" min="3" max="5"/>
|
||||
<CarLODTransDist isDynamic="0" dynamicValue="Default" name="Default" near="10.000000" far="18.000000" veryFar="35.000000" farthest="55.000000" lodproxy="75.000000" lodproxyfade="20.000000"/>
|
||||
<CarTextureMIPsDropped isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<ShadowMapUpdateRateWhenReduced isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<AllowScreenTearing isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<EnableWindshieldReflections isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<WindshieldReflectionResolution isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MirrorResolution isDynamic="0" dynamicValue="Default" name="Default" value="160"/>
|
||||
<MirrorFarDistance isDynamic="0" dynamicValue="Default" name="Default" value="500"/>
|
||||
<ResolutionWidth value="1920"/>
|
||||
<ResolutionHeight value="1080"/>
|
||||
<Fullscreen value="1"/>
|
||||
<ShowFPS isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UseDynamicOptimization value="1"/>
|
||||
<DeformableSnowQuality isDynamic="0" dynamicValue="" Active="1" TessellationLOD0Dist="12.000000" TessellationLOD0EdgeLength="0.250000" TessellationLOD1Dist="20.000000" TessellationLOD1EdgeLength="1.000000" TessellationLOD2Dist="35.000000" TessellationLOD2EdgeLength="2.000000" VertexModifyMinDist="20.000000" VertexModifyMaxDist="35.000000"/>
|
||||
<SSRQuality isDynamic="1" dynamicValue="Low"/>
|
||||
<MasterVolume value="1.000000"/>
|
||||
<ParticlesQuality isDynamic="0" dynamicValue="" name="Default" value="Medium"/>
|
||||
<PlayerCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<OpponentCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<PlayerCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<PlayerCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<LiveryHighResolutionDecals isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UIHUDGlassCaptureEnabled isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MegaTextureLowSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.025000"/>
|
||||
<MegaTextureHighSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.003000"/>
|
||||
<FollowLowFOV value="48.500000"/>
|
||||
<FollowHighFOV value="58.000000"/>
|
||||
<DriverFOV value="48.000000"/>
|
||||
<DriverNoWheelFOV value="48.000000"/>
|
||||
<HoodFOV value="66.000000"/>
|
||||
<BumperHighFOV value="58.000000"/>
|
||||
<DepthPrePass isDynamic="0" dynamicValue="" TrackCullDistanceDefault="0.000000" TrackCullDistanceReduced="200.000000"/>
|
||||
<ScreenAreaTestsMain isDynamic="0" dynamicValue="Default" MainScene="120.000000" Depth="25.000000" Cinematic="80.000000" GroundReflection="23.000000"/>
|
||||
<ScreenAreaTestsShadow isDynamic="0" dynamicValue="Default" name="Default" value="40.000000"/>
|
||||
<ScreenAreaTestsCubemap isDynamic="0" dynamicValue="Default" name="Default" value="25.000000"/>
|
||||
<ScreenAreaTestsMirror isDynamic="0" dynamicValue="Default" name="Default" value="3.000000"/>
|
||||
<FWDPlusQuality isDynamic="1" dynamicValue="Low"/>
|
||||
<UseGlobalSpecularCubemapForCar isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<KeepCarsClean isDynamic="0" dynamicValue="" name="Default" value="0"/>
|
||||
<EnablePCHDR isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<DXRQuality value="0"/>
|
||||
<UseLowQualityAIDrivers isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<TAASharpness value="5.000000"/>
|
||||
<DLC1FollowLowFOV value="65.000000"/>
|
||||
<DLC1FollowHighFOV value="65.000000"/>
|
||||
<DLC1DriverFOV value="45.000000"/>
|
||||
<DLC1DriverNoWheelFOV value="45.000000"/>
|
||||
<DLC1HoodFOV value="53.000000"/>
|
||||
<DLC1BumperHighFOV value="53.000000"/>
|
||||
</settings>
|
||||
<selections>
|
||||
<option id="UseDynamicOptimization" value="0"/>
|
||||
<option id="FrameRate" value="4"/>
|
||||
<option id="VSync" value="0"/>
|
||||
<option id="EnableHDR" value="0"/>
|
||||
<option id="MotionBlurAmount" value="1"/>
|
||||
<option id="ShowFPS" value="0"/>
|
||||
<option id="ResolutionScaling" value="0"/>
|
||||
<option id="Anisotropic" value="1"/>
|
||||
<option id="ShadowQuality" value="1"/>
|
||||
<option id="NightShadows" value="0"/>
|
||||
<option id="MotionBlurQuality" value="0"/>
|
||||
<option id="EnvStreamingTex" value="0"/>
|
||||
<option id="GeometryQuality" value="1"/>
|
||||
<option id="MSAA" value="0"/>
|
||||
<option id="FXAA" value="0"/>
|
||||
<option id="TAA" value="0"/>
|
||||
<option id="SSAO" value="0"/>
|
||||
<option id="ReflectionQuality" value="1"/>
|
||||
<option id="CarLOD" value="0"/>
|
||||
<option id="DeformableSnowQuality" value="0"/>
|
||||
<option id="SSRQuality" value="1"/>
|
||||
<option id="LensEffects" value="1"/>
|
||||
<option id="ShaderQuality" value="1"/>
|
||||
<option id="ParticlesSettings" value="1"/>
|
||||
<option id="DXRQuality" value="0"/>
|
||||
</selections>
|
||||
</UserConfig>
|
||||
105
forza5/presets/UserConfigSelections_medium
Normal file
@@ -0,0 +1,105 @@
|
||||
|
||||
<UserConfig Version="30" HardwareHash="0">
|
||||
<settings>
|
||||
<PresentInterval value="2"/>
|
||||
<MonitorRefreshPeriod value="refreshreplace"/>
|
||||
<CollidableShadows isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<UIScale value="1.000000"/>
|
||||
<CarSpecularCubemapResolution isDynamic="1" dynamicValue="Medium"/>
|
||||
<GlobalSpecularCubemapResolution isDynamic="0" dynamicValue="Default" name="Default" value="256"/>
|
||||
<UseCarSpecularCubemapInCockpit isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarSpecularCubemapMSAA isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CubemapDrawDistanceScalar isDynamic="0" dynamicValue="Default" name="Default" value="1.000000"/>
|
||||
<CubemapMeshSizeThresholdScalar isDynamic="0" dynamicValue="Default" name="Default" value="1.000000"/>
|
||||
<ParticleRateScale isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<EnvMapFrequencyScale isDynamic="1" dynamicValue="Medium"/>
|
||||
<CarReflectionLOD isDynamic="1" dynamicValue="Medium"/>
|
||||
<TilingScenario isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<CollidablesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<MaxCarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="7"/>
|
||||
<LOD3CarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<HalfRateMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<ParticlesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarLODThresholds isDynamic="0" dynamicValue="Default" name="Default" lod1="2" lod2="4" lod3="6" count="25"/>
|
||||
<CarFocusLODMinMax isDynamic="1" dynamicValue="Low"/>
|
||||
<CarNonFocusLODMinMax isDynamic="0" dynamicValue="Default" name="Default" min="2" max="5"/>
|
||||
<CarLODTransDist isDynamic="0" dynamicValue="Default" name="Default" near="15.000000" far="25.000000" veryFar="50.000000" farthest="75.000000" lodproxy="100.000000" lodproxyfade="20.000000"/>
|
||||
<CarTextureMIPsDropped isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<ShadowMapUpdateRateWhenReduced isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<AllowScreenTearing isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<EnableWindshieldReflections isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<WindshieldReflectionResolution isDynamic="0" dynamicValue="Default" name="Default" value="256"/>
|
||||
<MirrorResolution isDynamic="0" dynamicValue="Default" name="Default" value="160"/>
|
||||
<MirrorFarDistance isDynamic="0" dynamicValue="Default" name="Default" value="500"/>
|
||||
<ResolutionWidth value="1920"/>
|
||||
<ResolutionHeight value="1080"/>
|
||||
<Fullscreen value="1"/>
|
||||
<ShowFPS isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UseDynamicOptimization value="1"/>
|
||||
<DeformableSnowQuality isDynamic="0" dynamicValue="" Active="1" TessellationLOD0Dist="12.000000" TessellationLOD0EdgeLength="0.250000" TessellationLOD1Dist="20.000000" TessellationLOD1EdgeLength="1.000000" TessellationLOD2Dist="35.000000" TessellationLOD2EdgeLength="2.000000" VertexModifyMinDist="20.000000" VertexModifyMaxDist="35.000000"/>
|
||||
<SSRQuality isDynamic="1" dynamicValue="Medium"/>
|
||||
<MasterVolume value="1.000000"/>
|
||||
<ParticlesQuality isDynamic="0" dynamicValue="" name="Default" value="Medium"/>
|
||||
<PlayerCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="2048"/>
|
||||
<OpponentCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<PlayerCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<PlayerCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<OpponentCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<LiveryHighResolutionDecals isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UIHUDGlassCaptureEnabled isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MegaTextureLowSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.025000"/>
|
||||
<MegaTextureHighSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.003000"/>
|
||||
<FollowLowFOV value="48.500000"/>
|
||||
<FollowHighFOV value="58.000000"/>
|
||||
<DriverFOV value="48.000000"/>
|
||||
<DriverNoWheelFOV value="48.000000"/>
|
||||
<HoodFOV value="66.000000"/>
|
||||
<BumperHighFOV value="58.000000"/>
|
||||
<DepthPrePass isDynamic="0" dynamicValue="" TrackCullDistanceDefault="0.000000" TrackCullDistanceReduced="200.000000"/>
|
||||
<ScreenAreaTestsMain isDynamic="0" dynamicValue="Default" MainScene="180.000000" Depth="50.000000" Cinematic="100.000000" GroundReflection="23.000000"/>
|
||||
<ScreenAreaTestsShadow isDynamic="0" dynamicValue="Default" name="Default" value="100.000000"/>
|
||||
<ScreenAreaTestsCubemap isDynamic="0" dynamicValue="Default" name="Default" value="70.000000"/>
|
||||
<ScreenAreaTestsMirror isDynamic="0" dynamicValue="Default" name="Default" value="5.000000"/>
|
||||
<FWDPlusQuality isDynamic="1" dynamicValue="Low"/>
|
||||
<UseGlobalSpecularCubemapForCar isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<KeepCarsClean isDynamic="0" dynamicValue="" name="Default" value="0"/>
|
||||
<EnablePCHDR isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<DXRQuality value="0"/>
|
||||
<UseLowQualityAIDrivers isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<TAASharpness value="5.000000"/>
|
||||
<DLC1FollowLowFOV value="65.000000"/>
|
||||
<DLC1FollowHighFOV value="65.000000"/>
|
||||
<DLC1DriverFOV value="45.000000"/>
|
||||
<DLC1DriverNoWheelFOV value="45.000000"/>
|
||||
<DLC1HoodFOV value="53.000000"/>
|
||||
<DLC1BumperHighFOV value="53.000000"/>
|
||||
</settings>
|
||||
<selections>
|
||||
<option id="UseDynamicOptimization" value="0"/>
|
||||
<option id="FrameRate" value="4"/>
|
||||
<option id="VSync" value="0"/>
|
||||
<option id="EnableHDR" value="0"/>
|
||||
<option id="MotionBlurAmount" value="1"/>
|
||||
<option id="ShowFPS" value="0"/>
|
||||
<option id="ResolutionScaling" value="0"/>
|
||||
<option id="Anisotropic" value="1"/>
|
||||
<option id="ShadowQuality" value="2"/>
|
||||
<option id="NightShadows" value="0"/>
|
||||
<option id="MotionBlurQuality" value="1"/>
|
||||
<option id="EnvStreamingTex" value="1"/>
|
||||
<option id="GeometryQuality" value="2"/>
|
||||
<option id="MSAA" value="1"/>
|
||||
<option id="FXAA" value="0"/>
|
||||
<option id="TAA" value="0"/>
|
||||
<option id="SSAO" value="0"/>
|
||||
<option id="ReflectionQuality" value="2"/>
|
||||
<option id="CarLOD" value="1"/>
|
||||
<option id="DeformableSnowQuality" value="1"/>
|
||||
<option id="SSRQuality" value="2"/>
|
||||
<option id="LensEffects" value="1"/>
|
||||
<option id="ShaderQuality" value="1"/>
|
||||
<option id="ParticlesSettings" value="1"/>
|
||||
<option id="DXRQuality" value="0"/>
|
||||
</selections>
|
||||
</UserConfig>
|
||||
105
forza5/presets/UserConfigSelections_ultra
Normal file
@@ -0,0 +1,105 @@
|
||||
|
||||
<UserConfig Version="30" HardwareHash="0">
|
||||
<settings>
|
||||
<PresentInterval value="2"/>
|
||||
<MonitorRefreshPeriod value="refreshreplace"/>
|
||||
<CollidableShadows isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<UIScale value="1.000000"/>
|
||||
<CarSpecularCubemapResolution isDynamic="1" dynamicValue="High"/>
|
||||
<GlobalSpecularCubemapResolution isDynamic="0" dynamicValue="Default" name="Default" value="512"/>
|
||||
<UseCarSpecularCubemapInCockpit isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarSpecularCubemapMSAA isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CubemapDrawDistanceScalar isDynamic="0" dynamicValue="Default" name="Default" value="3.000000"/>
|
||||
<CubemapMeshSizeThresholdScalar isDynamic="0" dynamicValue="Default" name="Default" value="0.143000"/>
|
||||
<ParticleRateScale isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<EnvMapFrequencyScale isDynamic="1" dynamicValue="High"/>
|
||||
<CarReflectionLOD isDynamic="1" dynamicValue="High"/>
|
||||
<TilingScenario isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<CollidablesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<MaxCarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="7"/>
|
||||
<LOD3CarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<HalfRateMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<ParticlesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarLODThresholds isDynamic="0" dynamicValue="Default" name="Default" lod1="3" lod2="6" lod3="9" count="30"/>
|
||||
<CarFocusLODMinMax isDynamic="1" dynamicValue="Ultra"/>
|
||||
<CarNonFocusLODMinMax isDynamic="0" dynamicValue="Default" name="Default" min="1" max="5"/>
|
||||
<CarLODTransDist isDynamic="0" dynamicValue="Default" name="Default" near="22.500000" far="37.500000" veryFar="75.000000" farthest="112.500000" lodproxy="125.000000" lodproxyfade="20.000000"/>
|
||||
<CarTextureMIPsDropped isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<ShadowMapUpdateRateWhenReduced isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<AllowScreenTearing isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<EnableWindshieldReflections isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<WindshieldReflectionResolution isDynamic="0" dynamicValue="Default" name="Default" value="512"/>
|
||||
<MirrorResolution isDynamic="0" dynamicValue="Default" name="Default" value="320"/>
|
||||
<MirrorFarDistance isDynamic="0" dynamicValue="Default" name="Default" value="2000"/>
|
||||
<ResolutionWidth value="1920"/>
|
||||
<ResolutionHeight value="1080"/>
|
||||
<Fullscreen value="1"/>
|
||||
<ShowFPS isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UseDynamicOptimization value="1"/>
|
||||
<DeformableSnowQuality isDynamic="0" dynamicValue="" Active="1" TessellationLOD0Dist="12.000000" TessellationLOD0EdgeLength="0.250000" TessellationLOD1Dist="20.000000" TessellationLOD1EdgeLength="1.000000" TessellationLOD2Dist="35.000000" TessellationLOD2EdgeLength="2.000000" VertexModifyMinDist="20.000000" VertexModifyMaxDist="35.000000"/>
|
||||
<SSRQuality isDynamic="1" dynamicValue="High"/>
|
||||
<MasterVolume value="1.000000"/>
|
||||
<ParticlesQuality isDynamic="0" dynamicValue="" name="Default" value="Medium"/>
|
||||
<PlayerCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="2048"/>
|
||||
<OpponentCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<PlayerCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<OpponentCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<PlayerCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<LiveryHighResolutionDecals isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<UIHUDGlassCaptureEnabled isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MegaTextureLowSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.025000"/>
|
||||
<MegaTextureHighSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.003000"/>
|
||||
<FollowLowFOV value="48.500000"/>
|
||||
<FollowHighFOV value="58.000000"/>
|
||||
<DriverFOV value="48.000000"/>
|
||||
<DriverNoWheelFOV value="48.000000"/>
|
||||
<HoodFOV value="66.000000"/>
|
||||
<BumperHighFOV value="58.000000"/>
|
||||
<DepthPrePass isDynamic="0" dynamicValue="" TrackCullDistanceDefault="0.000000" TrackCullDistanceReduced="200.000000"/>
|
||||
<ScreenAreaTestsMain isDynamic="0" dynamicValue="Default" MainScene="200.000000" Depth="60.000000" Cinematic="130.000000" GroundReflection="23.000000"/>
|
||||
<ScreenAreaTestsShadow isDynamic="0" dynamicValue="Default" name="Default" value="100.000000"/>
|
||||
<ScreenAreaTestsCubemap isDynamic="0" dynamicValue="Default" name="Default" value="70.000000"/>
|
||||
<ScreenAreaTestsMirror isDynamic="0" dynamicValue="Default" name="Default" value="5.000000"/>
|
||||
<FWDPlusQuality isDynamic="1" dynamicValue="High"/>
|
||||
<UseGlobalSpecularCubemapForCar isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<KeepCarsClean isDynamic="0" dynamicValue="" name="Default" value="0"/>
|
||||
<EnablePCHDR isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<DXRQuality value="0"/>
|
||||
<UseLowQualityAIDrivers isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<TAASharpness value="5.000000"/>
|
||||
<DLC1FollowLowFOV value="65.000000"/>
|
||||
<DLC1FollowHighFOV value="65.000000"/>
|
||||
<DLC1DriverFOV value="45.000000"/>
|
||||
<DLC1DriverNoWheelFOV value="45.000000"/>
|
||||
<DLC1HoodFOV value="53.000000"/>
|
||||
<DLC1BumperHighFOV value="53.000000"/>
|
||||
</settings>
|
||||
<selections>
|
||||
<option id="UseDynamicOptimization" value="0"/>
|
||||
<option id="FrameRate" value="4"/>
|
||||
<option id="VSync" value="0"/>
|
||||
<option id="EnableHDR" value="0"/>
|
||||
<option id="MotionBlurAmount" value="1"/>
|
||||
<option id="ShowFPS" value="0"/>
|
||||
<option id="ResolutionScaling" value="0"/>
|
||||
<option id="Anisotropic" value="2"/>
|
||||
<option id="ShadowQuality" value="3"/>
|
||||
<option id="NightShadows" value="1"/>
|
||||
<option id="MotionBlurQuality" value="3"/>
|
||||
<option id="EnvStreamingTex" value="3"/>
|
||||
<option id="GeometryQuality" value="4"/>
|
||||
<option id="MSAA" value="1"/>
|
||||
<option id="FXAA" value="0"/>
|
||||
<option id="TAA" value="0"/>
|
||||
<option id="SSAO" value="1"/>
|
||||
<option id="ReflectionQuality" value="3"/>
|
||||
<option id="CarLOD" value="3"/>
|
||||
<option id="DeformableSnowQuality" value="3"/>
|
||||
<option id="SSRQuality" value="3"/>
|
||||
<option id="LensEffects" value="3"/>
|
||||
<option id="ShaderQuality" value="3"/>
|
||||
<option id="ParticlesSettings" value="3"/>
|
||||
<option id="DXRQuality" value="2"/>
|
||||
</selections>
|
||||
</UserConfig>
|
||||
105
forza5/presets/UserConfigSelections_verylow
Normal file
@@ -0,0 +1,105 @@
|
||||
|
||||
<UserConfig Version="30" HardwareHash="0">
|
||||
<settings>
|
||||
<PresentInterval value="2"/>
|
||||
<MonitorRefreshPeriod value="refreshreplace"/>
|
||||
<CollidableShadows isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UIScale value="1.000000"/>
|
||||
<CarSpecularCubemapResolution isDynamic="1" dynamicValue="Low"/>
|
||||
<GlobalSpecularCubemapResolution isDynamic="0" dynamicValue="Default" name="Default" value="128"/>
|
||||
<UseCarSpecularCubemapInCockpit isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarSpecularCubemapMSAA isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CubemapDrawDistanceScalar isDynamic="0" dynamicValue="Default" name="Default" value="1.000000"/>
|
||||
<CubemapMeshSizeThresholdScalar isDynamic="0" dynamicValue="Default" name="Default" value="1.000000"/>
|
||||
<ParticleRateScale isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<EnvMapFrequencyScale isDynamic="1" dynamicValue="Off"/>
|
||||
<CarReflectionLOD isDynamic="1" dynamicValue="VeryLow"/>
|
||||
<TilingScenario isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CollidablesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<MaxCarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="3"/>
|
||||
<LOD3CarsInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<HalfRateMirror isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<ParticlesInMirror isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<CarLODThresholds isDynamic="0" dynamicValue="Default" name="Default" lod1="0" lod2="0" lod3="4" count="12"/>
|
||||
<CarFocusLODMinMax isDynamic="1" dynamicValue="VeryLow"/>
|
||||
<CarNonFocusLODMinMax isDynamic="0" dynamicValue="Default" name="Default" min="3" max="5"/>
|
||||
<CarLODTransDist isDynamic="0" dynamicValue="Default" name="Default" near="10.000000" far="18.000000" veryFar="35.000000" farthest="55.000000" lodproxy="75.000000" lodproxyfade="20.000000"/>
|
||||
<CarTextureMIPsDropped isDynamic="0" dynamicValue="Default" name="Default" value="2"/>
|
||||
<ShadowMapUpdateRateWhenReduced isDynamic="0" dynamicValue="" name="Default" value="1.000000"/>
|
||||
<AllowScreenTearing isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<EnableWindshieldReflections isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<WindshieldReflectionResolution isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<MirrorResolution isDynamic="0" dynamicValue="Default" name="Default" value="160"/>
|
||||
<MirrorFarDistance isDynamic="0" dynamicValue="Default" name="Default" value="500"/>
|
||||
<ResolutionWidth value="1920"/>
|
||||
<ResolutionHeight value="1080"/>
|
||||
<Fullscreen value="1"/>
|
||||
<ShowFPS isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UseDynamicOptimization value="1"/>
|
||||
<DeformableSnowQuality isDynamic="0" dynamicValue="" Active="1" TessellationLOD0Dist="12.000000" TessellationLOD0EdgeLength="0.250000" TessellationLOD1Dist="20.000000" TessellationLOD1EdgeLength="1.000000" TessellationLOD2Dist="35.000000" TessellationLOD2EdgeLength="2.000000" VertexModifyMinDist="20.000000" VertexModifyMaxDist="35.000000"/>
|
||||
<SSRQuality isDynamic="1" dynamicValue="Off"/>
|
||||
<MasterVolume value="1.000000"/>
|
||||
<ParticlesQuality isDynamic="0" dynamicValue="" name="Default" value="Medium"/>
|
||||
<PlayerCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<OpponentCarLiveryResolution isDynamic="0" dynamicValue="Default" name="Default" value="1024"/>
|
||||
<PlayerCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateSSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<PlayerCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<OpponentCarLiveryIntermediateMSAA isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<LiveryHighResolutionDecals isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<UIHUDGlassCaptureEnabled isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<MegaTextureLowSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.025000"/>
|
||||
<MegaTextureHighSpeedBudget isDynamic="0" dynamicValue="" name="Default" value="0.003000"/>
|
||||
<FollowLowFOV value="48.500000"/>
|
||||
<FollowHighFOV value="58.000000"/>
|
||||
<DriverFOV value="48.000000"/>
|
||||
<DriverNoWheelFOV value="48.000000"/>
|
||||
<HoodFOV value="66.000000"/>
|
||||
<BumperHighFOV value="58.000000"/>
|
||||
<DepthPrePass isDynamic="0" dynamicValue="" TrackCullDistanceDefault="0.000000" TrackCullDistanceReduced="200.000000"/>
|
||||
<ScreenAreaTestsMain isDynamic="0" dynamicValue="Default" MainScene="70.000000" Depth="10.000000" Cinematic="50.000000" GroundReflection="23.000000"/>
|
||||
<ScreenAreaTestsShadow isDynamic="0" dynamicValue="Default" name="Default" value="0.000000"/>
|
||||
<ScreenAreaTestsCubemap isDynamic="0" dynamicValue="Default" name="Default" value="0.000000"/>
|
||||
<ScreenAreaTestsMirror isDynamic="0" dynamicValue="Default" name="Default" value="3.000000"/>
|
||||
<FWDPlusQuality isDynamic="1" dynamicValue="VeryLow"/>
|
||||
<UseGlobalSpecularCubemapForCar isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<KeepCarsClean isDynamic="0" dynamicValue="" name="Default" value="0"/>
|
||||
<EnablePCHDR isDynamic="0" dynamicValue="Default" name="Default" value="0"/>
|
||||
<DXRQuality value="0"/>
|
||||
<UseLowQualityAIDrivers isDynamic="0" dynamicValue="Default" name="Default" value="1"/>
|
||||
<TAASharpness value="5.000000"/>
|
||||
<DLC1FollowLowFOV value="65.000000"/>
|
||||
<DLC1FollowHighFOV value="65.000000"/>
|
||||
<DLC1DriverFOV value="45.000000"/>
|
||||
<DLC1DriverNoWheelFOV value="45.000000"/>
|
||||
<DLC1HoodFOV value="53.000000"/>
|
||||
<DLC1BumperHighFOV value="53.000000"/>
|
||||
</settings>
|
||||
<selections>
|
||||
<option id="UseDynamicOptimization" value="0"/>
|
||||
<option id="FrameRate" value="4"/>
|
||||
<option id="VSync" value="0"/>
|
||||
<option id="EnableHDR" value="0"/>
|
||||
<option id="MotionBlurAmount" value="1"/>
|
||||
<option id="ShowFPS" value="0"/>
|
||||
<option id="ResolutionScaling" value="0"/>
|
||||
<option id="Anisotropic" value="0"/>
|
||||
<option id="ShadowQuality" value="0"/>
|
||||
<option id="NightShadows" value="0"/>
|
||||
<option id="MotionBlurQuality" value="0"/>
|
||||
<option id="EnvStreamingTex" value="0"/>
|
||||
<option id="GeometryQuality" value="0"/>
|
||||
<option id="MSAA" value="0"/>
|
||||
<option id="FXAA" value="0"/>
|
||||
<option id="TAA" value="0"/>
|
||||
<option id="SSAO" value="0"/>
|
||||
<option id="ReflectionQuality" value="0"/>
|
||||
<option id="CarLOD" value="0"/>
|
||||
<option id="DeformableSnowQuality" value="0"/>
|
||||
<option id="SSRQuality" value="0"/>
|
||||
<option id="LensEffects" value="0"/>
|
||||
<option id="ShaderQuality" value="0"/>
|
||||
<option id="ParticlesSettings" value="0"/>
|
||||
<option id="DXRQuality" value="0"/>
|
||||
</selections>
|
||||
</UserConfig>
|
||||
21
forza5/pyproject.toml
Normal file
@@ -0,0 +1,21 @@
|
||||
[tool.poetry]
|
||||
name = "forza5-harness"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
authors = ["Nikolas Harris <nikolas@linusmediagroup.com"]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.10"
|
||||
PyAutoGUI = "^0.9.53"
|
||||
PyDirectInput = "^1.0.4"
|
||||
opencv-python = "^4.5.5"
|
||||
Pillow = "^9.1.1"
|
||||
psutil = "^5.9.1"
|
||||
PyYAML = "^6.0"
|
||||
imutils = "^0.5.4"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core>=1.0.0"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
15
forza5/template_test.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from cv2_utils import *
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
images_dir = os.path.join(script_dir, "images")
|
||||
test_images_dir = os.path.join(images_dir, "tests")
|
||||
|
||||
test_menus = {
|
||||
"mainmenu": cv2.imread(os.path.join(test_images_dir, "main_menu_2k.png"), cv2.IMREAD_UNCHANGED),
|
||||
"graphics_menu": cv2.imread(os.path.join(test_images_dir, "graphics_menu_2k.png"), cv2.IMREAD_UNCHANGED),
|
||||
"settings_menu": cv2.imread(os.path.join(test_images_dir, "settings_menu_2k.png"), cv2.IMREAD_UNCHANGED),
|
||||
"accessibility_menu": cv2.imread(os.path.join(test_images_dir, "settings_menu_2k.png"), cv2.IMREAD_UNCHANGED)
|
||||
}
|
||||
|
||||
found = locate_in_image(get_template('accessibility'), test_menus['accessibility_menu'], threshold=0.8, debug=1)
|
||||
print(found)
|
||||