A powerful tool for generating normal maps, bump maps, and AO/roughness maps from texture images.
- Generate normal maps using Sobel filter
- Generate bump maps using histogram equalization
- Generate AO/roughness maps (optional)
- Modern, user-friendly interface
- Batch processing of multiple files
- Configurable export directory
- Dark and light theme support
- Download the latest release from the releases page
- Extract the ZIP file to a location of your choice
- Run
TextureNormaliser.exe
- Clone this repository
- Install the required dependencies:
pip install -r requirements.txt
- Run the application:
python main.py
- Launch the application
- Select files or a folder containing texture images
- Configure the options as needed
- Click "Process" to generate the maps
- Access the generated maps in the export directory
- Enable Normal Map: Generate normal maps using the Sobel filter
- Enable Bump Map: Generate bump maps using histogram equalization
- Enable AO/Roughness: Generate ambient occlusion/roughness maps
- Kernel Size: Set the Sobel filter kernel size (3, 5, 7, or 9)
- Export Directory: Set the directory where generated maps will be saved
- Theme: Choose between Dark, Light, or System theme
For each processed image, the following files will be generated in the export directory:
<filename>_original.png
: A copy of the original image<filename>_normal_map.png
: The generated normal map (if enabled)<filename>_bump_map.png
: The generated bump map (if enabled)<filename>_ao_roughness.png
: The generated AO/roughness map (if enabled)
The texture processor can also be used from the command line:
python -m src.texture_processor <input_path>
Where <input_path>
can be a file or directory.
The project includes scripts for testing and demonstration in the tests
directory:
To create a test texture image with a gradient and shapes:
python tests/create_test_image.py
This will create a test image in the import
directory.
To test the core texture processing functionality:
python tests/test_processor.py
This will process the test image and verify that the normal map and bump map are generated correctly.
For more information about the tests, see the tests README.
main.py
: Main application entry pointsrc/
: Core application modulestexture_processor.py
: Core texture processing functionalityconfig.py
: Configuration managementlogger.py
: Logging functionality
assets/
: Application assets (images, icons)docs/
: Documentation filesREADME.md
: This filechangelog.txt
: Version history and changes
tests/
: Test and debugging utilitiescreate_test_image.py
: Generate test imagestest_processor.py
: Test the texture processor
To build the executable:
pyinstaller --onefile --windowed --icon=assets/logo.ico --add-data "assets/logo.png;assets" main.py
Or use the provided spec file:
python -m PyInstaller TextureNormaliser.spec
© 2025 KazLabs Media Group - Made with ♥ by Liam Sorensen