Source code for blenderproc.python.modules.loader.HavenMaterialLoaderModule

from blenderproc.python.modules.main.Module import Module
from blenderproc.python.loader.HavenMaterialLoader import load_haven_mat


[docs]class HavenMaterialLoaderModule(Module): """ This modules loads all textures obtained from https://texturehaven.com, use the script (scripts/download_haven.py) to download all the textures to your pc. All textures here support Physically based rendering (PBR), which makes the textures more realistic. There is a preload option, in which you only load empty materials, without any loaded textures, these are than later filled, when an object really uses them. This saves on loading times: .. code-block:: yaml { "module": "loader.HavenMaterialLoader", "config": { "folder_path": "<args:0>", # this would be resources/haven/textures "preload": True } } After you have used them maybe with an manipulators.EntityManipulator, you can load the ones you really assign to an object. By: .. code-block:: yaml { "module": "loader.HavenMaterialLoader", "config": { "folder_path": "<args:0>", "fill_used_empty_materials": True } } **Configuration**: .. list-table:: :widths: 25 100 10 :header-rows: 1 * - Parameter - Description - Type * - folder_path - The path to the downloaded haven. Default: resources/haven. - string * - used_assets - A list of all asset names, you want to use. The asset-name must not be typed in completely, only the beginning the name starts with. By default all assets will be loaded, specified by an empty list. Default: []. - list * - add_custom_properties - A dictionary of materials and the respective properties. Default: {}. - dict * - preload - If set true, only the material names are loaded and not the complete material. Default: False - bool * - fill_used_empty_materials - If set true, the preloaded materials, which are used are now loaded completely. Default: False - bool """ def __init__(self, config): Module.__init__(self, config)
[docs] def run(self): """ Load the materials """ load_haven_mat( folder_path=self.config.get_string("folder_path", "resources/haven"), used_assets=self.config.get_list("used_assets", []), add_cp=self.config.get_raw_dict("add_custom_properties", {}), preload=self.config.get_bool("preload", False), fill_used_empty_materials=self.config.get_bool("fill_used_empty_materials", False) )