Skip to content

Mount Manager

tobspr edited this page Feb 14, 2016 · 19 revisions

The mount manager manages the pipeline filesystem, and takes care of locating the shaders and allocating the temporary directories.

Setting the base path

With the newest version of the pipeline, the mount manager automatically detects the base path. However, in some rare cases, you want to set a different base path. In this case, you can do this with:

self.render_pipeline.mount_mgr.base_path = "root_directory/"

You can pass a relative or an absolute path. root_directory should point to the directory where shader and data are contained.

Setting the temporary path

By default, the temporary directory is a virtual directory which does not exist on your disk, being mounted by the VirtualFileSystem. In that directory the shader cache and other temporary pipeline files will be stored. However, if you want to inspect the auto-generated files, you can set the write directory with

self.render_pipeline.mount_mgr.write_path = "write_directory/"

Notice that the mount manager will try to cleanup the folder after the pipeline was closed, so the tempfiles only exist while the pipeline is running. If you want to prevent this, use:

self.render_pipeline.mount_mgr.do_cleanup = False

Setting the configuration path

By default, the pipeline expects its files to be in the config/ directory. This is also where the PluginConfigurator and TimeOfDay editor expect them. However, sometimes you want to have a different configuration directory:

self.render_pipeline.mount_mgr.config_dir = "my_config/"

In the config directory, all necessary configuration files should be contained, namely: pipeline.yaml plugins.yaml configuration.prc daytime.yaml stages.yaml.

Warning: If you use custom configuration files, the Plugin Configurator and Time Of Day editor will not work! They expect the configuration files to be located at config/. This might be improved at some time.

Initializing the mount manager

After eventually setting the base- and the temporary path, you have to call:

self.render_pipeline.mount_mgr.mount()

in order to actually mount the specified directories. After that you can start to load your config files and create the pipeline.

The pipeline will automatically call mount() for you if you don't do this. However, you can only access the extended path as soon as you call mount().