extapps 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,794 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>QtUi</class>
4
+ <widget class="QMainWindow" name="QtUi">
5
+ <property name="enabled">
6
+ <bool>true</bool>
7
+ </property>
8
+ <property name="geometry">
9
+ <rect>
10
+ <x>0</x>
11
+ <y>0</y>
12
+ <width>200</width>
13
+ <height>382</height>
14
+ </rect>
15
+ </property>
16
+ <property name="tabShape">
17
+ <enum>QTabWidget::Triangular</enum>
18
+ </property>
19
+ <property name="dockNestingEnabled">
20
+ <bool>true</bool>
21
+ </property>
22
+ <property name="dockOptions">
23
+ <set>QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::ForceTabbedDocks</set>
24
+ </property>
25
+ <widget class="QWidget" name="central_widget">
26
+ <property name="minimumSize">
27
+ <size>
28
+ <width>200</width>
29
+ <height>0</height>
30
+ </size>
31
+ </property>
32
+ <layout class="QVBoxLayout" name="verticalLayout">
33
+ <property name="spacing">
34
+ <number>2</number>
35
+ </property>
36
+ <property name="leftMargin">
37
+ <number>2</number>
38
+ </property>
39
+ <property name="topMargin">
40
+ <number>2</number>
41
+ </property>
42
+ <property name="rightMargin">
43
+ <number>2</number>
44
+ </property>
45
+ <property name="bottomMargin">
46
+ <number>2</number>
47
+ </property>
48
+ <item>
49
+ <layout class="QVBoxLayout" name="main_layout">
50
+ <property name="spacing">
51
+ <number>6</number>
52
+ </property>
53
+ <property name="sizeConstraint">
54
+ <enum>QLayout::SetFixedSize</enum>
55
+ </property>
56
+ <item>
57
+ <widget class="Header" name="header">
58
+ <property name="sizePolicy">
59
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
60
+ <horstretch>0</horstretch>
61
+ <verstretch>0</verstretch>
62
+ </sizepolicy>
63
+ </property>
64
+ <property name="minimumSize">
65
+ <size>
66
+ <width>0</width>
67
+ <height>19</height>
68
+ </size>
69
+ </property>
70
+ <property name="maximumSize">
71
+ <size>
72
+ <width>999</width>
73
+ <height>19</height>
74
+ </size>
75
+ </property>
76
+ <property name="font">
77
+ <font>
78
+ <weight>75</weight>
79
+ <bold>true</bold>
80
+ </font>
81
+ </property>
82
+ <property name="text">
83
+ <string>MAP CONVERTER</string>
84
+ </property>
85
+ </widget>
86
+ </item>
87
+ <item>
88
+ <widget class="QGroupBox" name="Formatting">
89
+ <property name="title">
90
+ <string/>
91
+ </property>
92
+ <layout class="QVBoxLayout" name="verticalLayout_4">
93
+ <property name="spacing">
94
+ <number>1</number>
95
+ </property>
96
+ <property name="leftMargin">
97
+ <number>0</number>
98
+ </property>
99
+ <property name="topMargin">
100
+ <number>0</number>
101
+ </property>
102
+ <property name="rightMargin">
103
+ <number>0</number>
104
+ </property>
105
+ <property name="bottomMargin">
106
+ <number>0</number>
107
+ </property>
108
+ <item>
109
+ <widget class="CollapsableGroup" name="groupBox_2">
110
+ <property name="title">
111
+ <string>Convert:</string>
112
+ </property>
113
+ <layout class="QVBoxLayout" name="verticalLayout_3">
114
+ <property name="spacing">
115
+ <number>1</number>
116
+ </property>
117
+ <property name="leftMargin">
118
+ <number>1</number>
119
+ </property>
120
+ <property name="topMargin">
121
+ <number>1</number>
122
+ </property>
123
+ <property name="rightMargin">
124
+ <number>1</number>
125
+ </property>
126
+ <property name="bottomMargin">
127
+ <number>1</number>
128
+ </property>
129
+ <item>
130
+ <widget class="QPushButton" name="b000">
131
+ <property name="enabled">
132
+ <bool>true</bool>
133
+ </property>
134
+ <property name="sizePolicy">
135
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
136
+ <horstretch>0</horstretch>
137
+ <verstretch>0</verstretch>
138
+ </sizepolicy>
139
+ </property>
140
+ <property name="minimumSize">
141
+ <size>
142
+ <width>0</width>
143
+ <height>19</height>
144
+ </size>
145
+ </property>
146
+ <property name="maximumSize">
147
+ <size>
148
+ <width>16777215</width>
149
+ <height>19</height>
150
+ </size>
151
+ </property>
152
+ <property name="toolTip">
153
+ <string>&lt;b&gt;Convert DirectX to OpenGL&lt;/b&gt;&lt;br&gt;
154
+ Converts a &lt;b&gt;Normal Map&lt;/b&gt; from &lt;b&gt;DirectX&lt;/b&gt; format to &lt;b&gt;OpenGL&lt;/b&gt; format.&lt;br&gt;&lt;br&gt;
155
+ &lt;b&gt;Usage:&lt;/b&gt; Select a &lt;b&gt;DirectX&lt;/b&gt; normal map.&lt;br&gt;&lt;br&gt;
156
+ - If an existing &lt;b&gt;OpenGL&lt;/b&gt; normal map of the same name is found, it will be &lt;b&gt;overwritten&lt;/b&gt;.</string>
157
+ </property>
158
+ <property name="text">
159
+ <string>DirectX to GL</string>
160
+ </property>
161
+ </widget>
162
+ </item>
163
+ <item>
164
+ <widget class="QPushButton" name="b001">
165
+ <property name="enabled">
166
+ <bool>true</bool>
167
+ </property>
168
+ <property name="sizePolicy">
169
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
170
+ <horstretch>0</horstretch>
171
+ <verstretch>0</verstretch>
172
+ </sizepolicy>
173
+ </property>
174
+ <property name="minimumSize">
175
+ <size>
176
+ <width>0</width>
177
+ <height>19</height>
178
+ </size>
179
+ </property>
180
+ <property name="maximumSize">
181
+ <size>
182
+ <width>16777215</width>
183
+ <height>19</height>
184
+ </size>
185
+ </property>
186
+ <property name="toolTip">
187
+ <string>&lt;b&gt;Convert OpenGL to DirectX&lt;/b&gt;&lt;br&gt;
188
+ Converts a &lt;b&gt;Normal Map&lt;/b&gt; from &lt;b&gt;OpenGL&lt;/b&gt; format to &lt;b&gt;DirectX&lt;/b&gt; format.&lt;br&gt;&lt;br&gt;
189
+ &lt;b&gt;Usage:&lt;/b&gt; Select an &lt;b&gt;OpenGL&lt;/b&gt; normal map.&lt;br&gt;&lt;br&gt;
190
+ - If an existing &lt;b&gt;DirectX&lt;/b&gt; normal map of the same name is found, it will be &lt;b&gt;overwritten&lt;/b&gt;.
191
+
192
+ </string>
193
+ </property>
194
+ <property name="text">
195
+ <string>OpenGL to DX</string>
196
+ </property>
197
+ </widget>
198
+ </item>
199
+ <item>
200
+ <widget class="QPushButton" name="b010">
201
+ <property name="enabled">
202
+ <bool>true</bool>
203
+ </property>
204
+ <property name="sizePolicy">
205
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
206
+ <horstretch>0</horstretch>
207
+ <verstretch>0</verstretch>
208
+ </sizepolicy>
209
+ </property>
210
+ <property name="minimumSize">
211
+ <size>
212
+ <width>0</width>
213
+ <height>19</height>
214
+ </size>
215
+ </property>
216
+ <property name="maximumSize">
217
+ <size>
218
+ <width>16777215</width>
219
+ <height>19</height>
220
+ </size>
221
+ </property>
222
+ <property name="toolTip">
223
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Convert Smoothness to Roughness &lt;/p&gt;&lt;p&gt;Converts a Smoothness map into a Roughness map by inverting its values. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select a Smoothness map. Batch processing is supported. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- If an existing Roughness map of the same name is found, it will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
224
+ </property>
225
+ <property name="text">
226
+ <string>Smoothness to Roughness</string>
227
+ </property>
228
+ </widget>
229
+ </item>
230
+ <item>
231
+ <widget class="QPushButton" name="b011">
232
+ <property name="enabled">
233
+ <bool>true</bool>
234
+ </property>
235
+ <property name="sizePolicy">
236
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
237
+ <horstretch>0</horstretch>
238
+ <verstretch>0</verstretch>
239
+ </sizepolicy>
240
+ </property>
241
+ <property name="minimumSize">
242
+ <size>
243
+ <width>0</width>
244
+ <height>19</height>
245
+ </size>
246
+ </property>
247
+ <property name="maximumSize">
248
+ <size>
249
+ <width>16777215</width>
250
+ <height>19</height>
251
+ </size>
252
+ </property>
253
+ <property name="toolTip">
254
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Convert Roughness to Smoothness &lt;/p&gt;&lt;p&gt;Converts a Roughness map into a Smoothness map by inverting its values. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select a Roughness map. Batch processing is supported. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- If an existing Smoothness map of the same name is found, it will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
255
+ </property>
256
+ <property name="text">
257
+ <string>Roughness to Smoothness</string>
258
+ </property>
259
+ </widget>
260
+ </item>
261
+ <item>
262
+ <widget class="PushButton" name="tb001">
263
+ <property name="enabled">
264
+ <bool>true</bool>
265
+ </property>
266
+ <property name="sizePolicy">
267
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
268
+ <horstretch>0</horstretch>
269
+ <verstretch>0</verstretch>
270
+ </sizepolicy>
271
+ </property>
272
+ <property name="minimumSize">
273
+ <size>
274
+ <width>0</width>
275
+ <height>19</height>
276
+ </size>
277
+ </property>
278
+ <property name="maximumSize">
279
+ <size>
280
+ <width>16777215</width>
281
+ <height>19</height>
282
+ </size>
283
+ </property>
284
+ <property name="toolTip">
285
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Convert Specular Glossiness to PBR&lt;/span&gt;&lt;br/&gt;Converts Specular Glossiness map(s) to &lt;span style=&quot; font-weight:600;&quot;&gt;PBR&lt;/span&gt; format.&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Usage:&lt;/span&gt; Select &lt;span style=&quot; font-weight:600;&quot;&gt;Diffuse, Specular,&lt;/span&gt; and &lt;span style=&quot; font-weight:600;&quot;&gt;Glossiness&lt;/span&gt; maps. Select multiple maps from different sets to batch process.&lt;br/&gt;&lt;br/&gt;- If no &lt;span style=&quot; font-weight:600;&quot;&gt;Glossiness&lt;/span&gt; map is provided, it will attempt to extract it from the &lt;span style=&quot; font-weight:600;&quot;&gt;Specular&lt;/span&gt; map.&lt;br/&gt;- If extraction fails, the &lt;span style=&quot; font-weight:600;&quot;&gt;Roughness&lt;/span&gt; map will be approximated using the &lt;span style=&quot; font-weight:600;&quot;&gt;Specular&lt;/span&gt; map.&lt;br/&gt;- If existing &lt;span style=&quot; font-weight:600;&quot;&gt;BaseColor, Metallic,&lt;/span&gt; and &lt;span style=&quot; font-weight:600;&quot;&gt;Roughness&lt;/span&gt; maps of the same name exist, they will be &lt;span style=&quot; font-weight:600;&quot;&gt;overwritten&lt;/span&gt;. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
286
+ </property>
287
+ <property name="text">
288
+ <string>Spec Gloss to PBR</string>
289
+ </property>
290
+ </widget>
291
+ </item>
292
+ <item>
293
+ <widget class="PushButton" name="tb000">
294
+ <property name="enabled">
295
+ <bool>true</bool>
296
+ </property>
297
+ <property name="sizePolicy">
298
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
299
+ <horstretch>0</horstretch>
300
+ <verstretch>0</verstretch>
301
+ </sizepolicy>
302
+ </property>
303
+ <property name="minimumSize">
304
+ <size>
305
+ <width>0</width>
306
+ <height>19</height>
307
+ </size>
308
+ </property>
309
+ <property name="maximumSize">
310
+ <size>
311
+ <width>16777215</width>
312
+ <height>19</height>
313
+ </size>
314
+ </property>
315
+ <property name="toolTip">
316
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Optimize Texture&lt;/span&gt;&lt;br/&gt;Optimizes a texture by clamping the maximum size and adjusting the image (such as setting bit depth) according to the map type.&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Usage:&lt;/span&gt; Select the texture map(s) to optimize.&lt;br/&gt;&lt;br/&gt;The optimized texture will be created in the same directory, with the original file moved to an &lt;span style=&quot; font-style:italic;&quot;&gt;old&lt;/span&gt; folder. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
317
+ </property>
318
+ <property name="text">
319
+ <string>Optimize</string>
320
+ </property>
321
+ </widget>
322
+ </item>
323
+ <item>
324
+ <widget class="PushButton" name="tb003">
325
+ <property name="enabled">
326
+ <bool>true</bool>
327
+ </property>
328
+ <property name="sizePolicy">
329
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
330
+ <horstretch>0</horstretch>
331
+ <verstretch>0</verstretch>
332
+ </sizepolicy>
333
+ </property>
334
+ <property name="minimumSize">
335
+ <size>
336
+ <width>0</width>
337
+ <height>19</height>
338
+ </size>
339
+ </property>
340
+ <property name="maximumSize">
341
+ <size>
342
+ <width>16777215</width>
343
+ <height>19</height>
344
+ </size>
345
+ </property>
346
+ <property name="toolTip">
347
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Bump to Normal&lt;/span&gt;&lt;br/&gt;Converts Bump/Height to Normal with options available in the tool menu.&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Options:&lt;/span&gt; Choose OpenGL or DirectX format and set intensity.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
348
+ </property>
349
+ <property name="text">
350
+ <string>Bump to Normal</string>
351
+ </property>
352
+ </widget>
353
+ </item>
354
+ </layout>
355
+ </widget>
356
+ </item>
357
+ <item>
358
+ <widget class="CollapsableGroup" name="groupBox">
359
+ <property name="title">
360
+ <string>Pack:</string>
361
+ </property>
362
+ <layout class="QVBoxLayout" name="verticalLayout_2">
363
+ <property name="spacing">
364
+ <number>1</number>
365
+ </property>
366
+ <property name="leftMargin">
367
+ <number>1</number>
368
+ </property>
369
+ <property name="topMargin">
370
+ <number>1</number>
371
+ </property>
372
+ <property name="rightMargin">
373
+ <number>1</number>
374
+ </property>
375
+ <property name="bottomMargin">
376
+ <number>1</number>
377
+ </property>
378
+ <item>
379
+ <widget class="QPushButton" name="b004">
380
+ <property name="enabled">
381
+ <bool>true</bool>
382
+ </property>
383
+ <property name="sizePolicy">
384
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
385
+ <horstretch>0</horstretch>
386
+ <verstretch>0</verstretch>
387
+ </sizepolicy>
388
+ </property>
389
+ <property name="minimumSize">
390
+ <size>
391
+ <width>0</width>
392
+ <height>19</height>
393
+ </size>
394
+ </property>
395
+ <property name="maximumSize">
396
+ <size>
397
+ <width>16777215</width>
398
+ <height>19</height>
399
+ </size>
400
+ </property>
401
+ <property name="toolTip">
402
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Pack Transparency into Albedo&lt;/span&gt;&lt;br/&gt;Combines a &lt;span style=&quot; font-weight:600;&quot;&gt;Transparency (Opacity)&lt;/span&gt; map into the &lt;span style=&quot; font-weight:600;&quot;&gt;Albedo&lt;/span&gt; map.&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Usage:&lt;/span&gt; Select an &lt;span style=&quot; font-weight:600;&quot;&gt;Albedo&lt;/span&gt; and an &lt;span style=&quot; font-weight:600;&quot;&gt;Opacity&lt;/span&gt; map. Select multiple maps from different sets to batch process.&lt;br/&gt;&lt;br/&gt;- If an existing &lt;span style=&quot; font-weight:600;&quot;&gt;Albedo Transparency&lt;/span&gt; map of the same name exists, it will be &lt;span style=&quot; font-weight:600;&quot;&gt;overwritten&lt;/span&gt;.&lt;br/&gt;- If a &lt;span style=&quot; font-weight:600;&quot;&gt;BaseColor&lt;/span&gt; map is provided, it will be converted to &lt;span style=&quot; font-weight:600;&quot;&gt;Albedo&lt;/span&gt;. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
403
+ </property>
404
+ <property name="text">
405
+ <string>Albedo Transparency</string>
406
+ </property>
407
+ </widget>
408
+ </item>
409
+ <item>
410
+ <widget class="QPushButton" name="b005">
411
+ <property name="enabled">
412
+ <bool>true</bool>
413
+ </property>
414
+ <property name="sizePolicy">
415
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
416
+ <horstretch>0</horstretch>
417
+ <verstretch>0</verstretch>
418
+ </sizepolicy>
419
+ </property>
420
+ <property name="minimumSize">
421
+ <size>
422
+ <width>0</width>
423
+ <height>19</height>
424
+ </size>
425
+ </property>
426
+ <property name="maximumSize">
427
+ <size>
428
+ <width>16777215</width>
429
+ <height>19</height>
430
+ </size>
431
+ </property>
432
+ <property name="toolTip">
433
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Pack Smoothness or Roughness into Metallic&lt;/span&gt;&lt;br/&gt;Combines a &lt;span style=&quot; font-weight:600;&quot;&gt;Smoothness&lt;/span&gt; or &lt;span style=&quot; font-weight:600;&quot;&gt;Roughness&lt;/span&gt; map into the &lt;span style=&quot; font-weight:600;&quot;&gt;Metallic&lt;/span&gt; map.&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Usage:&lt;/span&gt; Select a &lt;span style=&quot; font-weight:600;&quot;&gt;Roughness&lt;/span&gt; and a &lt;span style=&quot; font-weight:600;&quot;&gt;Metallic&lt;/span&gt; map. Select multiple maps from different sets to batch process.&lt;br/&gt;&lt;br/&gt;- If an existing &lt;span style=&quot; font-weight:600;&quot;&gt;Metallic Smoothness&lt;/span&gt; map of the same name exists, it will be &lt;span style=&quot; font-weight:600;&quot;&gt;overwritten&lt;/span&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
434
+ </property>
435
+ <property name="text">
436
+ <string>Metallic Smoothness</string>
437
+ </property>
438
+ </widget>
439
+ </item>
440
+ <item>
441
+ <widget class="PushButton" name="b008">
442
+ <property name="enabled">
443
+ <bool>true</bool>
444
+ </property>
445
+ <property name="sizePolicy">
446
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
447
+ <horstretch>0</horstretch>
448
+ <verstretch>0</verstretch>
449
+ </sizepolicy>
450
+ </property>
451
+ <property name="minimumSize">
452
+ <size>
453
+ <width>0</width>
454
+ <height>19</height>
455
+ </size>
456
+ </property>
457
+ <property name="maximumSize">
458
+ <size>
459
+ <width>16777215</width>
460
+ <height>19</height>
461
+ </size>
462
+ </property>
463
+ <property name="toolTip">
464
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pack Metallic Smoothness AO &lt;/p&gt;&lt;p&gt;Combines Metallic, Smoothness (or Roughness), and Ambient Occlusion maps into a single packed texture. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select Metallic, Roughness (or Smoothness), and AO maps. Multiple sets can be processed in batch. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- RGBA (HDRP Mask Map): R=Metallic, G=AO, B=Detail, A=Smoothness. &lt;/p&gt;&lt;p&gt;- RGB (3-channel parallel to MRAO): R=Metallic, G=Smoothness, B=AO. &lt;/p&gt;&lt;p&gt;- If an existing MSAO map of the same name exists, it will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
465
+ </property>
466
+ <property name="text">
467
+ <string>MSAO</string>
468
+ </property>
469
+ </widget>
470
+ </item>
471
+ <item>
472
+ <widget class="PushButton" name="b013">
473
+ <property name="enabled">
474
+ <bool>true</bool>
475
+ </property>
476
+ <property name="sizePolicy">
477
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
478
+ <horstretch>0</horstretch>
479
+ <verstretch>0</verstretch>
480
+ </sizepolicy>
481
+ </property>
482
+ <property name="minimumSize">
483
+ <size>
484
+ <width>0</width>
485
+ <height>19</height>
486
+ </size>
487
+ </property>
488
+ <property name="maximumSize">
489
+ <size>
490
+ <width>16777215</width>
491
+ <height>19</height>
492
+ </size>
493
+ </property>
494
+ <property name="toolTip">
495
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pack Metallic Roughness AO &lt;/p&gt;&lt;p&gt;Combines Metallic, Roughness (or Smoothness), and Ambient Occlusion maps into a single packed texture. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select Metallic, Roughness (or Smoothness), and AO maps. Multiple sets can be processed in batch. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- RGB (default, industry standard): R=Metallic, G=Roughness, B=AO. &lt;/p&gt;&lt;p&gt;- RGBA (mirror of MSAO): R=Metallic, G=AO, B=Detail, A=Roughness. &lt;/p&gt;&lt;p&gt;- If an existing MRAO map of the same name exists, it will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
496
+ </property>
497
+ <property name="text">
498
+ <string>MRAO</string>
499
+ </property>
500
+ </widget>
501
+ </item>
502
+ <item>
503
+ <widget class="QPushButton" name="b015">
504
+ <property name="enabled">
505
+ <bool>true</bool>
506
+ </property>
507
+ <property name="sizePolicy">
508
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
509
+ <horstretch>0</horstretch>
510
+ <verstretch>0</verstretch>
511
+ </sizepolicy>
512
+ </property>
513
+ <property name="minimumSize">
514
+ <size>
515
+ <width>0</width>
516
+ <height>19</height>
517
+ </size>
518
+ </property>
519
+ <property name="maximumSize">
520
+ <size>
521
+ <width>16777215</width>
522
+ <height>19</height>
523
+ </size>
524
+ </property>
525
+ <property name="toolTip">
526
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pack Occlusion Roughness Metallic &lt;/p&gt;&lt;p&gt;Combines Ambient Occlusion, Roughness (or Smoothness), and Metallic maps into a single packed ORM texture. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select Metallic, Roughness (or Smoothness), and AO maps. Multiple sets can be processed in batch. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- Output channels: R=Occlusion, G=Roughness, B=Metallic (Unreal/glTF convention). &lt;/p&gt;&lt;p&gt;- If an existing ORM map of the same name exists, it will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
527
+ </property>
528
+ <property name="text">
529
+ <string>ORM</string>
530
+ </property>
531
+ </widget>
532
+ </item>
533
+ </layout>
534
+ </widget>
535
+ </item>
536
+ <item>
537
+ <widget class="CollapsableGroup" name="groupBox_3">
538
+ <property name="title">
539
+ <string>Unpack:</string>
540
+ </property>
541
+ <layout class="QVBoxLayout" name="verticalLayout_5">
542
+ <property name="spacing">
543
+ <number>1</number>
544
+ </property>
545
+ <property name="leftMargin">
546
+ <number>1</number>
547
+ </property>
548
+ <property name="topMargin">
549
+ <number>1</number>
550
+ </property>
551
+ <property name="rightMargin">
552
+ <number>1</number>
553
+ </property>
554
+ <property name="bottomMargin">
555
+ <number>1</number>
556
+ </property>
557
+ <item>
558
+ <widget class="QPushButton" name="b007">
559
+ <property name="enabled">
560
+ <bool>true</bool>
561
+ </property>
562
+ <property name="sizePolicy">
563
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
564
+ <horstretch>0</horstretch>
565
+ <verstretch>0</verstretch>
566
+ </sizepolicy>
567
+ </property>
568
+ <property name="minimumSize">
569
+ <size>
570
+ <width>0</width>
571
+ <height>19</height>
572
+ </size>
573
+ </property>
574
+ <property name="maximumSize">
575
+ <size>
576
+ <width>16777215</width>
577
+ <height>19</height>
578
+ </size>
579
+ </property>
580
+ <property name="toolTip">
581
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Unpack Specular and Glossiness to separate maps.&lt;/span&gt;&lt;br/&gt;Extracts the Glossiness map from the Specular map's alpha channel.&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Usage:&lt;/span&gt; Select a &lt;span style=&quot; font-weight:600;&quot;&gt;Specular &lt;/span&gt;map.&lt;br/&gt;&lt;br/&gt;- If extraction fails, the Glossiness map will be approximated using the &lt;span style=&quot; font-weight:600;&quot;&gt;Specular&lt;/span&gt; map.&lt;br/&gt;- If an existing Specular or Glossiness map of the same name exists, it will be &lt;span style=&quot; font-weight:600;&quot;&gt;overwritten&lt;/span&gt;. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
582
+ </property>
583
+ <property name="text">
584
+ <string>Spec Gloss</string>
585
+ </property>
586
+ </widget>
587
+ </item>
588
+ <item>
589
+ <widget class="QPushButton" name="b006">
590
+ <property name="enabled">
591
+ <bool>true</bool>
592
+ </property>
593
+ <property name="sizePolicy">
594
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
595
+ <horstretch>0</horstretch>
596
+ <verstretch>0</verstretch>
597
+ </sizepolicy>
598
+ </property>
599
+ <property name="minimumSize">
600
+ <size>
601
+ <width>0</width>
602
+ <height>19</height>
603
+ </size>
604
+ </property>
605
+ <property name="maximumSize">
606
+ <size>
607
+ <width>16777215</width>
608
+ <height>19</height>
609
+ </size>
610
+ </property>
611
+ <property name="toolTip">
612
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;UnPack MetallicSmoothness into separate Metallic and Smoothness maps.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Usage:&lt;/span&gt; Select a &lt;span style=&quot; font-weight:600;&quot;&gt;MetallicSmoothness&lt;/span&gt; map. Select multiple maps from different sets to batch process.&lt;br/&gt;&lt;br/&gt;- If an existing &lt;span style=&quot; font-weight:600;&quot;&gt;Metallic or Smoothness&lt;/span&gt; map of the same name exists, it will be &lt;span style=&quot; font-weight:600;&quot;&gt;overwritten&lt;/span&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
613
+ </property>
614
+ <property name="text">
615
+ <string>Metallic Smoothness</string>
616
+ </property>
617
+ </widget>
618
+ </item>
619
+ <item>
620
+ <widget class="PushButton" name="b009">
621
+ <property name="enabled">
622
+ <bool>true</bool>
623
+ </property>
624
+ <property name="sizePolicy">
625
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
626
+ <horstretch>0</horstretch>
627
+ <verstretch>0</verstretch>
628
+ </sizepolicy>
629
+ </property>
630
+ <property name="minimumSize">
631
+ <size>
632
+ <width>0</width>
633
+ <height>19</height>
634
+ </size>
635
+ </property>
636
+ <property name="maximumSize">
637
+ <size>
638
+ <width>16777215</width>
639
+ <height>19</height>
640
+ </size>
641
+ </property>
642
+ <property name="toolTip">
643
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Unpack Metallic Smoothness AO &lt;/p&gt;&lt;p&gt;Separates a packed MetallicSmoothnessAO map into individual Metallic, Smoothness (or Roughness), and AO maps. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select one or more MSAO maps to process. Batch processing is supported. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- Output maps: Metallic, Smoothness (or Roughness), and AO. &lt;/p&gt;&lt;p&gt;- Layout defaults to Auto-detect from image mode (RGBA = HDRP Mask Map, RGB = 3-channel parallel layout); override via the options menu when the file's name lies about its layout. &lt;/p&gt;&lt;p&gt;- If existing maps of the same name exist, they will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
644
+ </property>
645
+ <property name="text">
646
+ <string>MSAO</string>
647
+ </property>
648
+ </widget>
649
+ </item>
650
+ <item>
651
+ <widget class="PushButton" name="b014">
652
+ <property name="enabled">
653
+ <bool>true</bool>
654
+ </property>
655
+ <property name="sizePolicy">
656
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
657
+ <horstretch>0</horstretch>
658
+ <verstretch>0</verstretch>
659
+ </sizepolicy>
660
+ </property>
661
+ <property name="minimumSize">
662
+ <size>
663
+ <width>0</width>
664
+ <height>19</height>
665
+ </size>
666
+ </property>
667
+ <property name="maximumSize">
668
+ <size>
669
+ <width>16777215</width>
670
+ <height>19</height>
671
+ </size>
672
+ </property>
673
+ <property name="toolTip">
674
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Unpack Metallic Roughness AO &lt;/p&gt;&lt;p&gt;Separates a packed MetallicRoughnessAO map into individual Metallic, Roughness, and AO maps. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select one or more MRAO maps to process. Batch processing is supported. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- Output maps: Metallic, Roughness, and AO. &lt;/p&gt;&lt;p&gt;- Layout defaults to Auto-detect from image mode (RGB = industry standard, RGBA = MSAO mirror); override via the options menu when needed. &lt;/p&gt;&lt;p&gt;- If existing maps of the same name exist, they will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
675
+ </property>
676
+ <property name="text">
677
+ <string>MRAO</string>
678
+ </property>
679
+ </widget>
680
+ </item>
681
+ <item>
682
+ <widget class="QPushButton" name="b016">
683
+ <property name="enabled">
684
+ <bool>true</bool>
685
+ </property>
686
+ <property name="sizePolicy">
687
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
688
+ <horstretch>0</horstretch>
689
+ <verstretch>0</verstretch>
690
+ </sizepolicy>
691
+ </property>
692
+ <property name="minimumSize">
693
+ <size>
694
+ <width>0</width>
695
+ <height>19</height>
696
+ </size>
697
+ </property>
698
+ <property name="maximumSize">
699
+ <size>
700
+ <width>16777215</width>
701
+ <height>19</height>
702
+ </size>
703
+ </property>
704
+ <property name="toolTip">
705
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Unpack Occlusion Roughness Metallic &lt;/p&gt;&lt;p&gt;Separates a packed ORM map into individual Occlusion, Roughness, and Metallic maps. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Usage: Select one or more ORM maps to process. Batch processing is supported. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;- Input channels: R=Occlusion, G=Roughness, B=Metallic (Unreal/glTF convention). &lt;/p&gt;&lt;p&gt;- If existing maps of the same name exist, they will be overwritten.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
706
+ </property>
707
+ <property name="text">
708
+ <string>ORM</string>
709
+ </property>
710
+ </widget>
711
+ </item>
712
+ </layout>
713
+ </widget>
714
+ </item>
715
+ </layout>
716
+ </widget>
717
+ </item>
718
+ <item>
719
+ <spacer name="verticalSpacer">
720
+ <property name="orientation">
721
+ <enum>Qt::Vertical</enum>
722
+ </property>
723
+ <property name="sizeHint" stdset="0">
724
+ <size>
725
+ <width>0</width>
726
+ <height>10</height>
727
+ </size>
728
+ </property>
729
+ </spacer>
730
+ </item>
731
+ <item>
732
+ <widget class="Footer" name="footer" native="true">
733
+ <property name="minimumSize">
734
+ <size>
735
+ <width>0</width>
736
+ <height>19</height>
737
+ </size>
738
+ </property>
739
+ <property name="maximumSize">
740
+ <size>
741
+ <width>16777215</width>
742
+ <height>19</height>
743
+ </size>
744
+ </property>
745
+ </widget>
746
+ </item>
747
+ </layout>
748
+ </item>
749
+ </layout>
750
+ </widget>
751
+ </widget>
752
+ <customwidgets>
753
+ <customwidget>
754
+ <class>Header</class>
755
+ <extends>QLabel</extends>
756
+ <header>uitk.widgets.header</header>
757
+ </customwidget>
758
+ <customwidget>
759
+ <class>PushButton</class>
760
+ <extends>QPushButton</extends>
761
+ <header>uitk.widgets.pushButton</header>
762
+ </customwidget>
763
+ <customwidget>
764
+ <class>CollapsableGroup</class>
765
+ <extends>QGroupBox</extends>
766
+ <header>uitk.widgets.collapsableGroup.CollapsableGroup.h</header>
767
+ <container>1</container>
768
+ </customwidget>
769
+ <customwidget>
770
+ <class>Footer</class>
771
+ <extends>QWidget</extends>
772
+ <header>uitk.widgets.footer</header>
773
+ </customwidget>
774
+ </customwidgets>
775
+ <resources/>
776
+ <connections/>
777
+ <designerdata>
778
+ <property name="gridDeltaX">
779
+ <number>5</number>
780
+ </property>
781
+ <property name="gridDeltaY">
782
+ <number>5</number>
783
+ </property>
784
+ <property name="gridSnapX">
785
+ <bool>true</bool>
786
+ </property>
787
+ <property name="gridSnapY">
788
+ <bool>true</bool>
789
+ </property>
790
+ <property name="gridVisible">
791
+ <bool>true</bool>
792
+ </property>
793
+ </designerdata>
794
+ </ui>