fixed crash in mergetextures
This commit is contained in:
@@ -2266,14 +2266,14 @@
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\_py_abc.py',
|
||||
'PYMODULE'),
|
||||
('stringprep',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\stringprep.py',
|
||||
'PYMODULE'),
|
||||
('tracemalloc',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\tracemalloc.py',
|
||||
'PYMODULE'),
|
||||
('stringprep',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\stringprep.py',
|
||||
'PYMODULE'),
|
||||
('PIL.Image',
|
||||
'C:\\Users\\Niklas\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\PIL\\Image.py',
|
||||
'PYMODULE'),
|
||||
@@ -3232,34 +3232,34 @@
|
||||
'E:\\Arma Reforger '
|
||||
'Work\\1960-utils\\Texturing\\MergeTextures2\\build\\merge_textures\\base_library.zip',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\METADATA',
|
||||
('setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\METADATA',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\RECORD',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\RECORD',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\METADATA',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\METADATA',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\LICENSE',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\LICENSE',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\REQUESTED',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\REQUESTED',
|
||||
|
||||
@@ -277,33 +277,33 @@
|
||||
'E:\\Arma Reforger '
|
||||
'Work\\1960-utils\\Texturing\\MergeTextures2\\build\\merge_textures\\base_library.zip',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\METADATA',
|
||||
('setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\METADATA',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\RECORD',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\RECORD',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\METADATA',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\METADATA',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\LICENSE',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\LICENSE',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\WHEEL',
|
||||
('setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
('setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\REQUESTED',
|
||||
'C:\\Program '
|
||||
@@ -312,7 +312,7 @@
|
||||
[],
|
||||
False,
|
||||
False,
|
||||
1729345827,
|
||||
1737832798,
|
||||
[('run.exe',
|
||||
'C:\\Users\\Niklas\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\PyInstaller\\bootloader\\Windows-64bit-intel\\run.exe',
|
||||
'EXECUTABLE')],
|
||||
|
||||
@@ -253,33 +253,33 @@
|
||||
'E:\\Arma Reforger '
|
||||
'Work\\1960-utils\\Texturing\\MergeTextures2\\build\\merge_textures\\base_library.zip',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\METADATA',
|
||||
('setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\METADATA',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\RECORD',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\RECORD',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\METADATA',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\METADATA',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\LICENSE',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\LICENSE',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\WHEEL',
|
||||
('setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\WHEEL',
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\INSTALLER',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
('setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'C:\\Program '
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\entry_points.txt',
|
||||
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\setuptools-65.5.0.dist-info\\top_level.txt',
|
||||
'DATA'),
|
||||
('setuptools-65.5.0.dist-info\\REQUESTED',
|
||||
'C:\\Program '
|
||||
|
||||
Binary file not shown.
BIN
Texturing/MergeTextures2/dist/merge_textures.exe
vendored
BIN
Texturing/MergeTextures2/dist/merge_textures.exe
vendored
Binary file not shown.
@@ -66,6 +66,8 @@ def process_textures(input_files):
|
||||
material_count = len(textures)
|
||||
print(f"Detected {material_count} Materials to process.")
|
||||
|
||||
failed_converts = 0
|
||||
|
||||
# Process each material group
|
||||
for index, (material, files) in enumerate(textures.items()):
|
||||
basecolor_file = files.get('BaseColor')
|
||||
@@ -77,7 +79,6 @@ def process_textures(input_files):
|
||||
mask_file = files.get('Mask')
|
||||
|
||||
missing_files = []
|
||||
failed_converts = 0
|
||||
|
||||
# Check for required textures
|
||||
if not basecolor_file:
|
||||
@@ -92,9 +93,13 @@ def process_textures(input_files):
|
||||
print(f"({index + 1}/{material_count}) Skipping {material}: missing {', '.join(missing_files)}")
|
||||
failed_converts += 1
|
||||
else:
|
||||
# Convert to BCR/NMO format
|
||||
convert_to_bcr_nmo(material, basecolor_file, normal_file, rma_file, orm_file, emissive_file, opacity_file, mask_file, output_folder)
|
||||
# Convert to BCR/NMO format and track success or failure
|
||||
|
||||
if convert_to_bcr_nmo(material, basecolor_file, normal_file, rma_file, orm_file, emissive_file, opacity_file, mask_file, output_folder):
|
||||
print(f"({index + 1}/{material_count}) {material}: Successfully converted.")
|
||||
else:
|
||||
failed_converts += 1 # Increment counter here if conversion fails
|
||||
print(f"({index + 1}/{material_count}) Skipping {material}: input file sizes do not match.")
|
||||
|
||||
print(f"+++{material_count - failed_converts} of {material_count} materials successfully converted+++")
|
||||
time.sleep(3)
|
||||
@@ -106,6 +111,8 @@ def convert_to_bcr_nmo(material, basecolor_file, normal_file, rma_file, orm_file
|
||||
|
||||
if rma_file:
|
||||
rma_img = Image.open(rma_file).convert('RGBA')
|
||||
if not (basecolor_img.size == normal_img.size == rma_img.size):
|
||||
return False
|
||||
# BCR conversion
|
||||
bcr_img = Image.merge('RGBA', (basecolor_img.split()[0], basecolor_img.split()[1], basecolor_img.split()[2], rma_img.split()[0])) # Use Roughness (Alpha from RMA/ORM)
|
||||
bcr_img.save(os.path.join(output_folder, f"{material}_BCR.png"))
|
||||
@@ -114,6 +121,8 @@ def convert_to_bcr_nmo(material, basecolor_file, normal_file, rma_file, orm_file
|
||||
nmo_img.save(os.path.join(output_folder, f"{material}_NMO.png"))
|
||||
elif orm_file:
|
||||
rma_img = Image.open(orm_file).convert('RGBA')
|
||||
if not (basecolor_img.size == normal_img.size == rma_img.size):
|
||||
return False
|
||||
# BCR conversion
|
||||
bcr_img = Image.merge('RGBA', (basecolor_img.split()[0], basecolor_img.split()[1], basecolor_img.split()[2], rma_img.split()[1])) # Use Roughness (Alpha from RMA/ORM)
|
||||
bcr_img.save(os.path.join(output_folder, f"{material}_BCR.png"))
|
||||
@@ -132,6 +141,8 @@ def convert_to_bcr_nmo(material, basecolor_file, normal_file, rma_file, orm_file
|
||||
if mask_file:
|
||||
mask_img = Image.open(mask_file).convert('L')
|
||||
mask_img.save(os.path.join(output_folder, f"{material}_MASK.png"))
|
||||
|
||||
return True
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: drag and drop texture files onto the script")
|
||||
|
||||
Reference in New Issue
Block a user