Texture library
In this article, we’ll explore key principles for setting up a texture library. Because textures often come from various sources—some free, some purchased, and others created in-house - establishing a consistent naming system for all associated files (diffuse, roughness, metalness, etc.) can save a lot of time in the future.
Consolidating everything into a unified format is a strategic decision. It enables efficient batch conversion whenever you need to update the pipeline, be it next month or years down the road, simplifies the transition to modern formats like MaterialX. This approach also delivers immediate benefits by automating workflows, saving artists from repetitive manual tasks. Those minutes add up, and over time, that’s money lost.
Keep in mind that even with standardized naming conventions, third-party vendors sometimes include misspelled or inconsistent layer names. These exceptions can complicate the unification process, so be prepared to adjust accordingly.
Workflow
In the Ingest View, you can choose whether to rename additional files or keep their original structure. Setting up a Python hook (pre ingest load) can save a significant amount of time and manual effort, depending on how much you’re willing to invest in organizing your texture library. The more effort you put in upfront, such as unifying everything under a single naming convention, the more time you’ll save later.
Specifically, you can assign a shared naming convention for additional files by defining a layer type (e.g., texture) and layer names for each file. This lets you generate previews for each layer, which will be visible in the Gallery View and linked to the corresponding asset’s additional files.
In the Settings View, you have the option to configure whether and how previews for your texture files are generated. Please refer to this article for instructions on configuring the transcoding templates: 3D Assets
There are several options which have different time investment on your end:
Clean incoming files
The goal is to create a Python hook file for each vendor to handle their specific naming conventions. By implementing different ingest logic, you can standardize incoming texture layer names under a unified naming convention. This ensures consistency, keeps everything organized, and enhances integration into your pipeline and workflows by maintaining a uniform structure.
Pro
well structured files on disk
less work using the textures in production
easier to automate task in your pipeline
Cons
time consuming
requires Python knowledge
External preview generation
You can use an external 3D tool to generate previews, such as a turntable rendering of the texture set applied to a 3D model under specific lighting conditions or within a neutral grading workflow. The preview can be a single image, a movie file, or an image sequence rendered through your internal pipeline.
Pro
very good and custom preview of the texture
well structured files on disk
less work using the textures in production
easier to automate task in your pipeline
Cons
time consuming
needs more technical setup on your end
Ingest original previews
Some texture sets ship with a preview image. A quicker method is to ingest only that preview, then simply copy the entire texture folder along with its additional files. This approach preserves the original folder structure. However, if you don’t ingest the additional files through Das Element, they won’t be linked to the database and won’t appear in the Gallery View.
Pro
less time consuming
keeps original structure and file naming
Cons
potentially less structure on disk
no previews for the different texture layers