{ "sourceFile": "Documentation/01_User_Guide/02_Features.md", "activeCommit": 0, "commits": [ { "activePatchIndex": 2, "patches": [ { "date": 1745494307791, "content": "Index: \n===================================================================\n--- \n+++ \n" }, { "date": 1745494347700, "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,7 +1,7 @@\n # User Guide: Features\r\n \r\n-The Asset Processor Tool provides the following key features:\r\n+This document outlines the key features of the Asset Processor Tool.\r\n \r\n ## Core Processing & Classification\r\n \r\n * **Preset-Driven:** Uses JSON presets (`presets/`) to define rules for different asset suppliers (e.g., `Poliigon.json`).\r\n@@ -15,4 +15,30 @@\n * Applies bit-depth rules (`respect` source or `force_8bit`).\r\n * Saves maps in appropriate formats (JPG, PNG, EXR) based on complex rules involving map type (`FORCE_LOSSLESS_MAP_TYPES`), resolution (`RESOLUTION_THRESHOLD_FOR_JPG`), bit depth, and source format.\r\n * Calculates basic image statistics (Min/Max/Mean) for a reference resolution.\r\n * Calculates and stores the relative aspect ratio change string in metadata (e.g., `EVEN`, `X150`, `Y125`).\r\n+* **Channel Merging:** Combines channels from different maps into packed textures (e.g., NRMRGH) based on preset rules (`MAP_MERGE_RULES` in `config.py`).\r\n+* **Metadata Generation:** Creates a `metadata.json` file for each asset containing details about maps, category, archetype, aspect ratio change, processing settings, etc.\r\n+* **Output Organization:** Creates a clean, structured output directory (`///`).\r\n+* **Optimized Classification:** Pre-compiles regular expressions from presets for faster file identification.\r\n+\r\n+## Interface & Automation\r\n+\r\n+* **Dual Interface:** Provides both a user-friendly GUI and a powerful CLI.\r\n+* **Parallel Processing:** Utilizes multiple CPU cores for faster processing (configurable via `--workers` in CLI or GUI control).\r\n+* **Skip/Overwrite:** Can skip processing if the output already exists or force reprocessing (`--overwrite` flag / checkbox).\r\n+* **Directory Monitor:** Includes `monitor.py` script for automated processing of assets dropped into a watched folder.\r\n+* **Responsive GUI:** Uses background threads (`QThread`, `ProcessPoolExecutor`, `ThreadPoolExecutor`) to keep the UI responsive during intensive operations.\r\n+* **GUI Features:**\r\n+ * Drag-and-drop input (ZIPs / folders).\r\n+ * Integrated preset editor panel.\r\n+ * Configurable output directory field with browse button.\r\n+ * Enhanced live preview table showing predicted file status.\r\n+ * Toggleable preview mode (detailed file list vs simple asset list).\r\n+ * Toggleable log console panel.\r\n+ * Progress bar, cancellation button, clear queue button.\r\n+\r\n+## Integration\r\n+\r\n+* **Blender Integration:** Optionally runs Blender scripts (`create_nodegroups.py`, `create_materials.py`) after asset processing to automate node group and material creation in specified `.blend` files. Available via both CLI and GUI.\r\n+ * **GUI Controls:** Checkbox to enable/disable Blender integration and input fields with browse buttons for target `.blend` files.\r\n+* **Docker Support:** Includes a `Dockerfile` for containerized execution.\n\\ No newline at end of file\n" }, { "date": 1745506993446, "content": "Index: \n===================================================================\n--- \n+++ \n@@ -4,9 +4,9 @@\n \r\n ## Core Processing & Classification\r\n \r\n * **Preset-Driven:** Uses JSON presets (`presets/`) to define rules for different asset suppliers (e.g., `Poliigon.json`).\r\n-* **Multi-Asset Input Handling:** Correctly identifies and processes multiple distinct assets contained within a single input `.zip` or folder, creating separate outputs for each.\r\n+* **Multi-Asset Input Handling:** Correctly identifies and processes multiple distinct assets contained within a single input `.zip`, `.rar`, `.7z` archive, or folder, creating separate outputs for each.\r\n * **File Classification:** Automatically identifies map types (Color, Normal, Roughness, etc.), models, explicitly marked extra files, and unrecognised files based on preset rules.\r\n * **Variant Handling:** Map types listed in `RESPECT_VARIANT_MAP_TYPES` (in `config.py`, e.g., `\"COL\"`) always receive a numeric suffix (`-1`, `-2`, etc.). Numbering priority uses preset keyword order first, then alphabetical filename sorting as a tie-breaker. Other map types never receive a suffix.\r\n * **16-bit Prioritization:** Correctly identifies and prioritizes 16-bit variants defined in preset `bit_depth_variants` (e.g., `*_NRM16.tif`), ignoring the corresponding 8-bit version (marked as `Ignored` in GUI).\r\n * **Map Processing:**\r\n" } ], "date": 1745494307791, "name": "Commit-0", "content": "# User Guide: Features\r\n\r\nThe Asset Processor Tool provides the following key features:\r\n\r\n## Core Processing & Classification\r\n\r\n* **Preset-Driven:** Uses JSON presets (`presets/`) to define rules for different asset suppliers (e.g., `Poliigon.json`).\r\n* **Multi-Asset Input Handling:** Correctly identifies and processes multiple distinct assets contained within a single input `.zip` or folder, creating separate outputs for each.\r\n* **File Classification:** Automatically identifies map types (Color, Normal, Roughness, etc.), models, explicitly marked extra files, and unrecognised files based on preset rules.\r\n * **Variant Handling:** Map types listed in `RESPECT_VARIANT_MAP_TYPES` (in `config.py`, e.g., `\"COL\"`) always receive a numeric suffix (`-1`, `-2`, etc.). Numbering priority uses preset keyword order first, then alphabetical filename sorting as a tie-breaker. Other map types never receive a suffix.\r\n * **16-bit Prioritization:** Correctly identifies and prioritizes 16-bit variants defined in preset `bit_depth_variants` (e.g., `*_NRM16.tif`), ignoring the corresponding 8-bit version (marked as `Ignored` in GUI).\r\n* **Map Processing:**\r\n * Resizes texture maps to configured resolutions (e.g., 4K, 2K, 1K), avoiding upscaling.\r\n * Handles Glossiness map inversion to Roughness.\r\n * Applies bit-depth rules (`respect` source or `force_8bit`).\r\n * Saves maps in appropriate formats (JPG, PNG, EXR) based on complex rules involving map type (`FORCE_LOSSLESS_MAP_TYPES`), resolution (`RESOLUTION_THRESHOLD_FOR_JPG`), bit depth, and source format.\r\n * Calculates basic image statistics (Min/Max/Mean) for a reference resolution.\r\n * Calculates and stores the relative aspect ratio change string in metadata (e.g., `EVEN`, `X150`, `Y125`).\r\n" } ] }