Codebase dedublication and Cleanup refactor Documentation updated as well Preferences update Removed testfiles from repository
5.5 KiB
Asset Processor Tool Documentation
This documentation provides information about the Asset Processor Tool, covering both user-facing features and technical details for developers.
Overview
This tool processes 3D asset source files (texture sets, models, etc., provided as ZIP, RAR, 7z archives, or folders) into a standardized library format. It uses configurable presets to interpret different asset sources and automates tasks like file classification, image resizing, channel merging, and metadata generation.
The tool offers both a Graphical User Interface (GUI) for interactive use and a Command-Line Interface (CLI) for batch processing and scripting. It also includes a Directory Monitor for automated processing of assets dropped into a watched folder, and optional integration with Blender for automated material/nodegroup creation.
This documentation strictly excludes details on environment setup, dependency installation, building the project, or deployment procedures, assuming familiarity with Python and the relevant libraries (OpenCV, NumPy, PySide6).
Architecture and Codebase Summary
For developers interested in contributing, the tool's architecture centers on a Core Processing Engine (processing_engine.py) executing a pipeline based on a Hierarchical Rule System (rule_structure.py) and a Configuration System (configuration.py loading config/app_settings.json and Presets/*.json). The Graphical User Interface (gui/) has been significantly refactored: MainWindow (main_window.py) acts as a coordinator, delegating tasks to specialized widgets (MainPanelWidget, PresetEditorWidget, LogConsoleWidget) and background handlers (RuleBasedPredictionHandler, LLMPredictionHandler, LLMInteractionHandler, AssetRestructureHandler). The Directory Monitor (monitor.py) now processes archives asynchronously using a thread pool and utility functions (utils/prediction_utils.py, utils/workspace_utils.py). The Command-Line Interface entry point (main.py) primarily launches the GUI, with core CLI functionality currently non-operational. Optional Blender Integration (blenderscripts/) remains. A new utils/ directory houses shared helper functions.
The codebase reflects this structure. The gui/ directory contains the refactored UI components, utils/ holds shared utilities, Presets/ contains JSON presets, and blenderscripts/ holds Blender scripts. Core logic resides in processing_engine.py, configuration.py, rule_structure.py, monitor.py, and main.py. The processing pipeline, executed by processing_engine.py, relies entirely on the input SourceRule and static configuration for steps like map processing, channel merging, and metadata generation.
Table of Contents
- Overview - This document, providing a high-level summary and table of contents.
- User Guide - Information for end-users of the tool.
- Introduction - Purpose and scope of the tool for users.
- Features - Detailed list of the tool's capabilities.
- Installation - Requirements and setup instructions.
- Configuration and Presets - How to configure the tool and use presets.
- Usage: GUI - Guide to using the Graphical User Interface.
- Usage: CLI - Guide to using the Command-Line Interface.
- Usage: Monitor - Guide to using the Directory Monitor for automated processing.
- Usage: Blender Integration - How the optional Blender integration works for users.
- Output Structure - Description of the generated asset library structure.
- Docker - Instructions for using the tool with Docker.
- Developer Guide - Technical information for developers contributing to the tool.
- Architecture - High-level system design and component overview.
- Codebase Structure - Detailed breakdown of project files and directories.
- Key Components - In-depth explanation of major classes and modules.
- Configuration System and Presets - Technical details of configuration loading and preset structure.
- Processing Pipeline - Step-by-step technical breakdown of the asset processing logic.
- GUI Internals - Technical details of the GUI implementation (threading, signals, etc.).
- Monitor Internals - Technical details of the Directory Monitor implementation.
- Blender Integration Internals - Technical details of Blender script execution and interaction.
- Development Workflow - Guidance on contributing and modifying the codebase.
- Coding Conventions - Project's coding standards and practices.
- Debugging Notes - Advanced internal details, state management, error handling, and limitations.