Skip to content

Commit 9cb554b

Browse files
Add quality settings to default project template (o3de#17487)
* Add quality.setreg files to default template Signed-off-by: Alex Peterson <[email protected]> * output path when creating a project, gem or repo Signed-off-by: Alex Peterson <[email protected]> * add launcher type quality override .setreg files Signed-off-by: Alex Peterson <[email protected]> * update template.json Signed-off-by: Alex Peterson <[email protected]> --------- Signed-off-by: Alex Peterson <[email protected]>
1 parent 39bbf9b commit 9cb554b

File tree

11 files changed

+426
-0
lines changed

11 files changed

+426
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Android platform specific quality setting overrides go in this file
5+
"Groups": {
6+
"q_general": {
7+
"Default": 1 // override the default level for this platform to be medium
8+
},
9+
"q_graphics": {
10+
"Default": 1, // override the default level for this platform to be medium
11+
"Settings": {
12+
// Setting overrides can be specified using an array to assign values to
13+
// quality levels. For example if you have 4 quality levels:
14+
// "<cvar>": [<low setting>, <medium setting>, <high setting>, <veryhigh setting>]
15+
// "r_skinnedMeshInstanceMemoryPoolSize": [64, 96, 128, 256]
16+
// Or you can use a single value for all levels, for example:
17+
// "r_skinnedMeshInstanceMemoryPoolSize": 96
18+
"r_renderScale": [0.7, 0.8, 0.9, 1.0]
19+
}
20+
},
21+
"q_shadows": {
22+
"Settings": {
23+
// Shadows console variable setting overrides go here
24+
}
25+
}
26+
// Additional custom quality groups overrides go here.
27+
},
28+
"Devices": {
29+
// Device rules for this platform go here
30+
// Device rule groups can have whatever name makes sense to you
31+
"DeviceRulesLow": {
32+
"Rules": {
33+
// Device rules are regular expressions
34+
// Rule matching Pixel 3 - 6
35+
"DeviceModelLow": { "DeviceModel": "^Pixel [3-6]\D*$" }
36+
},
37+
"Settings": {
38+
// Device cvar quality overrides go here for this rule
39+
// Change the general quality level to low
40+
"q_general": 0
41+
// For example, to change a specific setting
42+
// "r_skinnedMeshInstanceMemoryPoolSize": 64
43+
}
44+
},
45+
"DeviceRulesHigh": {
46+
"Rules": {
47+
// Device rules are regular expressions, only one of these rules needs to match
48+
// Rule matching Pixel 8
49+
"PixelModelsHigh": { "DeviceModel": "^Pixel 8\D*$" },
50+
// Rule matching Galaxy S23 models
51+
"GalaxyS23Models": { "DeviceModel": "^(SC-51D|SCG19|SM-S911.*)$" },
52+
"GalaxyS23FEModels": { "DeviceModel": "^SM-S71.*$" },
53+
"GalaxyS23UltraModels": { "DeviceModel": "^(SC-52D|SCG20|SM-S918.*)$" },
54+
"GalaxyS23PlusModels": { "DeviceModel": "^SM-S916.*$" }
55+
},
56+
"Settings": {
57+
// Device cvar quality overrides go here for this rule
58+
// Change the general quality level for the device to high
59+
"q_general": 2
60+
// For example, to change a specific setting
61+
// "r_skinnedMeshInstanceMemoryPoolSize": 64
62+
}
63+
}
64+
}
65+
}
66+
}
67+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Linux platform specific quality setting overrides go in this file
5+
"Groups": {
6+
"q_general": {
7+
"Default": 0 // override the default level for this platform to be low
8+
}
9+
// Additional custom quality groups overrides go here.
10+
},
11+
"Devices": {
12+
// Device rules for this platform go here
13+
// Device rule groups can have whatever name makes sense to you
14+
//"Example": {
15+
// "Rules": {
16+
// "ExampleRegexRule": { "DeviceModel": "^ModelRegex$" }
17+
// },
18+
// "Settings": {
19+
// "q_general": 0
20+
// }
21+
//}
22+
}
23+
}
24+
}
25+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Mac platform specific quality setting overrides go in this file
5+
"Groups": {
6+
// Example of how to override the default quality level for this platform to be high
7+
//"q_general": {
8+
// "Default": 2
9+
//}
10+
// Additional custom quality groups overrides go here.
11+
},
12+
"Devices": {
13+
// Device rules for this platform go here
14+
// Device rule groups can have whatever name makes sense to you
15+
//"Example": {
16+
// "Rules": {
17+
// "ExampleRegexRule": { "DeviceModel": "^ModelRegex$" }
18+
// },
19+
// "Settings": {
20+
// "q_general": 0
21+
// }
22+
//}
23+
}
24+
}
25+
}
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Windows platform specific quality setting overrides go in this file
5+
"Groups": {
6+
// Example of how to override the default quality level for this platform to be high
7+
//"q_general": {
8+
// "Default": 2
9+
//}
10+
// Additional custom quality groups overrides go here.
11+
},
12+
"Devices": {
13+
// Device rules for this platform go here
14+
// Device rule groups can have whatever name makes sense to you
15+
//"Example": {
16+
// "Rules": {
17+
// "ExampleRegexRule": { "DeviceModel": "^ModelRegex$" }
18+
// },
19+
// "Settings": {
20+
// "q_general": 0
21+
// }
22+
//}
23+
}
24+
}
25+
}
26+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Platform specific quality setting overrides go in this file
5+
"Groups": {
6+
"q_general": {
7+
"Default": 1 // override the default level for this platform to be medium
8+
},
9+
"q_graphics": {
10+
"Default": 1, // override the default level for this platform to be medium
11+
"Settings": {
12+
// Setting overrides can be specified using an array to assign values to
13+
// quality levels. For example if you have 4 quality levels:
14+
// "<cvar>": [<low setting>, <medium setting>, <high setting>, <veryhigh setting>]
15+
// "r_skinnedMeshInstanceMemoryPoolSize": [64, 96, 128, 256]
16+
// Or you can use a single value for all levels, for example:
17+
// "r_skinnedMeshInstanceMemoryPoolSize": 96
18+
"r_renderScale": [0.7, 0.8, 0.9, 1.0]
19+
}
20+
},
21+
"q_shadows": {
22+
"Settings": {
23+
// Shadows console variable setting overrides go here
24+
}
25+
}
26+
// Additional custom quality groups overrides go here.
27+
},
28+
"Devices": {
29+
// Device rules for this platform go here
30+
// Device rule groups can have whatever name makes sense to you
31+
"iPhoneLow": {
32+
"Rules": {
33+
// Device rules are regular expressions
34+
// Rule matching iPhone10,1 (iPhone 8) - iPhone 11,8 (iPhone XR)
35+
"DeviceModelIphone10_11": { "DeviceModel": "iPhone(1[0-1].*)" },
36+
"DeviceModelIphone6_8": { "DeviceModel": "iPhone([6-8].*)" },
37+
"DeviceModelIPad4_6": { "DeviceModel": "iPad([4-6].*)" }
38+
},
39+
"Settings": {
40+
// Device cvar quality overrides go here for this rule
41+
// Change the general quality level to low (i.e setting 0)
42+
"q_general": 0
43+
// For example, to change a specific setting
44+
// "r_skinnedMeshInstanceMemoryPoolSize": 64
45+
}
46+
},
47+
"iPhoneMedium": {
48+
"Rules": {
49+
"DeviceModelIphone12_13": { "DeviceModel": "iPhone(1[2-3].*)" },
50+
"DeviceModelIpad7": { "DeviceModel": "iPad(7.*)" }
51+
},
52+
"Settings": {
53+
// Device cvar quality overrides go here for this rule
54+
// Change the general quality level to medium (i.e setting 1)
55+
"q_general": 1
56+
}
57+
},
58+
"iPhoneHigh": {
59+
"Rules": {
60+
// Device rules are regular expressions
61+
"DeviceModelIphone14": { "DeviceModel": "iPhone(14.*)" },
62+
"DeviceModelIpad8_9": { "DeviceModel": "iPad([8-9].*)" }
63+
},
64+
"Settings": {
65+
// Device cvar quality overrides go here for this rule
66+
// Change the general quality level for the device to high (i.e setting 2)
67+
"q_general": 2
68+
}
69+
},
70+
"iPhoneVeryHigh": {
71+
"Rules": {
72+
// Device rules are regular expressions
73+
"DeviceModelIphone15_16": { "DeviceModel": "iPhone(15,[4-5]|16,[1-9])" }
74+
},
75+
"Settings": {
76+
// Device cvar quality overrides go here for this rule
77+
// Change the general quality level for the device to very high (i.e setting 3)
78+
"q_general": 3
79+
}
80+
}
81+
}
82+
}
83+
}
84+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Client specific quality setting overrides go in this file
5+
// See Registry/quality.setreg for more details
6+
"Groups": {
7+
// Example of how to override the default quality level for clients to be high
8+
//"q_general": {
9+
// "Default": 2
10+
//}
11+
// Additional custom quality groups overrides go here.
12+
},
13+
"Devices": {
14+
// Device rules for clients go here
15+
// Device rule groups can have whatever name makes sense to you
16+
//"Example": {
17+
// "Rules": {
18+
// "ExampleRegexRule": { "DeviceModel": "^ModelRegex$" }
19+
// },
20+
// "Settings": {
21+
// "q_general": 0
22+
// }
23+
//}
24+
}
25+
}
26+
}
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Headless server specific quality setting overrides go in this file
5+
// See Registry/quality.setreg for more details
6+
"Groups": {
7+
// Example of how to override the default quality level for headelss to be low
8+
//"q_general": {
9+
// "Default": 0
10+
//}
11+
// Additional custom quality groups overrides go here.
12+
},
13+
"Devices": {
14+
// Device rules for headless servers go here
15+
// Device rule groups can have whatever name makes sense to you
16+
//"Example": {
17+
// "Rules": {
18+
// "ExampleRegexRule": { "DeviceModel": "^ModelRegex$" }
19+
// },
20+
// "Settings": {
21+
// "q_general": 0
22+
// }
23+
//}
24+
}
25+
}
26+
}
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// Server specific quality setting overrides go in this file
5+
// See Registry/quality.setreg for more details
6+
"Groups": {
7+
// Example of how to override the default quality level for server to be low
8+
//"q_general": {
9+
// "Default": 0
10+
//}
11+
// Additional custom quality groups overrides go here.
12+
},
13+
"Devices": {
14+
// Device rules for servers go here
15+
// Device rule groups can have whatever name makes sense to you
16+
//"Example": {
17+
// "Rules": {
18+
// "ExampleRegexRule": { "DeviceModel": "^ModelRegex$" }
19+
// },
20+
// "Settings": {
21+
// "q_general": 0
22+
// }
23+
//}
24+
}
25+
}
26+
}
27+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"O3DE": {
3+
"Quality": {
4+
// NOTE: All text on a line following // are comments and ignored by the JSON parser.
5+
// This makes it possible to include your favorite ASCII art in your .setreg files.
6+
//
7+
// Base quality settings for every platform go in this file.
8+
// Platform specific overrides can be found in Registry/Platform/<platform>/quality.setreg
9+
// e.g. iOS overrides go in Registry/Platform/iOS/quality.setreg
10+
"Groups": {
11+
// Each quality setting key (q_general, q_graphics etc.) is accessible as a CVAR
12+
// at runtime. You can change a quality group level at runtime in the console
13+
// using the key and new level you want to use. For example, to change the
14+
// q_general level to 3 at runtime, you can run the following console command:
15+
// q_general 3
16+
"q_general": {
17+
"Description" : "Default quality group. 0 : Low, 1 : Medium, 2 : High, 3 : VeryHigh",
18+
"Levels": [ "Low", "Medium", "High", "VeryHigh" ],
19+
"Default": 3,
20+
"Settings": {
21+
"q_graphics": [ 0, 1, 2, 3 ] // map q_general levels 1 to 1 with graphics levels
22+
}
23+
},
24+
"q_graphics": {
25+
"Description": "Graphics quality settings. 0 : Low, 1 : Medium, 2 : High, 3 : VeryHigh",
26+
"Levels": [ "Low", "Medium", "High", "VeryHigh" ],
27+
"Default": 3,
28+
"Settings": {
29+
"q_shadows": [ 0, 1, 2, 3 ],
30+
// Settings can be specified using an array to assign values to
31+
// quality levels. For example if you have 4 quality levels:
32+
// "<cvar>": [<low setting>, <medium setting>, <high setting>, <veryhigh setting>]
33+
// "r_skinnedMeshInstanceMemoryPoolSize": [64, 96, 128, 256]
34+
// Or you can use a single value for all levels, for example:
35+
// "r_skinnedMeshInstanceMemoryPoolSize": 96
36+
// Example of how to enable mesh instancing:
37+
// "r_meshInstancingEnabled": true,
38+
// "r_meshInstancingEnabledForTransparentObjects": true
39+
}
40+
},
41+
"q_shadows": {
42+
"Description": "Shadow quality settings. 0 : Low, 1 : Medium, 2 : High, 3 : VeryHigh",
43+
"Levels": [ "Low", "Medium", "High", "VeryHigh" ],
44+
"Settings": {
45+
// Shadows console variable settings go here for example:
46+
// The amount of meters to extrude the Obb towards light
47+
// direction when doing camera frustum overlap tests
48+
// "r_shadowCascadeExtrusionAmount": [10, -1, -1, -1]
49+
}
50+
}
51+
// Additional custom quality groups can be defined as desired,
52+
// preferably with a 'q_' prefix.
53+
}
54+
}
55+
}
56+
}

0 commit comments

Comments
 (0)