diff --git a/README.md b/README.md index 6e05879f..bd636826 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,9 @@ Those are already demonstrating some advanced methods to architect renderers usi If you need a basic introduction into OptiX 7 programming, please refer to the [OptiX 7 SIGGRAPH course material](https://github.com/ingowald/optix7course) first and maybe read through the [OptiX developer forum](https://forums.developer.nvidia.com/c/gaming-and-visualization-technologies/visualization/optix/167) as well for many topics about OptiX 7. -The landing page for online NVIDIA ray tracing programming guides and API reference documentation can be found here: [NVIDIA ray tracing documentation](https://raytracing-docs.nvidia.com/). This generally contains more up-to-date information compared to documents shipping with the SDKs and is easy to search including cross-reference links. +The landing page for online NVIDIA ray tracing programming guides and API reference documentation can be found here: [NVIDIA ray tracing documentation](https://raytracing-docs.nvidia.com/). This contains more up-to-date information compared to documents shipping with the SDKs and is easy to search including cross-reference links. -Please always read the OptiX SDK Release Notes before setting up a development environment. +Please always read the **OptiX SDK Release Notes** before setting up a development environment. # Overview @@ -64,18 +64,18 @@ Peer-to-peer device resource sharing can effectively double the scene size loade Texture sharing comes at a moderate performance cost while geometry acceleration structure and vertex attribute sharing can be considerably slower and depends on the use case, but it's reasonably fast given the bandwidth difference between NVLINK and VRAM transfers. Still a lot better than not being able to load a scene at all on a single board. To determine the system's NVLINK topology it uses the NVIDIA Management Library [NVML](https://developer.nvidia.com/nvidia-management-library-nvml) which is loaded dynamically. -Headers for that library are shipped with the CUDA Toolkits and the library ships with the display drivers. +Headers for that library are included inside the CUDA Toolkits and the library ships with the display drivers. The implementation is prepared to fetch all NVML entry points, but currently only needs six functions for the required NVLINK queries and GPU device searches. Note that peer-to-peer access under Windows requires Windows 10 64-bit and SLI enabled inside the NVIDIA Display Control Panel. Under Linux it should work out of the box. -This example is derived from rtigo3, but uses only one rendering strategy ("local-copy") and while it also runs on single GPU systems, the CUDA peer-to-peer sharing functionality will obviously only run on multi-GPU NVLINK systems. +This example is derived from rtigo3 but uses only one rendering strategy ("local-copy") and while it also runs on single GPU systems, the CUDA peer-to-peer sharing functionality will obviously only run on multi-GPU NVLINK systems. The Raytracer class got more smarts over the Device class because the resource distribution decisions need to happen above the devices. The scene description format has been slightly changed to allow different albedo and/or cutout opacity textures per material reference. -Still it's a slightly newer application architecture compared to rtigo3 when you're planning to derive own applications from these examples. +Still, it's a slightly newer application architecture compared to rtigo3 when you're planning to derive own applications from these examples. ![nvlink_shared with 5x5x5 spheres, each over 1M triangles ](./apps/nvlink_shared/nvlink_shared.png) -**rtigo9** is similar to nvlink_shared, but optimized for single-GPU as well to not do the compositing step unless multiple GPUs are used. +**rtigo9** is similar to nvlink_shared but optimized for single-GPU as well to not do the compositing step unless multiple GPUs are used. The main difference is that it shows how to implement more light types. It's supporting the following light types: * Constant environment light: Uniformly sampled, constant HDR color built from emission color and multiplier. @@ -91,7 +91,7 @@ The camera settings as well as the tone mapper settings defined inside the syste The previous hardcoded light definitions inside the system description file have been removed and the scene description has been changed to allow light material definitions and creation of specific light types with these emissive materials, resp. assigning them to arbitrary triangle meshes. Please read the `system_rtigo9_demo.txt` and `scene_rtigo9_demo.txt` files which explain the creation of all supported light types inside a single scene. -Also the previous compile time switch inside the `config.h` file to enable or disable direct lighting ("next event estimation") has been converted to a runtime switch which can be toggled inside the GUI. Note that all singular light types do not work without direct lighting enabled because they do not exist as geometry inside the scene and cannot be hit implicitly. (The probability for that is zero. Such lights do not exist in the physical world.) +Also, the previous compile time switch inside the `config.h` file to enable or disable direct lighting ("next event estimation") has been converted to a runtime switch which can be toggled inside the GUI. Note that all singular light types do not work without direct lighting enabled because they do not exist as geometry inside the scene and cannot be hit implicitly. (The probability for that is zero. Such lights do not exist in the physical world.) Additionally to CUDA peer-to-peer data sharing via NVLINK, the rtigo9 example also allows that via PCI-E, but this is absolutely not recommended for geometry for performance reasons. Please read the explanation of the `peerToPeer` option inside the system description. @@ -105,13 +105,13 @@ It uses the OptiX Toolkit CUDA based OMM Baking Tool to generate OMMs from the R With OMMs, the sharing of geometry acceleration structures (GAS) among different materials is restricted for materials with cutout opacity because the OMM is part of the GAS. The cutout opacity value calculation has been changed from using the RGB intensity to the alpha channel because that is what the OMM Baking tool defaults to when using RGBA textures. -Another difference is that the shadow/visibility ray implementation can use a faster algorithm with `OPTIX_RAY_FLAG_TERMINATE_ON_FIRST_HIT` because fully transparent and fully opaque microtriangles of geometry with cutout opacity textures do not call into the anyhit program anymore. That also means there isn't an anyhit shadow program for geometry without cutout opacity required anymore. +Another difference is that the shadow/visibility ray implementation can use a faster algorithm with `OPTIX_RAY_FLAG_TERMINATE_ON_FIRST_HIT` because fully transparent and fully opaque microtriangles of geometry with cutout opacity textures do not call into the anyhit program anymore. That also means there is no anyhit shadow program for geometry without cutout opacity required anymore. ![rtigo9_omm opacity micromap demo](./apps/rtigo9_omm/rtigo9_omm_leaf.png) **rtigo10** is meant to show how to architect a renderer for maximum performance with the fastest possible shadow/visibility ray type implementation and the smallest possible shader binding table layout. -It's based on rtigo9 and supports the same system and scene description file format but removed support for cutout opacity and surface materials on emissive area light geometry (arbitrary mesh lights.) +It's based on rtigo9 and supports the same system and scene description file format but removed support for cutout opacity and surface materials on emissive area light geometry (arbitrary mesh lights.) The renderer architecture implements all materials as individual closesthit programs instead of a single closesthit program and direct callable programs per material as in all previous examples above. Lens shaders and the explicit light sampling is still done with direct callable programs per light type for optimal code size. To reduce the shader binding table size, where the previous examples used a hit record entry per instance with additional data for the geometry vertex attribute data and index data defining the mesh topology plus material and light IDs, the shader binding table in rtigo10 holds only one hit record per material shader which is selected via the instance `sbtOffset` field. All other data is indexed with via the user defined instance ID field. @@ -123,11 +123,10 @@ On top of that, by not supporting cutout opacity there is no need for anyhit pro If you're not familiar with the **NVIDIA Material Definition Language**, please find the [MDL Introduction, Handbook, and Language Specifications](https://raytracing-docs.nvidia.com/mdl/index.html) on the [NVIDIA Ray Tracing Documentation](https://raytracing-docs.nvidia.com/) site. The example is based on functionality shown inside the MDL SDK examples `optix7` and `df_cuda`. -The renderer architecture stayed very similar, just that all material-related direct callable programs are now generated by the MDL SDK at runtime. -Meaning this renderer requires the MDL SDK to compile. There is either the [open-source MDL SDK](https://github.com/NVIDIA/MDL-SDK), used while -developing this example, or the [binary MDL SDK](https://developer.nvidia.com/rendering-technologies/mdl-sdk) release. +The renderer architecture stayed similar, just that all material-related direct callable programs are now generated by the MDL SDK at runtime. +Meaning this renderer requires the MDL SDK to compile. There is either the [open-source MDL SDK](https://github.com/NVIDIA/MDL-SDK), used while developing this example, or the [binary MDL SDK](https://developer.nvidia.com/rendering-technologies/mdl-sdk) release. -The device code details changed quite a bit though because all shading data structures needed to match to what the MDL-generated code expects and it's actually more elegant in some areas than the previous examples, especially for the path throughput and pdf handling. +The device code details changed quite a bit though because all shading data structures needed to match to what the MDL-generated code expects and it is actually more elegant in some areas than the previous examples, especially for the path throughput and pdf handling. The scene description syntax has been adjusted to allow material references selecting an exported MDL material from a given MDL file. The definition of the hardcoded lights has been changed from taking a material reference to using the scene description emission parameters directly. Arbitrary mesh lights are generated automatically for all geometry instances which have an emissive MDL material assigned. @@ -139,7 +138,7 @@ Peer-to-peer sharing of MDL texture array resources, measured BSDFs and their CD Please read the `system_mdl_vMaterials.txt` and `scene_mdl_vMaterials.txt` inside the data folder for more information on additional system and scene options. The renderer implementation has the following limitations at this time: -* Volume absorption and scattering assumes homogeneous volume coefficients. There's simply no volume data primitive in the scene to sample heterogeneous coefficients from. +* Volume absorption and scattering assumes homogeneous volume coefficients. There is simply no volume data primitive in the scene to sample heterogeneous coefficients from. * Volume scattering emission intensity not implemented. Goes along with heterogeneous volume scattering support. * Geometry displacement not implemented. To be revisited once Displacement Micro Meshes (DMM) are supported by OptiX. * UV-tile and animation textures not implemented. @@ -155,7 +154,7 @@ The MDL_renderer has now been updated to also support cubic B-spline curve primi Because that requires two texture coordinates to be fully featured, the `NUM_TEXTURE_SPACES` define has been added to the `config.h` to allow switching between one and two texture coordinates. If you do not need the hair BSDF, you can set `NUM_TEXTURE_SPACES` to 1 for a little more performance. -The MDL hair BSDF supports a fully parameterized fiber surface accessible via the `state::texture_coordinate(0)` providing (uFiber, vFiber, thickness) values, which allows implementing parameter changes along the whole fiber and even aound it. The provided `mdl/bsdf_hair_uv.mdl` material shows this by placing tiny arrows on the fibers pointing from root to tip. +The MDL hair BSDF supports a fully parameterized fiber surface accessible via the `state::texture_coordinate(0)` providing (uFiber, vFiber, thickness) values, which allows implementing parameter changes along the whole fiber and even around it. The provided `mdl/bsdf_hair_uv.mdl` material shows this by placing tiny arrows on the fibers pointing from root to tip. Additionally the second texture coordinate `state::texture_coordinate(1)` defines a fixed texture coordinate per fiber, which allows coloring of individual fibers depending on some texture value. The image below used a Perlin noise function to produce highlights in the hair, resp. a 2D texture to color the fibers of the `fur.hair` model (included). @@ -171,7 +170,7 @@ The renderer currently loads only `*.hair` models which do not have texture coor * Mouse Wheel = Zoom (1 - 179 degrees field of view possible) * SPACE = Toggle GUI display on/off -Additionally in rtigo3, nvlink_shared, rtigo9 and rtigo10: +Additionally in all non-*intro* examples: * S = Saves the current system description settings into a new file (e.g. to save camera positions) * P = Saves the current tone mapped output buffer to a new PNG file. (Destination folder must exist! Check the `prefixScreenshot` option inside the *system* text files.) * H = Saves the current linear output buffer to a new HDR file. @@ -185,8 +184,7 @@ The application framework for all these examples uses GLFW for the window manage GLEW 2.1.0 is required for all examples not named with prefix *intro* for the UUID matching of devices between OpenGL and CUDA which requires a specific OpenGL extension not supported by GLEW 2.0.0. The intro examples compile with GLEW 2.0.0 though. The top-level `CMakeLists.txt` file will try to find all currently released OptiX 7 SDK versions via the `FindOptiX7*.cmake` scripts inside the `3rdparty/CMake` folder. -These search OptiX SDK 7.0.0 to 7.7.0 locations by looking at the resp. `OPTIX7*_PATH` environment variables a developer can set to override the default -SDK locations. +These search OptiX SDK 7.0.0 to 7.7.0 locations by looking at the resp. `OPTIX7*_PATH` environment variables a developer can set to override the default SDK locations. If those `OPTIX7*_PATH` environment variables are not set, the scripts try the default SDK installation folders. Since OptiX 7 is a header-only API, only the include directory is required. The `FindOptiX7*.cmake` scripts set the resp. `OptiX7*_FOUND` CMake variables which are later used to select which examples are built at all and with which OptiX SDK. (*intro_motion_blur* requires OptiX SDK 7.2.0 or higher, *rtigo9_omm* requires 7.6.0 or higher.) @@ -204,13 +202,13 @@ Pre-requisites: * Visual Studio 2017, 2019 or 2022 * CUDA Toolkit 10.x, 11.x or 12.x (Please refer to the OptiX Release Notes for the supported combinations. CUDA 11.8 or higher recommended.) * Any OptiX SDK 7.x.0. (OptiX SDK 7.7.0 recommended. intro_motion_blur requires 7.2.0 or higher, rtigo9_omm requires 7.6.0 or higher.) -* [OptiX Toolkit](https://github.com/NVIDIA/optix-toolkit) for the CUDA Opacity Micromap baking tool used in rtigo9_omm (requires OptiX SDK 7.6.0). -* [Open-source MDL SDK](https://github.com/NVIDIA/MDL-SDK) or [binary MDL SDK](https://developer.nvidia.com/rendering-technologies/mdl-sdk) supporting MDL 1.7 only required for the MDL_renderer example. +* [OptiX Toolkit](https://github.com/NVIDIA/optix-toolkit) for the CUDA Opacity Micromap baking tool used in rtigo9_omm (requires OptiX SDK 7.6.0 or newer). +* [Open-source MDL SDK 2023 (367100.2992)](https://github.com/NVIDIA/MDL-SDK) or [binary MDL SDK](https://developer.nvidia.com/rendering-technologies/mdl-sdk) supporting MDL 1.8, only required for the MDL_renderer example. * CMake 3.17 or newer. (Tested with CMake 3.24.2. The OptiX Toolkit requires 3.23.) 3rdparty library setup: * From the Windows *Start Menu* (Windows' search bar might not find it!), open the *x64 Native Tools Command Prompt for VS2017* or *x64 Native Tools Command Prompt for VS2019* or *x64 Native Tools Command Prompt for VS2022* -* Change directory to the folder containing the `3rdparty.cmd`. This command assumes that CMake is installed in `C:\Program Files\cmake\bin\cmake.exe`. If you're using the CMake installed with Microsoft Visual Studio, please adjust `3rdparty.cmd` to the proper executable location or `cmake.exe` when it's inside the PATH environment variable, which is not the default when installing CMake versions from cmake.org. +* Change directory to the folder containing the `3rdparty.cmd`. This command assumes that CMake is installed in `C:\Program Files\cmake\bin\cmake.exe`. If you are using the CMake installed with Microsoft Visual Studio, please adjust `3rdparty.cmd` to the proper executable location or `cmake.exe` when it's inside the PATH environment variable, which is not the default when installing CMake versions from cmake.org. * Execute the command `3rdparty.cmd`. This will automatically download GLFW 3.3, GLEW 2.1.0, and ASSIMP archives from sourceforge.com or github.com (see `3rdparty.cmake`) and unpack, compile and install them into the existing `3rdparty` folder in a few minutes. * Close the *x64 Native Tools Command Prompt* after it finished. @@ -230,7 +228,7 @@ DevIL: OptiX Toolkit: * Go to (https://github.com/NVIDIA/optix-toolkit) * Clone the repository and update its sub-modules to get the OmmBaking repository included. -* Set the CMAKE_INSTALL_PREFIX to a local path where the OptiX Toolkit `bin`, `include` and `lib` folders should be installed. (The default `C:\Program Files\OptiXToolkit` usually won't work because that is a protected folder under Windows.) The `FindOptiXToolkit.cmake` will find it automatically if the CMAKE_INSTALL_PREFIX is set to the `3rdparty/optix-toolkit` path. +* Set the CMAKE_INSTALL_PREFIX to a local path where the OptiX Toolkit `bin`, `include` and `lib` folders should be installed. (The default `C:\Program Files\OptiXToolkit` usually will not work because that is a protected folder under Windows.) The `FindOptiXToolkit.cmake` will find it automatically if the CMAKE_INSTALL_PREFIX is set to the `3rdparty/optix-toolkit` path. * Configure and Generate the solution for your Visual Studio version and x64 platform * Open the generated `OptiXToolkit.sln` and rebuild the `Release x64` target. * Then build the `INSTALL` target. @@ -242,7 +240,8 @@ MDL SDK: * Build the release x64 target. * Build the INSTALL target. * Set the environment variable MDL_SDK_PATH to the folder into which you cloned the MDL SDK repository. (The MDL_renderer project only needs the MDL SDK `include` folder location. All libraries are loaded dynamically. `3rdparty/FindMDL_SDK.cmake` will find it and the MDL_renderer project will be added to the solution.) -* For the MDL_renderer example execution only the `libmdl_sdk.dll`, `nv_freeimage.dll` and `dds.dll` libraries from the MDL SDK `install/bin` folder are required. Copy these next to the MDL_renderer executable. The `nv_freeimage.dll` also requires `FreeImage.dll` which needs to come from the FreeImage installation you picked when building the MDL SDK libraries. +* For the MDL_renderer example execution only the `libmdl_sdk.dll`, `nv_openimageio.dll`, and `dds.dll` libraries from the MDL SDK `install/bin` folder are required. Copy these next to the MDL_renderer executable. +* (Optionally the MDL SDK can also build an `nv_freeimage.dll` when setting the MDL_BUILD_FREEIMAGE_PLUGIN CMake variable. The `nv_freeimage.dll` also requires the `FreeImage.dll` which needs to come from the FreeImage installation you picked when building the MDL SDK libraries. To load that plugin instead of the `nv_openimageio.dll`, change the MDL_renderer config.h define USE_OPENIMAGEIO_PLUGIN to 0.) Generate the solution: * If you didn't install the OptiX SDK 7.x into its default directory, set the resp. environment variable `OPTIX7*_PATH` to your local installation folder (or adjust the `FindOptiX7*.cmake` scripts). @@ -252,7 +251,7 @@ Generate the solution: * Select a new build folder inside the *Where to build the binaries*. * Click *Configure*. (On the very first run that will prompt to create the build folder. Click OK.) * Select the Visual Studio version which matches the one you used to build the 3rdparty libraries. You must select the "x64" version! (Note that newer CMake GUI versions have that in a separate listbox named "Optional platform for generator".) -* Click *Finish*. (That will list all examples' `PROJECT_NAME` and the resp. include directories and libraries used inside the CMake GUI output window the first time a `find_package()` is called. Control that this found all the libraries in the 3rdparty folder and the desired OptiX 7.x include directory. If multiple OptiX SDK 7.x are installed, the highest minor version is used.) +* Click *Finish*. (That will list all examples' `PROJECT_NAME` and the resp. include directories and libraries used inside the CMake GUI output window the first time a `find_package()` is called. Control that this found all the libraries in the 3rdparty folder and the desired OptiX 7.x include directory. If multiple OptiX SDK 7.x are installed, the highest version is used.) * Click *Generate*. Building the examples: @@ -261,6 +260,9 @@ Building the examples: Adding the libraries and data (Yes, this could be done automatically but this is required only once.): * Copy the x64 library DLLs: `cudart64_.dll` from the CUDA installation bin folder, and from the respective 3rdparty folders: `glew32.dll`, `DevIL.dll`, `ILU.dll`, `ILUT.dll`, `assimp-vc-mt.dll` and `CuOmmBaking.dll` from the OptiX Toolkit into the build target folder with the executables (*bin/Release* or *bin/Debug*). (E.g. `cudart64_101.dll` from CUDA Toolkit 10.1 or cudart64_110.dll from the matching(!) CUDA Toolkit 11.x or 12.x version and `assimp-vc143-mt.dll` from the `3rdparty/assimp` folder when building with MSVS 2022.) +* For the MDL_renderer, copy the `libmdl_sdk.dll`, `nv_openimageio.dll` and `dds.dll` libraries from the MDL SDK `install/bin` folder. +* (Optionally the MDL SDK can also build an `nv_freeimage.dll` when setting the MDL_BUILD_FREEIMAGE_PLUGIN CMake variable. The `nv_freeimage.dll` also requires the `FreeImage.dll` which needs to come from the FreeImage installation you picked when building the MDL SDK libraries. To load that plugin instead of the `nv_openimageio.dll`, change the MDL_renderer config.h define USE_OPENIMAGEIO_PLUGIN to 0.) + * **IMPORTANT**: Copy all files from the `data` folder into the build folder with the executables (`bin/Release` or `bin/Debug`). The executables search for their resources relative to their working directory. **Linux** @@ -271,13 +273,13 @@ Pre-requisites: * GCC supported by CUDA 10.x or CUDA 11.x Toolkit * CUDA Toolkit 10.x, 11.x or 12.x. (Please refer to the OptiX Release Notes for the supported combinations. CUDA 11.8 or higher recommended.) * Any OptiX SDK 7.x version (OptiX SDK 7.7.0 recommended. intro_motion_blur requires 7.2.0 or higher, rtigo9_omm requires 7.6.0 or higher.) -* CMake 3.17 or newer. +* CMake 3.17 or newer. (The OptiX Toolkit requires 3.23.) * GLFW 3 * GLEW 2.1.0 (required to build all non-*intro* examples. In case the Linux package manager only supports GLEW 2.0.0, here is a link to the [GLEW 2.1.0](https://sourceforge.net/projects/glew/files/glew/2.1.0) sources.) * DevIL 1.8.0 or 1.7.8. When using 1.7.8 replace `find_package(DevIL_1_8_0 REQUIRED)` against `find_package(DevIL_1_7_8 REQUIRED)` * ASSIMP -* OptiX Toolkit (https://github.com/NVIDIA/optix-toolkit) for the CUDA Opacity Micromap baking tool used in rtigo9_omm (requires OptiX SDK 7.6.0). Clone the repository and update its submodules to get the OmmBaking repository included. Set the CMAKE_INSTALL_PREFIX to a path where the bin, include and lib folders of the OptiX Toolkit should be installed. That's the folder specified via the OPTIX_TOOLKIT_PATH environment variable on the CMake command line below when building these examples. Configure and Generate the solution and rebuild the release target. Then build the INSTALL target. Check that the bin, include and lib folders are present inside the folder you selected via CMAKE_INSTALL_PREFIX. -* [Open-source MDL SDK](https://github.com/NVIDIA/MDL-SDK) or [binary MDL SDK](https://developer.nvidia.com/rendering-technologies/mdl-sdk) supporting MDL 1.7 only required for the MDL_renderer example. +* OptiX Toolkit (https://github.com/NVIDIA/optix-toolkit) for the CUDA Opacity Micromap baking tool used in rtigo9_omm (requires OptiX SDK 7.6.0). Clone the repository and update its submodules to get the OmmBaking repository included. Set the CMAKE_INSTALL_PREFIX to a path where the bin, include and lib folders of the OptiX Toolkit should be installed. That is the folder specified via the OPTIX_TOOLKIT_PATH environment variable on the CMake command line below when building these examples. Configure and Generate the solution and rebuild the release target. Then build the INSTALL target. Check that the bin, include and lib folders are present inside the folder you selected via CMAKE_INSTALL_PREFIX. +* [Open-source MDL SDK 2023 (367100.2992)](https://github.com/NVIDIA/MDL-SDK) or [binary MDL SDK](https://developer.nvidia.com/rendering-technologies/mdl-sdk) supporting MDL 1.8 only required for the MDL_renderer example. Build the Examples: * Open a shell and change directory into the local `optix_apps` source code repository: @@ -317,7 +319,7 @@ If you run a multi-GPU system, read the `system_rtigo3_dual_gpu_local.txt` for t * `rtigo3.exe -s system_rtigo3_dual_gpu_local.txt -d scene_rtigo3_geometry.txt` -The nvlink_shared example is meant for multi-GPU systems with NVLINK bridge. It's working on single-GPU setups as well though. I've prepared a geometry-heavy scene with 125 spheres of more than 1 million triangles each. That scene requires about 10 GB of VRAM on a single board. +The nvlink_shared example is meant for multi-GPU systems with NVLINK bridge. It is working on single-GPU setups as well though. I have prepared a geometry-heavy scene with 125 spheres of more than 1 million triangles each. That scene requires about 10 GB of VRAM on a single board. * `nvlink_shared.exe -s system_nvlink_shared.txt -d scene_nvlink_spheres_5_5_5.txt` @@ -340,11 +342,11 @@ These show most of the fundamental MDL BSDFs, EDFs, VDFs, layers, mixers, modifi * `MDL_renderer.exe -s system_mdl_demo.txt -d scene_mdl_demo.txt` -For a lot more complex materials (this scene requires about 5.4 GB of VRAM), the following command line will work if you have the [NVIDIA MDL vMaterials 1.7, 2.0, and 2.1](https://developer.nvidia.com/vmaterials) installed on the system. The application should then automatically find the referenced materials via the two environment variables `MDL_SYSTEM_PATH` and `MDL_USER_PATH` set by the vMaterial installation script. If a material was existing as reference but couldn't be compiled because it wasn't found or had errors, the renderer will not put the geometry with that invalid shader into the render graph. Means without the vMaterials installed only the area light should work in that scene because that is using one of the *.mdl files from the data folder. The result should look similar to the MDL_renderer example screenshot above, where some parameter values had been tweaked. +For a lot more complex materials (this scene requires about 5.4 GB of VRAM), the following command line will work if you have **all(!)** the [NVIDIA MDL vMaterials 1.7, 2.0, 2.1 and 2.2](https://developer.nvidia.com/vmaterials) installed on the system. The application should then automatically find the referenced materials via the two environment variables `MDL_SYSTEM_PATH` and `MDL_USER_PATH` set by the vMaterials installation script. If a material exists as reference but couldn't be compiled because it isn't found or had errors, the renderer will not put the geometry with that invalid shader into the render graph. Means without the vMaterials installed only the area light should work in that scene because that is using one of the *.mdl files from the data folder. The result should look similar to the MDL_renderer example screenshot above, where some parameter values had been tweaked. * `MDL_renderer.exe -s system_mdl_vMaterials.txt -d scene_mdl_vMaterials.txt` -For the curves rendering with MDL hair BSDF materials, issue the command line. That will display a sphere with cubic B-spline curves using a red hair material lit by an area light from above. Please read the `scene_mdl_hair.txt` for other possible material and model configurations. +For the curves rendering with MDL hair BSDF materials, issue the command line. That will display a sphere with cubic B-spline curves using a red hair material lit by an area light from above. Please read the `scene_mdl_hair.txt` for other possible material and model configurations. * `MDL_renderer.exe -s system_mdl_hair.txt -d scene_mdl_hair.txt` diff --git a/apps/MDL_renderer/CMakeLists.txt b/apps/MDL_renderer/CMakeLists.txt index 1b0b6d82..70e69de8 100644 --- a/apps/MDL_renderer/CMakeLists.txt +++ b/apps/MDL_renderer/CMakeLists.txt @@ -73,7 +73,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/MDL_renderer/inc/Application.h b/apps/MDL_renderer/inc/Application.h index 41dd4831..310bc898 100644 --- a/apps/MDL_renderer/inc/Application.h +++ b/apps/MDL_renderer/inc/Application.h @@ -272,6 +272,9 @@ class Application float m_clockFactor; // "clockFactor" bool m_useDirectLighting; + TypeLight m_typeEnv; // The type of the light in m_lightsGUI[0]. Used to determine the miss shader. + float m_rotationEnvironment[3]; // The Euler rotation angles for the spherical environment light. + std::string m_prefixScreenshot; // "prefixScreenshot", allows to set a path and the prefix for the screenshot filename. spp, data, time and extension will be appended. TonemapperGUI m_tonemapperGUI; // "gamma", "whitePoint", "burnHighlights", "crushBlacks", "saturation", "brightness" diff --git a/apps/MDL_renderer/shaders/config.h b/apps/MDL_renderer/shaders/config.h index 79fe9f65..9021aa1d 100644 --- a/apps/MDL_renderer/shaders/config.h +++ b/apps/MDL_renderer/shaders/config.h @@ -79,4 +79,11 @@ // For very resource-heavy materials, experiment with bigger values. #define NUM_TEXTURE_RESULTS 16 +// Switch the MDL-SDK image plugin between OpenImageIo and FreeImage. +// The open-source MDL-SDK 2023 (367100.2992) release on github.com switched to the OpenImageIO plugin by default +// and doesn't build the FreeImage plugin unless the CMake variable MDL_BUILD_FREEIMAGE_PLUGIN is enabled. +// 0 = Load plugin library nv_freeimage. +// 1 = Load plugin library nv_openimageio. +#define USE_OPENIMAGEIO_PLUGIN 1 + #endif // CONFIG_H diff --git a/apps/MDL_renderer/shaders/hit.cu b/apps/MDL_renderer/shaders/hit.cu index ea31c0a7..03a17d84 100644 --- a/apps/MDL_renderer/shaders/hit.cu +++ b/apps/MDL_renderer/shaders/hit.cu @@ -858,8 +858,7 @@ extern "C" __global__ void __anyhit__radiance_cutout() getTransforms(optixGetTransformListHandle(0), objectToWorld, worldToObject); // Single instance level transformation list only. // Object space vertex attributes at the hit point. - float3 po = attr0.vertex * alpha + attr1.vertex * theBarycentrics.x + attr2.vertex * theBarycentrics.y; - + float3 po = attr0.vertex * alpha + attr1.vertex * theBarycentrics.x + attr2.vertex * theBarycentrics.y; float3 ns = attr0.normal * alpha + attr1.normal * theBarycentrics.x + attr2.normal * theBarycentrics.y; float3 ng = cross(attr1.vertex - attr0.vertex, attr2.vertex - attr0.vertex); float3 tg = attr0.tangent * alpha + attr1.tangent * theBarycentrics.x + attr2.tangent * theBarycentrics.y; diff --git a/apps/MDL_renderer/shaders/per_ray_data.h b/apps/MDL_renderer/shaders/per_ray_data.h index 180b42ca..81a64e2a 100644 --- a/apps/MDL_renderer/shaders/per_ray_data.h +++ b/apps/MDL_renderer/shaders/per_ray_data.h @@ -78,7 +78,9 @@ struct PerRayData float3 radiance; // Radiance along the current path segment. float pdf; // The last BSDF sample's pdf, tracked for multiple importance sampling. + float3 throughput; // The current path troughput. Starts white and gets modulated with bsdf_over_pdf with each sample. + unsigned int flags; // Bitfield with flags. See FLAG_* defines above for its contents. float3 sigma_t; // Extinction coefficient in a homogeneous medium. diff --git a/apps/MDL_renderer/src/Application.cpp b/apps/MDL_renderer/src/Application.cpp index 4768df40..0169ad87 100644 --- a/apps/MDL_renderer/src/Application.cpp +++ b/apps/MDL_renderer/src/Application.cpp @@ -65,6 +65,7 @@ Application::Application(GLFWwindow* window, const Options& options) , m_epsilonFactor(500.0f) , m_clockFactor(1000.0f) , m_useDirectLighting(true) +, m_typeEnv(NUM_LIGHT_TYPES) , m_mouseSpeedRatio(10.0f) , m_idGroup(0) , m_idInstance(0) @@ -203,6 +204,10 @@ Application::Application(GLFWwindow* window, const Options& options) m_tonemapperGUI.saturation = 1.0f; m_tonemapperGUI.brightness = 1.0f; + m_rotationEnvironment[0] = 0.0f; + m_rotationEnvironment[1] = 0.0f; + m_rotationEnvironment[2] = 0.0f; + // System wide parameters are loaded from this file to keep the number of command line options small. const std::string filenameSystem = options.getSystem(); if (!loadSystemDescription(filenameSystem)) @@ -256,9 +261,9 @@ Application::Application(GLFWwindow* window, const Options& options) // ===== RAYTRACER - const TypeLight typeEnv = (!m_lightsGUI.empty()) ? m_lightsGUI[0].typeLight : NUM_LIGHT_TYPES; // NUM_LIGHT_TYPES means not an environment light either. + m_typeEnv = (!m_lightsGUI.empty()) ? m_lightsGUI[0].typeLight : NUM_LIGHT_TYPES; // NUM_LIGHT_TYPES means not an environment light either. - m_raytracer = std::make_unique(m_maskDevices, typeEnv, m_interop, tex, pbo, m_sizeArena, m_peerToPeer); + m_raytracer = std::make_unique(m_maskDevices, m_typeEnv, m_interop, tex, pbo, m_sizeArena, m_peerToPeer); // If the raytracer could not be initialized correctly, return and leave Application invalid. if (!m_raytracer->m_isValid) @@ -705,12 +710,45 @@ void Application::guiWindow() m_raytracer->updateState(m_state); refresh = true; } + if (m_typeEnv == TYPE_LIGHT_ENV_SPHERE) + { + if (ImGui::DragFloat3("Environment Rotation", m_rotationEnvironment, 1.0f, 0.0f, 360.0f)) + { + const dp::math::Quatf xRot(dp::math::Vec3f(1.0f, 0.0f, 0.0f), dp::math::degToRad(m_rotationEnvironment[0])); + const dp::math::Quatf yRot(dp::math::Vec3f(0.0f, 1.0f, 0.0f), dp::math::degToRad(m_rotationEnvironment[1])); + const dp::math::Quatf zRot(dp::math::Vec3f(0.0f, 0.0f, 1.0f), dp::math::degToRad(m_rotationEnvironment[2])); + m_lightsGUI[0].orientation = xRot * yRot * zRot; + + const dp::math::Quatf xRotInv(dp::math::Vec3f(1.0f, 0.0f, 0.0f), dp::math::degToRad(-m_rotationEnvironment[0])); + const dp::math::Quatf yRotInv(dp::math::Vec3f(0.0f, 1.0f, 0.0f), dp::math::degToRad(-m_rotationEnvironment[1])); + const dp::math::Quatf zRotInv(dp::math::Vec3f(0.0f, 0.0f, 1.0f), dp::math::degToRad(-m_rotationEnvironment[2])); + m_lightsGUI[0].orientationInv = zRotInv * yRotInv * xRotInv; + + m_lightsGUI[0].matrix = dp::math::Mat44f(m_lightsGUI[0].orientation, dp::math::Vec3f(0.0f, 0.0f, 0.0f)); + m_lightsGUI[0].matrixInv = dp::math::Mat44f(m_lightsGUI[0].orientationInv, dp::math::Vec3f(0.0f, 0.0f, 0.0f)); + + m_raytracer->updateLight(0, m_lightsGUI[0]); + refresh = true; + } + } if (ImGui::Combo("Camera", (int*) &m_typeLens, "Pinhole\0Fisheye\0Spherical\0\0")) { m_state.typeLens = m_typeLens; m_raytracer->updateState(m_state); refresh = true; } + if (ImGui::Button("Match Resolution")) + { + // Match the rendering resolution to the current client window size. + m_resolution.x = std::max(1, m_width); + m_resolution.y = std::max(1, m_height); + + m_camera.setResolution(m_resolution.x, m_resolution.y); + m_rasterizer->setResolution(m_resolution.x, m_resolution.y); + m_state.resolution = m_resolution; + m_raytracer->updateState(m_state); + refresh = true; + } if (ImGui::InputInt2("Resolution", &m_resolution.x, ImGuiInputTextFlags_EnterReturnsTrue)) // This requires RETURN to apply a new value. { m_resolution.x = std::max(1, m_resolution.x); diff --git a/apps/MDL_renderer/src/Device.cpp b/apps/MDL_renderer/src/Device.cpp index 19ea2d9f..18f24543 100644 --- a/apps/MDL_renderer/src/Device.cpp +++ b/apps/MDL_renderer/src/Device.cpp @@ -282,7 +282,8 @@ Device::Device(const int ordinal, options.logCallbackFunction = &callbackLogger; options.logCallbackData = this; // This allows per device logs. It's currently printing the device ordinal. - options.logCallbackLevel = 3; // Keep at warning level to suppress the disk cache messages. + options.logCallbackLevel = 3; // Keep at warning level (3) to suppress the disk cache messages. + //options.validationMode = OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_ALL; OPTIX_CHECK( m_api.optixDeviceContextCreate(m_cudaContext, &options, &m_optixContext) ); @@ -352,9 +353,9 @@ Device::Device(const int ordinal, m_mco.debugLevel = OPTIX_COMPILE_DEBUG_LEVEL_FULL; // Full debug. Never profile kernels with this setting! #else m_mco.optLevel = OPTIX_COMPILE_OPTIMIZATION_LEVEL_3; // All optimizations, is the default. - // Keep generated line info for Nsight Compute profiling. (NVCC_OPTIONS use --generate-line-info in CMakeLists.txt) + // Keep generated line info. (NVCC_OPTIONS use --generate-line-info in CMakeLists.txt) #if (OPTIX_VERSION >= 70400) - m_mco.debugLevel = OPTIX_COMPILE_DEBUG_LEVEL_MINIMAL; + m_mco.debugLevel = OPTIX_COMPILE_DEBUG_LEVEL_MINIMAL; // PERF Must use OPTIX_COMPILE_DEBUG_LEVEL_MODERATE to profile code with Nsight Compute! #else m_mco.debugLevel = OPTIX_COMPILE_DEBUG_LEVEL_LINEINFO; #endif @@ -376,7 +377,7 @@ Device::Device(const int ordinal, m_pco.exceptionFlags = OPTIX_EXCEPTION_FLAG_NONE; #endif m_pco.pipelineLaunchParamsVariableName = "sysData"; -#if (OPTIX_VERSION != 70000) +#if (OPTIX_VERSION >= 70100) // New in OptiX 7.1.0. // This renderer supports triangles and cubic B-splines. m_pco.usesPrimitiveTypeFlags = OPTIX_PRIMITIVE_TYPE_FLAGS_TRIANGLE | OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CUBIC_BSPLINE; @@ -925,7 +926,7 @@ void Device::initPipeline() unsigned int cssCCTree = ssp.cssCC; // Should be 0. No continuation callables in this pipeline. // maxCCDepth == 0 unsigned int cssCHOrMSPlusCCTree = std::max(ssp.cssCH, ssp.cssMS) + cssCCTree; - const unsigned int maxDCDepth = 2; // The __direct_callable__light_mesh_mdl calls other direct callables from MDL expressions. + const unsigned int maxDCDepth = 2; // The __direct_callable__light_mesh calls other direct callables from MDL expressions. // Arguments @@ -1142,6 +1143,15 @@ void Device::updateLight(const int idLight, const LightGUI& lightGUI) LightDefinition& light = m_lights[idLight]; // Curently only these material parameters affecting the light can be changed inside the GUI. + memcpy(light.matrix, (~lightGUI.matrix).getPtr(), sizeof(float) * 12); + memcpy(light.matrixInv, (~lightGUI.matrixInv).getPtr(), sizeof(float) * 12); + + const dp::math::Mat33f rotation(lightGUI.orientation); + const dp::math::Mat33f rotationInv(lightGUI.orientationInv); + + memcpy(light.ori, (~rotation).getPtr(), sizeof(float) * 9); + memcpy(light.oriInv, (~rotationInv).getPtr(), sizeof(float) * 9); + light.emission = lightGUI.colorEmission * lightGUI.multiplierEmission; light.spotAngleHalf = dp::math::degToRad(lightGUI.spotAngle * 0.5f); light.spotExponent = lightGUI.spotExponent; @@ -2094,7 +2104,8 @@ void Device::compileMaterial(mi::neuraylib::ITransaction* transaction, DeviceShaderConfiguration dsc = {}; // Set all callable indices to the invalid value -1. - // The MDL code generator will generate all functions (sample, evaluate, pdf). + // The MDL code generator will generate all functions by default (sample, evaluate, pdf), + // but pdf functions are disabled with backend set_option("enable_pdf", "off") // This is only containing the direct callables which are required inside the pipeline of this unidirectional path tracer. dsc.idxCallInit = -1; @@ -2289,7 +2300,7 @@ void Device::compileMaterial(mi::neuraylib::ITransaction* transaction, dsc.idxCallHairEval = appendProgramGroupMDL(indexShader, name + std::string("_evaluate")); } - m_deviceShaderConfigurations.push_back(dsc); + m_deviceShaderConfigurations.push_back(dsc); MY_ASSERT(m_modulesMDL.size() == m_deviceShaderConfigurations.size()); } diff --git a/apps/MDL_renderer/src/Raytracer.cpp b/apps/MDL_renderer/src/Raytracer.cpp index ec066bde..c9bb6f18 100644 --- a/apps/MDL_renderer/src/Raytracer.cpp +++ b/apps/MDL_renderer/src/Raytracer.cpp @@ -1345,15 +1345,15 @@ class Resource_callback switch (resource->get_kind()) { case mi::neuraylib::IValue::VK_TEXTURE: - if (res_idx < m_target_code->get_body_texture_count()) + if (m_target_code->get_texture_is_body_resource(res_idx)) return res_idx; break; case mi::neuraylib::IValue::VK_LIGHT_PROFILE: - if (res_idx < m_target_code->get_body_light_profile_count()) + if (m_target_code->get_light_profile_is_body_resource(res_idx)) return res_idx; break; case mi::neuraylib::IValue::VK_BSDF_MEASUREMENT: - if (res_idx < m_target_code->get_body_bsdf_measurement_count()) + if (m_target_code->get_bsdf_measurement_is_body_resource(res_idx)) return res_idx; break; default: @@ -1626,11 +1626,19 @@ bool Raytracer::initMDL(const std::vector& searchPaths) } // Load plugins. +#if USE_OPENIMAGEIO_PLUGIN + if (load_plugin(m_neuray.get(), "nv_openimageio" MI_BASE_DLL_FILE_EXT) != 0) + { + std::cerr << "FATAL: Failed to load nv_openimageio plugin\n"; + return false; + } +#else if (load_plugin(m_neuray.get(), "nv_freeimage" MI_BASE_DLL_FILE_EXT) != 0) { std::cerr << "FATAL: Failed to load nv_freeimage plugin\n"; return false; } +#endif if (load_plugin(m_neuray.get(), "dds" MI_BASE_DLL_FILE_EXT) != 0) { @@ -1716,6 +1724,16 @@ bool Raytracer::initMDL(const std::vector& searchPaths) // return false; //} + // PERF Disable code generation for distribution pdf functions. + // The unidirectional light transport in this renderer never calls them. + // The sample and evaluate functions return the necessary pdf values. + if (m_mdl_backend->set_option("enable_pdf", "off") != 0) + { + std::cerr << "WARNING: Raytracer::initMDL() Setting backend option enable_pdf to off failed.\n"; + // Not a fatal error if this cannot be set. + // return false; + } + m_image_api = m_neuray->get_api_component(); return true; @@ -2065,7 +2083,11 @@ void Raytracer::initMaterialMDL(MaterialMDL* material) // Split into separate functions to make the Neuray handles and transaction scope lifetime handling automatic. // When the function was successful, the Compile_result contains all information required to setup the device resources. const bool valid = compileMaterial(transaction, material, res); - + if (!valid) + { + std::cerr << "ERROR: Raytracer::initMaterialMDL() compileMaterial() failed. Material invalid.\n"; + } + material->setIsValid(valid); if (valid) @@ -2378,25 +2400,25 @@ bool Raytracer::compileMaterial(mi::neuraylib::ITransaction* transaction, Materi // Initialize with body resources always being required. // Mind that the zeroth resource is the invalid resource. - if (res.target_code->get_body_texture_count() > 0) + for (mi::Size i = 1, n = res.target_code->get_texture_count(); i < n; ++i) { - for (mi::Size i = 1, n = res.target_code->get_body_texture_count(); i < n; ++i) + if (res.target_code->get_texture_is_body_resource(i)) { res.textures.emplace_back(res.target_code->get_texture(i), res.target_code->get_texture_shape(i)); } } - if (res.target_code->get_body_light_profile_count() > 0) + for (mi::Size i = 1, n = res.target_code->get_light_profile_count(); i < n; ++i) { - for (mi::Size i = 1, n = res.target_code->get_body_light_profile_count(); i < n; ++i) + if (res.target_code->get_light_profile_is_body_resource(i)) { res.light_profiles.emplace_back(res.target_code->get_light_profile(i)); } } - if (res.target_code->get_body_bsdf_measurement_count() > 0) + for (mi::Size i = 1, n = res.target_code->get_bsdf_measurement_count(); i < n; ++i) { - for (mi::Size i = 1, n = res.target_code->get_body_bsdf_measurement_count(); i < n; ++i) + if (res.target_code->get_bsdf_measurement_is_body_resource(i)) { res.bsdf_measurements.emplace_back(res.target_code->get_bsdf_measurement(i)); } diff --git a/apps/intro_denoiser/CMakeLists.txt b/apps/intro_denoiser/CMakeLists.txt index 43990e04..91c9fa34 100644 --- a/apps/intro_denoiser/CMakeLists.txt +++ b/apps/intro_denoiser/CMakeLists.txt @@ -66,7 +66,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/intro_denoiser/src/Application.cpp b/apps/intro_denoiser/src/Application.cpp index 75463c66..6e5efcdc 100644 --- a/apps/intro_denoiser/src/Application.cpp +++ b/apps/intro_denoiser/src/Application.cpp @@ -2473,17 +2473,12 @@ void Application::initDenoiser() m_d_stateDenoiser, m_sizesDenoiser.stateSizeInBytes, m_d_scratchDenoiser, m_scratchSizeInBytes) ); - m_paramsDenoiser = {}; // Make sure all fields are nulled. OptiX 7.2.0 added the field CUdeviceptr hdrAverageColor. - - // Don't denoise alpha. -#if OPTIX_VERSION >= 70500 - m_paramsDenoiser.denoiseAlpha = OPTIX_DENOISER_ALPHA_MODE_COPY; -#else - m_paramsDenoiser.denoiseAlpha = 0; -#endif - - // Show the denoised image only. - m_paramsDenoiser.blendFactor = 0.0f; + // Make sure all existing fields are nulled! + // denoiseAlpha = 0 (== OPTIX_DENOISER_ALPHA_MODE_COPY) + // blendFactor = 0.0f; // Shows the denoised image. + // OptiX 7.2.0 added the field CUdeviceptr hdrAverageColor. + // OptiX 7.5.0 changed denoiseAlpha from int to enum OptixDenoiserAlphaMode. + m_paramsDenoiser = {}; CU_CHECK( cuMemAlloc(&m_paramsDenoiser.hdrIntensity, sizeof(float)) ); diff --git a/apps/intro_denoiser/src/Options.cpp b/apps/intro_denoiser/src/Options.cpp index 5e8f0139..1a9e3380 100644 --- a/apps/intro_denoiser/src/Options.cpp +++ b/apps/intro_denoiser/src/Options.cpp @@ -165,6 +165,7 @@ void Options::printUsage(std::string const& argv0) " ? | help | --help Print this usage message and exit.\n" " -w | --width Width of the client window (512)\n" " -h | --height Height of the client window (512)\n" + " -n | --nopbo Disable OpenGL interop.\n" " -l | --light Add an area light to the scene.\n" " -m | --miss <0|1|2> Select the miss shader (0 = black, 1 = white, 2 = HDR texture.\n" " -e | --env Filename of a spherical HDR texture. Use with --miss 2.\n" diff --git a/apps/intro_driver/CMakeLists.txt b/apps/intro_driver/CMakeLists.txt index 5afc29e6..524a79c5 100644 --- a/apps/intro_driver/CMakeLists.txt +++ b/apps/intro_driver/CMakeLists.txt @@ -66,7 +66,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/intro_driver/src/Options.cpp b/apps/intro_driver/src/Options.cpp index 5e8f0139..1a9e3380 100644 --- a/apps/intro_driver/src/Options.cpp +++ b/apps/intro_driver/src/Options.cpp @@ -165,6 +165,7 @@ void Options::printUsage(std::string const& argv0) " ? | help | --help Print this usage message and exit.\n" " -w | --width Width of the client window (512)\n" " -h | --height Height of the client window (512)\n" + " -n | --nopbo Disable OpenGL interop.\n" " -l | --light Add an area light to the scene.\n" " -m | --miss <0|1|2> Select the miss shader (0 = black, 1 = white, 2 = HDR texture.\n" " -e | --env Filename of a spherical HDR texture. Use with --miss 2.\n" diff --git a/apps/intro_motion_blur/CMakeLists.txt b/apps/intro_motion_blur/CMakeLists.txt index 77df97b2..54dfa8ed 100644 --- a/apps/intro_motion_blur/CMakeLists.txt +++ b/apps/intro_motion_blur/CMakeLists.txt @@ -62,7 +62,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/intro_motion_blur/src/Options.cpp b/apps/intro_motion_blur/src/Options.cpp index 5e8f0139..1a9e3380 100644 --- a/apps/intro_motion_blur/src/Options.cpp +++ b/apps/intro_motion_blur/src/Options.cpp @@ -165,6 +165,7 @@ void Options::printUsage(std::string const& argv0) " ? | help | --help Print this usage message and exit.\n" " -w | --width Width of the client window (512)\n" " -h | --height Height of the client window (512)\n" + " -n | --nopbo Disable OpenGL interop.\n" " -l | --light Add an area light to the scene.\n" " -m | --miss <0|1|2> Select the miss shader (0 = black, 1 = white, 2 = HDR texture.\n" " -e | --env Filename of a spherical HDR texture. Use with --miss 2.\n" diff --git a/apps/intro_runtime/CMakeLists.txt b/apps/intro_runtime/CMakeLists.txt index 8a579979..85544116 100644 --- a/apps/intro_runtime/CMakeLists.txt +++ b/apps/intro_runtime/CMakeLists.txt @@ -66,7 +66,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/intro_runtime/src/Options.cpp b/apps/intro_runtime/src/Options.cpp index 5e8f0139..1a9e3380 100644 --- a/apps/intro_runtime/src/Options.cpp +++ b/apps/intro_runtime/src/Options.cpp @@ -165,6 +165,7 @@ void Options::printUsage(std::string const& argv0) " ? | help | --help Print this usage message and exit.\n" " -w | --width Width of the client window (512)\n" " -h | --height Height of the client window (512)\n" + " -n | --nopbo Disable OpenGL interop.\n" " -l | --light Add an area light to the scene.\n" " -m | --miss <0|1|2> Select the miss shader (0 = black, 1 = white, 2 = HDR texture.\n" " -e | --env Filename of a spherical HDR texture. Use with --miss 2.\n" diff --git a/apps/nvlink_shared/CMakeLists.txt b/apps/nvlink_shared/CMakeLists.txt index 38d7b9d4..5670beaa 100644 --- a/apps/nvlink_shared/CMakeLists.txt +++ b/apps/nvlink_shared/CMakeLists.txt @@ -67,7 +67,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/rtigo10/CMakeLists.txt b/apps/rtigo10/CMakeLists.txt index ce4fbada..37359447 100644 --- a/apps/rtigo10/CMakeLists.txt +++ b/apps/rtigo10/CMakeLists.txt @@ -67,7 +67,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/rtigo3/CMakeLists.txt b/apps/rtigo3/CMakeLists.txt index 5731628a..ce27254d 100644 --- a/apps/rtigo3/CMakeLists.txt +++ b/apps/rtigo3/CMakeLists.txt @@ -67,7 +67,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/rtigo9/CMakeLists.txt b/apps/rtigo9/CMakeLists.txt index cf4241c3..94aaefad 100644 --- a/apps/rtigo9/CMakeLists.txt +++ b/apps/rtigo9/CMakeLists.txt @@ -67,7 +67,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND OR OptiX75_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND OR OptiX75_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/apps/rtigo9_omm/CMakeLists.txt b/apps/rtigo9_omm/CMakeLists.txt index 72655343..d9981bdd 100644 --- a/apps/rtigo9_omm/CMakeLists.txt +++ b/apps/rtigo9_omm/CMakeLists.txt @@ -55,7 +55,7 @@ set(USE_OPTIX_IR FALSE) set(OPTIX_MODULE_EXTENSION ".ptx") set(OPTIX_PROGRAM_TARGET "--ptx") -if (OptiX76_FOUND) +if (OptiX77_FOUND OR OptiX76_FOUND) # Define USE_OPTIX_IR and change the target to OptiX IR if the combination of OptiX SDK and CUDA Toolkit versions supports this mode. if ((${CUDAToolkit_VERSION_MAJOR} GREATER 11) OR ((${CUDAToolkit_VERSION_MAJOR} EQUAL 11) AND (${CUDAToolkit_VERSION_MINOR} GREATER_EQUAL 7))) set(USE_OPTIX_IR TRUE) diff --git a/data/scene_mdl_vMaterials.txt b/data/scene_mdl_vMaterials.txt index f9bd35fb..403186bd 100644 --- a/data/scene_mdl_vMaterials.txt +++ b/data/scene_mdl_vMaterials.txt @@ -2332,6 +2332,10 @@ mdl Fabric_Carpet_Long_Floor_Yellow_1 Fabric_Carpet_Long_Floor_Yellow "vMaterial mdl Fabric_Carpet_Long_Floor_Orange_1 Fabric_Carpet_Long_Floor_Orange "vMaterials_2/Carpet/Fabric_Carpet_Long_Floor.mdl" mdl Fabric_Carpet_Long_Floor_Green_1 Fabric_Carpet_Long_Floor_Green "vMaterials_2/Carpet/Fabric_Carpet_Long_Floor.mdl" mdl Fabric_Carpet_Long_Floor_Bordeaux_1 Fabric_Carpet_Long_Floor_Bordeaux "vMaterials_2/Carpet/Fabric_Carpet_Long_Floor.mdl" +mdl Rug_Carpet_Base Rug_Carpet_Base "vMaterials_2/Carpet/Rug_Carpet.mdl" +mdl Rug_Carpet_Lines Rug_Carpet_Lines "vMaterials_2/Carpet/Rug_Carpet.mdl" +mdl Rug_Carpet_Hexagonal Rug_Carpet_Hexagonal "vMaterials_2/Carpet/Rug_Carpet.mdl" +mdl Rug_Carpet_Honeycomb Rug_Carpet_Honeycomb "vMaterials_2/Carpet/Rug_Carpet.mdl" mdl Ceramic_Tiles_Glazed_Diamond Ceramic_Tiles_Glazed_Diamond "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Diamond.mdl" mdl Ceramic_Tiles_Diamond_Dark_Blue_New_Matte Ceramic_Tiles_Diamond_Dark_Blue_New_Matte "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Diamond.mdl" mdl Ceramic_Tiles_Diamond_Dark_Blue_Varied_New Ceramic_Tiles_Diamond_Dark_Blue_Varied_New "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Diamond.mdl" @@ -2581,16 +2585,45 @@ mdl Ceramic_Tiles_Subway_Petrol_Varied Ceramic_Tiles_Subway_Petrol_Varied "vMate mdl Ceramic_Tiles_Subway_Red Ceramic_Tiles_Subway_Red "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Subway.mdl" mdl Ceramic_Tiles_Subway_Red_Varied Ceramic_Tiles_Subway_Red_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Subway.mdl" mdl Ceramic_Tiles_Subway_Cappucino Ceramic_Tiles_Subway_Cappucino "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Subway.mdl" +mdl Ceramic_Tiles_Glazed_Versailles Ceramic_Tiles_Glazed_Versailles "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Dark_Blue_New_Matte Ceramic_Tiles_Versailles_Dark_Blue_New_Matte "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Dark_Blue_Varied_New Ceramic_Tiles_Versailles_Dark_Blue_Varied_New "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Antique_White Ceramic_Tiles_Versailles_Antique_White "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_White_Matte Ceramic_Tiles_Versailles_White_Matte "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Antique_White_Dirty Ceramic_Tiles_Versailles_Antique_White_Dirty "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Black Ceramic_Tiles_Versailles_Black "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Black_Matte Ceramic_Tiles_Versailles_Black_Matte "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Black_Matte_Rough Ceramic_Tiles_Versailles_Black_Matte_Rough "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Graphite Ceramic_Tiles_Versailles_Graphite "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Graphite_Varied Ceramic_Tiles_Versailles_Graphite_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Graphite_Matte Ceramic_Tiles_Versailles_Graphite_Matte "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Green Ceramic_Tiles_Versailles_Green "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Green_Matte Ceramic_Tiles_Versailles_Green_Matte "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Green_Varied Ceramic_Tiles_Versailles_Green_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Vintage_Green_Bathroom Ceramic_Tiles_Versailles_Vintage_Green_Bathroom "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Mint Ceramic_Tiles_Versailles_Mint "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Mint_Varied Ceramic_Tiles_Versailles_Mint_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Lime_Green Ceramic_Tiles_Versailles_Lime_Green "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Lime_Green_Varied Ceramic_Tiles_Versailles_Lime_Green_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Yellow Ceramic_Tiles_Versailles_Yellow "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Yellow_Varied Ceramic_Tiles_Versailles_Yellow_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Petrol Ceramic_Tiles_Versailles_Petrol "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Petrol_Varied Ceramic_Tiles_Versailles_Petrol_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Sky Ceramic_Tiles_Versailles_Sky "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Red Ceramic_Tiles_Versailles_Red "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" +mdl Ceramic_Tiles_Versailles_Red_Varied Ceramic_Tiles_Versailles_Red_Varied "vMaterials_2/Ceramic/Ceramic_Tiles_Glazed_Versailles.mdl" mdl Grog_Fired_Clay Grog_Fired_Clay "vMaterials_2/Ceramic/Grog_Fired_Clay.mdl" mdl Grog_Fired_Clay_Glaced Grog_Fired_Clay_Glaced "vMaterials_2/Ceramic/Grog_Fired_Clay.mdl" mdl Grog_Fired_Clay_Dirt Grog_Fired_Clay_Dirt "vMaterials_2/Ceramic/Grog_Fired_Clay.mdl" mdl Grog_Fired_Clay_Dried_Dirt Grog_Fired_Clay_Dried_Dirt "vMaterials_2/Ceramic/Grog_Fired_Clay.mdl" mdl Carbon_Fiber Carbon_Fiber "vMaterials_2/Composite/Carbon_Fiber.mdl" -mdl Carbon_Fiber_Coated Carbon_Fiber_Coated "vMaterials_2/Composite/Carbon_Fiber.mdl" -mdl Carbon_Fiber_Coated_Diffuse Carbon_Fiber_Coated_Diffuse "vMaterials_2/Composite/Carbon_Fiber.mdl" -mdl Carbon_Fiber_Coated_Dirt Carbon_Fiber_Coated_Dirt "vMaterials_2/Composite/Carbon_Fiber.mdl" -mdl Carbon_Fiber_Coated_Dirt_Sprinkles Carbon_Fiber_Coated_Dirt_Sprinkles "vMaterials_2/Composite/Carbon_Fiber.mdl" +mdl Carbon_Fiber_Matte_Uncoated Carbon_Fiber_Matte_Uncoated "vMaterials_2/Composite/Carbon_Fiber.mdl" +mdl Carbon_Fiber_Shiny_Coating Carbon_Fiber_Shiny_Coating "vMaterials_2/Composite/Carbon_Fiber.mdl" +mdl Carbon_Fiber_Worn_Coating Carbon_Fiber_Worn_Coating "vMaterials_2/Composite/Carbon_Fiber.mdl" +mdl Carbon_Fiber_Matte_Coating Carbon_Fiber_Matte_Coating "vMaterials_2/Composite/Carbon_Fiber.mdl" +mdl Carbon_Fiber_Dusty_Coating Carbon_Fiber_Dusty_Coating "vMaterials_2/Composite/Carbon_Fiber.mdl" mdl Carbon_Fiber_Aluminized Carbon_Fiber_Aluminized "vMaterials_2/Composite/Carbon_Fiber.mdl" +mdl Carbon_Fiber_Aluminized_Coated Carbon_Fiber_Aluminized_Coated "vMaterials_2/Composite/Carbon_Fiber.mdl" mdl Fiberglass Fiberglass "vMaterials_2/Composite/Fiberglass.mdl" mdl Fiberglass_Flat_Weave Fiberglass_Flat_Weave "vMaterials_2/Composite/Fiberglass.mdl" mdl Fiberglass_Shiny Fiberglass_Shiny "vMaterials_2/Composite/Fiberglass.mdl" @@ -2716,6 +2749,42 @@ mdl Tweed_Herringbone_Olive_Green Tweed_Herringbone_Olive_Green "vMaterials_2/Fa mdl Tweed_Herringbone_Saturated_Green Tweed_Herringbone_Saturated_Green "vMaterials_2/Fabric/Tweed_Herringbone.mdl" mdl Tweed_Herringbone_Purple_Orange Tweed_Herringbone_Purple_Orange "vMaterials_2/Fabric/Tweed_Herringbone.mdl" mdl Tweed_Herringbone_Green_Blue Tweed_Herringbone_Green_Blue "vMaterials_2/Fabric/Tweed_Herringbone.mdl" +mdl Velvet Velvet "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Bordeaux Velvet_Bordeaux "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Blue Velvet_Blue "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Orange Velvet_Orange "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Turquoise Velvet_Turquoise "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Green Velvet_Green "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Eggplant Velvet_Eggplant "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_White Velvet_White "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Black Velvet_Black "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Shimmering_Dark_Red Velvet_Shimmering_Dark_Red "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Shimmering_Emerald Velvet_Shimmering_Emerald "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Shimmering_Dark_Blue Velvet_Shimmering_Dark_Blue "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Shimmering_Purple Velvet_Shimmering_Purple "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Ocean_Blue Velvet_Ocean_Blue "vMaterials_2/Fabric/Velvet.mdl" +mdl Velvet_Dark_Grey Velvet_Dark_Grey "vMaterials_2/Fabric/Velvet.mdl" +mdl Alexandrite Alexandrite "vMaterials_2/Gems/Alexandrite.mdl" +mdl Amethyst Amethyst "vMaterials_2/Gems/Amethyst.mdl" +mdl Ametrine Ametrine "vMaterials_2/Gems/Ametrine.mdl" +mdl Aquamarine Aquamarine "vMaterials_2/Gems/Aquamarine.mdl" +mdl Citrine Citrine "vMaterials_2/Gems/Citrine.mdl" +mdl diamond_1 diamond "vMaterials_2/Gems/Diamond.mdl" +mdl Emerald Emerald "vMaterials_2/Gems/Emerald.mdl" +mdl Garnet Garnet "vMaterials_2/Gems/Garnet.mdl" +mdl Iolite Iolite "vMaterials_2/Gems/Iolite.mdl" +mdl jade_1 jade "vMaterials_2/Gems/Jade.mdl" +mdl Morganite Morganite "vMaterials_2/Gems/Morganite.mdl" +mdl Onyx Onyx "vMaterials_2/Gems/Onyx.mdl" +mdl Pearl Pearl "vMaterials_2/Gems/Pearl.mdl" +mdl Peridot Peridot "vMaterials_2/Gems/Peridot.mdl" +mdl Ruby Ruby "vMaterials_2/Gems/Ruby.mdl" +mdl Sapphire Sapphire "vMaterials_2/Gems/Sapphire.mdl" +mdl Tanzanite Tanzanite "vMaterials_2/Gems/Tanzanite.mdl" +mdl Topaz Topaz "vMaterials_2/Gems/Topaz.mdl" +mdl Tourmaline Tourmaline "vMaterials_2/Gems/Tourmaline.mdl" +mdl turquoise_1 turquoise "vMaterials_2/Gems/Turquoise.mdl" +mdl zircon_1 zircon "vMaterials_2/Gems/Zircon.mdl" mdl Glass_Clear Glass_Clear "vMaterials_2/Glass/Glass_Clear.mdl" mdl Glass_Clear_Greenish Glass_Clear_Greenish "vMaterials_2/Glass/Glass_Clear.mdl" mdl Glass_Clear_Blueish Glass_Clear_Blueish "vMaterials_2/Glass/Glass_Clear.mdl" @@ -2758,7 +2827,6 @@ mdl Glass_Glazing_Tinted_Light_Bronze Glass_Glazing_Tinted_Light_Bronze "vMateri mdl Glass_Glazing_Tinted_Bronze Glass_Glazing_Tinted_Bronze "vMaterials_2/Glass/Glass_Glazing_Tinted.mdl" mdl Glass_Glazing_Tinted_Dark_Bronze Glass_Glazing_Tinted_Dark_Bronze "vMaterials_2/Glass/Glass_Glazing_Tinted.mdl" mdl Glass_Optical Glass_Optical "vMaterials_2/Glass/Glass_Optical.mdl" -mdl Glass_Optical_PSK Glass_Optical_PSK "vMaterials_2/Glass/Glass_Optical.mdl" mdl Glass_Optical_FK Glass_Optical_FK "vMaterials_2/Glass/Glass_Optical.mdl" mdl Glass_Optical_PK Glass_Optical_PK "vMaterials_2/Glass/Glass_Optical.mdl" mdl Glass_Optical_BK Glass_Optical_BK "vMaterials_2/Glass/Glass_Optical.mdl" @@ -2834,6 +2902,48 @@ mdl Small_Cobblestone_Bright Small_Cobblestone_Bright "vMaterials_2/Ground/Small mdl Small_Cobblestone_Wet_Grouts Small_Cobblestone_Wet_Grouts "vMaterials_2/Ground/Small_Cobblestone.mdl" mdl Small_Cobblestone_Flooded_Grouts Small_Cobblestone_Flooded_Grouts "vMaterials_2/Ground/Small_Cobblestone.mdl" mdl Small_Cobblestone_Water_Flooded Small_Cobblestone_Water_Flooded "vMaterials_2/Ground/Small_Cobblestone.mdl" +mdl abs_hard_leather abs_hard_leather "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Brown ABS_Hard_Leather_Brown "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Grey ABS_Hard_Leather_Grey "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Peach ABS_Hard_Leather_Peach "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Vintage_Rose ABS_Hard_Leather_Vintage_Rose "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Moss ABS_Hard_Leather_Moss "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Sky ABS_Hard_Leather_Sky "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Pop_Turquoise ABS_Hard_Leather_Pop_Turquoise "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Pop_Pink ABS_Hard_Leather_Pop_Pink "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Pop_Lime ABS_Hard_Leather_Pop_Lime "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Deep_Ocean ABS_Hard_Leather_Deep_Ocean "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Deep_Green ABS_Hard_Leather_Deep_Green "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Hard_Leather_Deep_Violet ABS_Hard_Leather_Deep_Violet "vMaterials_2/Leather/ABS_Hard_Leather.mdl" +mdl ABS_Soft_Leather ABS_Soft_Leather "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Brown ABS_Soft_Leather_Brown "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Ash ABS_Soft_Leather_Ash "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Bone ABS_Soft_Leather_Bone "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Salmon ABS_Soft_Leather_Salmon "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Cognac ABS_Soft_Leather_Cognac "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Beige ABS_Soft_Leather_Beige "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Pop_Orange ABS_Soft_Leather_Pop_Orange "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Pop_Purple ABS_Soft_Leather_Pop_Purple "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Pop_Grapefruit ABS_Soft_Leather_Pop_Grapefruit "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Deep_Blue ABS_Soft_Leather_Deep_Blue "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Deep_Mint ABS_Soft_Leather_Deep_Mint "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Soft_Leather_Deep_Radish ABS_Soft_Leather_Deep_Radish "vMaterials_2/Leather/ABS_Soft_Leather.mdl" +mdl ABS_Woven_Leather ABS_Woven_Leather "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Velvety_Woven_Leather_Brown ABS_Velvety_Woven_Leather_Brown "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Spotty_Woven_Leather_Brown ABS_Spotty_Woven_Leather_Brown "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Dark ABS_Soft_Woven_Leather_Dark "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Brown ABS_Soft_Woven_Leather_Brown "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Ash ABS_Soft_Woven_Leather_Ash "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Spotty_Woven_Leather_Ash ABS_Spotty_Woven_Leather_Ash "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Spotty_Woven_Leather_Dark ABS_Spotty_Woven_Leather_Dark "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Puffy_Woven_Leather_Dark ABS_Puffy_Woven_Leather_Dark "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Puffy_Woven_Leather_Brown ABS_Puffy_Woven_Leather_Brown "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Puffy_Woven_Leather_Ash ABS_Puffy_Woven_Leather_Ash "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Baby_Blue ABS_Soft_Woven_Leather_Baby_Blue "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Mint ABS_Soft_Woven_Leather_Mint "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Sand ABS_Soft_Woven_Leather_Sand "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Lavender ABS_Soft_Woven_Leather_Lavender "vMaterials_2/Leather/ABS_Woven_Leather.mdl" +mdl ABS_Soft_Woven_Leather_Salmon ABS_Soft_Woven_Leather_Salmon "vMaterials_2/Leather/ABS_Woven_Leather.mdl" mdl Aniline_Leather Aniline_Leather "vMaterials_2/Leather/Aniline_Leather.mdl" mdl Aniline_Leather_Black Aniline_Leather_Black "vMaterials_2/Leather/Aniline_Leather.mdl" mdl Aniline_Leather_Shiny_Brown Aniline_Leather_Shiny_Brown "vMaterials_2/Leather/Aniline_Leather.mdl" @@ -2962,6 +3072,162 @@ mdl Aluminum_Sheet_Matte_Imperfections Aluminum_Sheet_Matte_Imperfections "vMate mdl Aluminum_Sheet_Glossy_Imperfections Aluminum_Sheet_Glossy_Imperfections "vMaterials_2/Metal/Aluminum_Sheet.mdl" mdl Aluminum_Sheet_Splotchy_Streaks Aluminum_Sheet_Splotchy_Streaks "vMaterials_2/Metal/Aluminum_Sheet.mdl" mdl Aluminum_Sheet_Glossy_Streaks Aluminum_Sheet_Glossy_Streaks "vMaterials_2/Metal/Aluminum_Sheet.mdl" +mdl Blued_Steel_Cold Blued_Steel_Cold "vMaterials_2/Metal/Blued_Steel_Cold.mdl" +mdl Blued_Steel_Cold_Matte Blued_Steel_Cold_Matte "vMaterials_2/Metal/Blued_Steel_Cold.mdl" +mdl Blued_Steel_Cold_Matte_Smudged Blued_Steel_Cold_Matte_Smudged "vMaterials_2/Metal/Blued_Steel_Cold.mdl" +mdl Blued_Steel_Cold_Worn Blued_Steel_Cold_Worn "vMaterials_2/Metal/Blued_Steel_Cold.mdl" +mdl Brass Brass "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Yellow_New_Stained Brass_Yellow_New_Stained "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Yellow_Shiny_Handled Brass_Yellow_Shiny_Handled "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Yellow_Worn Brass_Yellow_Worn "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Yellow_Rough_Worn Brass_Yellow_Rough_Worn "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Gold_New Brass_Gold_New "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Gold_New_Stained Brass_Gold_New_Stained "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Gold_Shiny_Handled Brass_Gold_Shiny_Handled "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Gold_Worn Brass_Gold_Worn "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Gold_Rough_Worn Brass_Gold_Rough_Worn "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Red_New Brass_Red_New "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Red_New_Stained Brass_Red_New_Stained "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Red_Shiny_Handled Brass_Red_Shiny_Handled "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Red_Worn Brass_Red_Worn "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Red_Rough_Worn Brass_Red_Rough_Worn "vMaterials_2/Metal/Brass.mdl" +mdl Brass_Antique Brass_Antique "vMaterials_2/Metal/Brass_Antique.mdl" +mdl Brass_Antique_Shiny_Stained Brass_Antique_Shiny_Stained "vMaterials_2/Metal/Brass_Antique.mdl" +mdl Brass_Antique_Matte_Dirty Brass_Antique_Matte_Dirty "vMaterials_2/Metal/Brass_Antique.mdl" +mdl Brass_Brushed Brass_Brushed "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Yellow_Fine Brass_Brushed_Yellow_Fine "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Yellow_Medium Brass_Brushed_Yellow_Medium "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Yellow_Dirty_Medium Brass_Brushed_Yellow_Dirty_Medium "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Yellow_Strong Brass_Brushed_Yellow_Strong "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Gold_Smooth_Subtle Brass_Brushed_Gold_Smooth_Subtle "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Gold_Fine Brass_Brushed_Gold_Fine "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Gold_Medium Brass_Brushed_Gold_Medium "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Gold_Dirty_Medium Brass_Brushed_Gold_Dirty_Medium "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Gold_Strong Brass_Brushed_Gold_Strong "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Red_Smooth_Subtle Brass_Brushed_Red_Smooth_Subtle "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Red_Fine Brass_Brushed_Red_Fine "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Red_Medium Brass_Brushed_Red_Medium "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Red_Dirty_Medium Brass_Brushed_Red_Dirty_Medium "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Brushed_Red_Strong Brass_Brushed_Red_Strong "vMaterials_2/Metal/Brass_Brushed.mdl" +mdl Brass_Foil Brass_Foil "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Yellow_Slightly_Wrinkled Brass_Foil_Yellow_Slightly_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Yellow_Shiny_Wrinkled Brass_Foil_Yellow_Shiny_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Yellow_Matte_Wrinkled Brass_Foil_Yellow_Matte_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Yellow_Heavy_Wrinkles Brass_Foil_Yellow_Heavy_Wrinkles "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Gold_Heavy_Wrinkles Brass_Foil_Gold_Heavy_Wrinkles "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Gold_Slightly_Wrinkled Brass_Foil_Gold_Slightly_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Gold_Shiny_Wrinkled Brass_Foil_Gold_Shiny_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Gold_Matte_Wrinkled Brass_Foil_Gold_Matte_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Gold_Flat_Smudged Brass_Foil_Gold_Flat_Smudged "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Red_Heavy_Wrinkles Brass_Foil_Red_Heavy_Wrinkles "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Red_Slightly_Wrinkled Brass_Foil_Red_Slightly_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Red_Shiny_Wrinkled Brass_Foil_Red_Shiny_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Red_Matte_Wrinkled Brass_Foil_Red_Matte_Wrinkled "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Foil_Red_Flat_Smudged Brass_Foil_Red_Flat_Smudged "vMaterials_2/Metal/Brass_Foil.mdl" +mdl Brass_Hammered Brass_Hammered "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Yellow_Shiny_Soft_Hammering Brass_Hammered_Yellow_Shiny_Soft_Hammering "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Yellow_Matte_Hammering Brass_Hammered_Yellow_Matte_Hammering "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Gold_Hammered_Darkened Brass_Hammered_Gold_Hammered_Darkened "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Gold_Shiny_Soft_Hammering Brass_Hammered_Gold_Shiny_Soft_Hammering "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Gold_Matte_Hammering Brass_Hammered_Gold_Matte_Hammering "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Red_Hammered_Darkened Brass_Hammered_Red_Hammered_Darkened "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Red_Shiny_Soft_Hammering Brass_Hammered_Red_Shiny_Soft_Hammering "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Hammered_Red_Matte_Hammering Brass_Hammered_Red_Matte_Hammering "vMaterials_2/Metal/Brass_Hammered.mdl" +mdl Brass_Knurling Brass_Knurling "vMaterials_2/Metal/Brass_Knurling.mdl" +mdl Brass_Knurling_Yellow_Rough_Dirty Brass_Knurling_Yellow_Rough_Dirty "vMaterials_2/Metal/Brass_Knurling.mdl" +mdl Brass_Knurling_Gold Brass_Knurling_Gold "vMaterials_2/Metal/Brass_Knurling.mdl" +mdl Brass_Knurling_Gold_Rough_Dirty Brass_Knurling_Gold_Rough_Dirty "vMaterials_2/Metal/Brass_Knurling.mdl" +mdl Brass_Knurling_Red Brass_Knurling_Red "vMaterials_2/Metal/Brass_Knurling.mdl" +mdl Brass_Knurling_Red_Rough_Dirty Brass_Knurling_Red_Rough_Dirty "vMaterials_2/Metal/Brass_Knurling.mdl" +mdl Brass_Polished Brass_Polished "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Yellow_Matte_Polish Brass_Polished_Yellow_Matte_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Yellow_Cloudy_Polish Brass_Polished_Yellow_Cloudy_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Yellow_Shiny_Worn Brass_Polished_Yellow_Shiny_Worn "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Gold_Shiny_Polish Brass_Polished_Gold_Shiny_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Gold_Matte_Polish Brass_Polished_Gold_Matte_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Gold_Cloudy_Polish Brass_Polished_Gold_Cloudy_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Gold_Shiny_Worn Brass_Polished_Gold_Shiny_Worn "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Red_Shiny_Polish Brass_Polished_Red_Shiny_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Red_Matte_Polish Brass_Polished_Red_Matte_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Red_Cloudy_Polish Brass_Polished_Red_Cloudy_Polish "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Polished_Red_Shiny_Worn Brass_Polished_Red_Shiny_Worn "vMaterials_2/Metal/Brass_Polished.mdl" +mdl Brass_Scratched Brass_Scratched "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Yellow_Subtle_Worn_Scratches Brass_Scratched_Yellow_Subtle_Worn_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Yellow_Medium_Glossy_Scratches Brass_Scratched_Yellow_Medium_Glossy_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Yellow_Medium_Glossy_Deep_Scratches Brass_Scratched_Yellow_Medium_Glossy_Deep_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Yellow_Heavy_Worn_Scratches Brass_Scratched_Yellow_Heavy_Worn_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Gold_Polished_Subtle_Dark_Scratches Brass_Scratched_Gold_Polished_Subtle_Dark_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Gold_Subtle_Worn_Scratches Brass_Scratched_Gold_Subtle_Worn_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Gold_Medium_Glossy_Scratches Brass_Scratched_Gold_Medium_Glossy_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Gold_Medium_Glossy_Deep_Scratches Brass_Scratched_Gold_Medium_Glossy_Deep_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Gold_Heavy_Worn_Scratches Brass_Scratched_Gold_Heavy_Worn_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Red_Polished_Subtle_Dark_Scratches Brass_Scratched_Red_Polished_Subtle_Dark_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Red_Subtle_Worn_Scratches Brass_Scratched_Red_Subtle_Worn_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Red_Medium_Glossy_Scratches Brass_Scratched_Red_Medium_Glossy_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Red_Medium_Glossy_Deep_Scratches Brass_Scratched_Red_Medium_Glossy_Deep_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Scratched_Red_Heavy_Worn_Scratches Brass_Scratched_Red_Heavy_Worn_Scratches "vMaterials_2/Metal/Brass_Scratched.mdl" +mdl Brass_Sheet Brass_Sheet "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Yellow_Soft_Splotches Brass_Sheet_Yellow_Soft_Splotches "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Yellow_Glossy_Imperfections Brass_Sheet_Yellow_Glossy_Imperfections "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Yellow_Splotchy_Streaks Brass_Sheet_Yellow_Splotchy_Streaks "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Yellow_Matte_Imperfections Brass_Sheet_Yellow_Matte_Imperfections "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Gold_New_Clean Brass_Sheet_Gold_New_Clean "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Gold_Soft_Splotches Brass_Sheet_Gold_Soft_Splotches "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Gold_Glossy_Imperfections Brass_Sheet_Gold_Glossy_Imperfections "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Gold_Splotchy_Streaks Brass_Sheet_Gold_Splotchy_Streaks "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Gold_Matte_Imperfections Brass_Sheet_Gold_Matte_Imperfections "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Red_New_Clean Brass_Sheet_Red_New_Clean "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Red_Soft_Splotches Brass_Sheet_Red_Soft_Splotches "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Red_Glossy_Imperfections Brass_Sheet_Red_Glossy_Imperfections "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Red_Splotchy_Streaks Brass_Sheet_Red_Splotchy_Streaks "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Brass_Sheet_Red_Matte_Imperfections Brass_Sheet_Red_Matte_Imperfections "vMaterials_2/Metal/Brass_Sheet.mdl" +mdl Bronze Bronze "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Yellow_New_Stained Bronze_Yellow_New_Stained "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Yellow_Shiny_Handled Bronze_Yellow_Shiny_Handled "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Yellow_Worn Bronze_Yellow_Worn "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Yellow_Rough_Worn Bronze_Yellow_Rough_Worn "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_New Bronze_New "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_New_Stained Bronze_New_Stained "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Shiny_Handled Bronze_Shiny_Handled "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Worn Bronze_Worn "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Rough_Worn Bronze_Rough_Worn "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Red_New Bronze_Red_New "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Red_New_Stained Bronze_Red_New_Stained "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Red_Shiny_Handled Bronze_Red_Shiny_Handled "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Red_Worn Bronze_Red_Worn "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Red_Rough_Worn Bronze_Red_Rough_Worn "vMaterials_2/Metal/Bronze.mdl" +mdl Bronze_Antique Bronze_Antique "vMaterials_2/Metal/Bronze_Antique.mdl" +mdl Bronze_Antique_Shiny_Stained Bronze_Antique_Shiny_Stained "vMaterials_2/Metal/Bronze_Antique.mdl" +mdl Bronze_Antique_Matte_Dirty Bronze_Antique_Matte_Dirty "vMaterials_2/Metal/Bronze_Antique.mdl" +mdl Bronze_Brushed Bronze_Brushed "vMaterials_2/Metal/Bronze_Brushed.mdl" +mdl Bronze_Brushed_Yellow_Fine Bronze_Brushed_Yellow_Fine "vMaterials_2/Metal/Bronze_Brushed.mdl" +mdl Bronze_Brushed_Yellow_Medium Bronze_Brushed_Yellow_Medium "vMaterials_2/Metal/Bronze_Brushed.mdl" +mdl Bronze_Brushed_Yellow_Dirty_Medium Bronze_Brushed_Yellow_Dirty_Medium "vMaterials_2/Metal/Bronze_Brushed.mdl" +mdl Bronze_Brushed_Yellow_Strong Bronze_Brushed_Yellow_Strong "vMaterials_2/Metal/Bronze_Brushed.mdl" +mdl Bronze_Foil Bronze_Foil "vMaterials_2/Metal/Bronze_Foil.mdl" +mdl Bronze_Foil_Slightly_Wrinkled Bronze_Foil_Slightly_Wrinkled "vMaterials_2/Metal/Bronze_Foil.mdl" +mdl Bronze_Foil_Shiny_Wrinkled Bronze_Foil_Shiny_Wrinkled "vMaterials_2/Metal/Bronze_Foil.mdl" +mdl Bronze_Foil_Matte_Wrinkled Bronze_Foil_Matte_Wrinkled "vMaterials_2/Metal/Bronze_Foil.mdl" +mdl Bronze_Foil_Heavy_Wrinkles Bronze_Foil_Heavy_Wrinkles "vMaterials_2/Metal/Bronze_Foil.mdl" +mdl Bronze_Hammered Bronze_Hammered "vMaterials_2/Metal/Bronze_Hammered.mdl" +mdl Bronze_Hammered_Shiny_Soft_Hammering Bronze_Hammered_Shiny_Soft_Hammering "vMaterials_2/Metal/Bronze_Hammered.mdl" +mdl Bronze_Hammered_Matte_Hammering Bronze_Hammered_Matte_Hammering "vMaterials_2/Metal/Bronze_Hammered.mdl" +mdl Bronze_Knurling Bronze_Knurling "vMaterials_2/Metal/Bronze_Knurling.mdl" +mdl Bronze_Knurling_Rough_Dirty Bronze_Knurling_Rough_Dirty "vMaterials_2/Metal/Bronze_Knurling.mdl" +mdl Bronze_Polished Bronze_Polished "vMaterials_2/Metal/Bronze_Polished.mdl" +mdl Bronze_Polished_Matte_Polish Bronze_Polished_Matte_Polish "vMaterials_2/Metal/Bronze_Polished.mdl" +mdl Bronze_Polished_Cloudy_Polish Bronze_Polished_Cloudy_Polish "vMaterials_2/Metal/Bronze_Polished.mdl" +mdl Bronze_Polished_Shiny_Worn Bronze_Polished_Shiny_Worn "vMaterials_2/Metal/Bronze_Polished.mdl" +mdl Bronze_Scratched Bronze_Scratched "vMaterials_2/Metal/Bronze_Scratched.mdl" +mdl Bronze_Scratched_Yellow_Subtle_Worn_Scratches Bronze_Scratched_Yellow_Subtle_Worn_Scratches "vMaterials_2/Metal/Bronze_Scratched.mdl" +mdl Bronze_Scratched_Yellow_Medium_Glossy_Scratches Bronze_Scratched_Yellow_Medium_Glossy_Scratches "vMaterials_2/Metal/Bronze_Scratched.mdl" +mdl Bronze_Scratched_Yellow_Medium_Glossy_Deep_Scratches Bronze_Scratched_Yellow_Medium_Glossy_Deep_Scratches "vMaterials_2/Metal/Bronze_Scratched.mdl" +mdl Bronze_Scratched_Yellow_Heavy_Worn_Scratches Bronze_Scratched_Yellow_Heavy_Worn_Scratches "vMaterials_2/Metal/Bronze_Scratched.mdl" +mdl Bronze_Sheet Bronze_Sheet "vMaterials_2/Metal/Bronze_Sheet.mdl" +mdl Bronze_Sheet_Soft_Splotches Bronze_Sheet_Soft_Splotches "vMaterials_2/Metal/Bronze_Sheet.mdl" +mdl Bronze_Sheet_Glossy_Imperfections Bronze_Sheet_Glossy_Imperfections "vMaterials_2/Metal/Bronze_Sheet.mdl" +mdl Bronze_Sheet_Splotchy_Streaks Bronze_Sheet_Splotchy_Streaks "vMaterials_2/Metal/Bronze_Sheet.mdl" +mdl Bronze_Sheet_Matte_Imperfections Bronze_Sheet_Matte_Imperfections "vMaterials_2/Metal/Bronze_Sheet.mdl" mdl Chrome_Hammered Chrome_Hammered "vMaterials_2/Metal/Chrome_Hammered.mdl" mdl Chromium Chromium "vMaterials_2/Metal/Chromium.mdl" mdl Chromium_Polished Chromium_Polished "vMaterials_2/Metal/Chromium.mdl" @@ -3130,6 +3396,19 @@ mdl Woven_Metal_03_Copper_Worn Woven_Metal_03_Copper_Worn "vMaterials_2/Metal/Me mdl Woven_Metal_03_Brass_Polished Woven_Metal_03_Brass_Polished "vMaterials_2/Metal/Mesh/Metal_Mesh_Weave_03.mdl" mdl Woven_Metal_03_Brass_Glossy Woven_Metal_03_Brass_Glossy "vMaterials_2/Metal/Mesh/Metal_Mesh_Weave_03.mdl" mdl Woven_Metal_03_Brass_Worn Woven_Metal_03_Brass_Worn "vMaterials_2/Metal/Mesh/Metal_Mesh_Weave_03.mdl" +mdl Metal_Cast Metal_Cast "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Iron_Cast Iron_Cast "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Iron_Cast_Black_Matte Iron_Cast_Black_Matte "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Stainless_Steel_Cast_Shiny Stainless_Steel_Cast_Shiny "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Stainless_Steel_Cast_Rough Stainless_Steel_Cast_Rough "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Aluminum_Cast_Shiny Aluminum_Cast_Shiny "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Aluminum_Cast_Rough Aluminum_Cast_Rough "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Metal_Cast_Painted Metal_Cast_Painted "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Metal_Cast_Painted_Red Metal_Cast_Painted_Red "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Metal_Cast_Painted_Gray Metal_Cast_Painted_Gray "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Metal_Cast_Painted_Antique_White Metal_Cast_Painted_Antique_White "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Metal_Cast_Painted_White Metal_Cast_Painted_White "vMaterials_2/Metal/Metal_Cast.mdl" +mdl Metal_Cast_Painted_Petrol Metal_Cast_Painted_Petrol "vMaterials_2/Metal/Metal_Cast.mdl" mdl Nickel Nickel "vMaterials_2/Metal/Nickel.mdl" mdl Nickel_Polished Nickel_Polished "vMaterials_2/Metal/Nickel.mdl" mdl Nickel_Glossy_Fingerprints Nickel_Glossy_Fingerprints "vMaterials_2/Metal/Nickel.mdl" @@ -3235,6 +3514,18 @@ mdl Solder_Paste Solder_Paste "vMaterials_2/Metal/Solder_Paste.mdl" mdl Solder_Paste_Fresh Solder_Paste_Fresh "vMaterials_2/Metal/Solder_Paste.mdl" mdl Solder_Paste_Dull Solder_Paste_Dull "vMaterials_2/Metal/Solder_Paste.mdl" mdl Solder_Paste_Bumpy Solder_Paste_Bumpy "vMaterials_2/Metal/Solder_Paste.mdl" +mdl Stainless_Steel Stainless_Steel "vMaterials_2/Metal/Stainless_Steel.mdl" +mdl Stainless_Steel_Shiny_Worn Stainless_Steel_Shiny_Worn "vMaterials_2/Metal/Stainless_Steel.mdl" +mdl Stainless_Steel_Shiny_Smudged Stainless_Steel_Shiny_Smudged "vMaterials_2/Metal/Stainless_Steel.mdl" +mdl Stainless_Steel_Glossy Stainless_Steel_Glossy "vMaterials_2/Metal/Stainless_Steel.mdl" +mdl Stainless_Steel_Matte Stainless_Steel_Matte "vMaterials_2/Metal/Stainless_Steel.mdl" +mdl Steel_Brushed Steel_Brushed "vMaterials_2/Metal/Stainless_Steel_Brushed.mdl" +mdl Steel_Brushed_Medium_Brushing Steel_Brushed_Medium_Brushing "vMaterials_2/Metal/Stainless_Steel_Brushed.mdl" +mdl Steel_Brushed_Matte_Brushing Steel_Brushed_Matte_Brushing "vMaterials_2/Metal/Stainless_Steel_Brushed.mdl" +mdl Steel_Brushed_Clean_Polished Steel_Brushed_Clean_Polished "vMaterials_2/Metal/Stainless_Steel_Brushed.mdl" +mdl Steel_Brushed_Worn Steel_Brushed_Worn "vMaterials_2/Metal/Stainless_Steel_Brushed.mdl" +mdl Stainless_Steel_Milled Stainless_Steel_Milled "vMaterials_2/Metal/Stainless_Steel_Milled.mdl" +mdl Stainless_Steel_Milled_Worn Stainless_Steel_Milled_Worn "vMaterials_2/Metal/Stainless_Steel_Milled.mdl" mdl Titanium Titanium "vMaterials_2/Metal/Titanium.mdl" mdl Titanium_Polished Titanium_Polished "vMaterials_2/Metal/Titanium.mdl" mdl Titanium_Glossy_Fingerprints Titanium_Glossy_Fingerprints "vMaterials_2/Metal/Titanium.mdl" @@ -3347,6 +3638,11 @@ mdl Jelly_Clear_Orange Jelly_Clear_Orange "vMaterials_2/Other/Food/Jelly_Clear.m mdl Jelly_Clear_Yellow_Lemon Jelly_Clear_Yellow_Lemon "vMaterials_2/Other/Food/Jelly_Clear.mdl" mdl Jelly_Clear_White_Pineapple Jelly_Clear_White_Pineapple "vMaterials_2/Other/Food/Jelly_Clear.mdl" mdl Jelly_Clear_Green_Apple Jelly_Clear_Green_Apple "vMaterials_2/Other/Food/Jelly_Clear.mdl" +mdl Tire Tire "vMaterials_2/Other/Rubber/Tire.mdl" +mdl Tire_Dusty Tire_Dusty "vMaterials_2/Other/Rubber/Tire.mdl" +mdl Tire_Offroad Tire_Offroad "vMaterials_2/Other/Rubber/Tire.mdl" +mdl Tire_Slick Tire_Slick "vMaterials_2/Other/Rubber/Tire.mdl" +mdl Tire_New Tire_New "vMaterials_2/Other/Rubber/Tire.mdl" mdl Carpaint_Candy Carpaint_Candy "vMaterials_2/Paint/Carpaint/Carpaint_Candy.mdl" mdl Black_Monster_Flakes_Candy Black_Monster_Flakes_Candy "vMaterials_2/Paint/Carpaint/Carpaint_Candy.mdl" mdl Red_Candy_Coat Red_Candy_Coat "vMaterials_2/Paint/Carpaint/Carpaint_Candy.mdl" @@ -3719,11 +4015,13 @@ mdl Rosa_Beta_Grunge Rosa_Beta_Grunge "vMaterials_2/Stone/Rosa_Beta.mdl" mdl Rosa_Beta_Stain Rosa_Beta_Stain "vMaterials_2/Stone/Rosa_Beta.mdl" mdl Rosa_Beta_Glossy_Stain Rosa_Beta_Glossy_Stain "vMaterials_2/Stone/Rosa_Beta.mdl" mdl Steel_Grey Steel_Grey "vMaterials_2/Stone/Steel_Grey.mdl" -mdl Steel_Grey_Clean Steel_Grey_Clean "vMaterials_2/Stone/Steel_Grey.mdl" +mdl Steel_Grey_Polished Steel_Grey_Polished "vMaterials_2/Stone/Steel_Grey.mdl" +mdl Steel_Grey_Dark_Clean_Ripple Steel_Grey_Dark_Clean_Ripple "vMaterials_2/Stone/Steel_Grey.mdl" mdl Steel_Grey_Bright Steel_Grey_Bright "vMaterials_2/Stone/Steel_Grey.mdl" -mdl Steel_Grey_Matte Steel_Grey_Matte "vMaterials_2/Stone/Steel_Grey.mdl" +mdl Steel_Grey_Soft_Alabaster Steel_Grey_Soft_Alabaster "vMaterials_2/Stone/Steel_Grey.mdl" +mdl Steel_Grey_Dust Steel_Grey_Dust "vMaterials_2/Stone/Steel_Grey.mdl" +mdl Steel_Grey_Dark_Sprinkles Steel_Grey_Dark_Sprinkles "vMaterials_2/Stone/Steel_Grey.mdl" mdl Steel_Grey_Alabaster Steel_Grey_Alabaster "vMaterials_2/Stone/Steel_Grey.mdl" -mdl Steel_Grey_Rough Steel_Grey_Rough "vMaterials_2/Stone/Steel_Grey.mdl" mdl Stone_Mediterranean Stone_Mediterranean "vMaterials_2/Stone/Stone_Mediterranean.mdl" mdl Stone_Mediterranean_Matte Stone_Mediterranean_Matte "vMaterials_2/Stone/Stone_Mediterranean.mdl" mdl Stone_Mediterranean_Warm_Shiny Stone_Mediterranean_Warm_Shiny "vMaterials_2/Stone/Stone_Mediterranean.mdl" @@ -3738,6 +4036,11 @@ mdl Terrazzo_Freckled_Highlights Terrazzo_Freckled_Highlights "vMaterials_2/Ston mdl Terrazzo_Footprints Terrazzo_Footprints "vMaterials_2/Stone/Terrazzo.mdl" mdl Terrazzo_Diffuse_Clean Terrazzo_Diffuse_Clean "vMaterials_2/Stone/Terrazzo.mdl" mdl Terrazzo_Shiny_Clean Terrazzo_Shiny_Clean "vMaterials_2/Stone/Terrazzo.mdl" +mdl Volga_Blue Volga_Blue "vMaterials_2/Stone/Volga_Blue.mdl" +mdl Volga_Blue_Darken Volga_Blue_Darken "vMaterials_2/Stone/Volga_Blue.mdl" +mdl Volga_Blue_Deep_Pollished Volga_Blue_Deep_Pollished "vMaterials_2/Stone/Volga_Blue.mdl" +mdl Volga_Blue_Bright_Blue Volga_Blue_Bright_Blue "vMaterials_2/Stone/Volga_Blue.mdl" +mdl Volga_Blue_Imperfections Volga_Blue_Imperfections "vMaterials_2/Stone/Volga_Blue.mdl" mdl Laminate_Oak_1 Laminate_Oak "vMaterials_2/Wood/Laminate_Oak.mdl" mdl Laminate_Oak_Polished_1 Laminate_Oak_Polished "vMaterials_2/Wood/Laminate_Oak.mdl" mdl Laminate_Oak_Slight_Smudges_1 Laminate_Oak_Slight_Smudges "vMaterials_2/Wood/Laminate_Oak.mdl" @@ -3882,7 +4185,7 @@ pop push translate 0 1 3 -model sphere 180 90 1 Carbon_Fiber_Coated +model sphere 180 90 1 Carbon_Fiber_Shiny_Coating pop push diff --git a/data/system_mdl_demo.txt b/data/system_mdl_demo.txt index 3365e030..b19dd802 100644 --- a/data/system_mdl_demo.txt +++ b/data/system_mdl_demo.txt @@ -134,7 +134,7 @@ camera 0.75 0.5 60 8 # If this is just a folder, end it with '/' # The folder must already exist or saving screenshot fails! -prefixScreenshot "./MDL_renderer" +prefixScreenshot "./mdl_demo" # The search paths used to look for MDL files and resources referenced inside the scene description materials. # Multiple searchPath can be given here, which get strored into a vector in the given order. diff --git a/data/system_mdl_hair.txt b/data/system_mdl_hair.txt index 1afc4805..e4a6e116 100644 --- a/data/system_mdl_hair.txt +++ b/data/system_mdl_hair.txt @@ -134,7 +134,7 @@ camera 0.75 0.5 45 4 # If this is just a folder, end it with '/' # The folder must already exist or saving screenshot fails! -prefixScreenshot "./MDL_renderer" +prefixScreenshot "./mdl_hair" # The search paths used to look for MDL files and resources referenced inside the scene description materials. # Multiple searchPath can be given here, which get strored into a vector in the given order. diff --git a/data/system_mdl_vMaterials.txt b/data/system_mdl_vMaterials.txt index 21d1d5f8..6ba62f6e 100644 --- a/data/system_mdl_vMaterials.txt +++ b/data/system_mdl_vMaterials.txt @@ -134,7 +134,7 @@ camera 0.75 0.5 60 8 # If this is just a folder, end it with '/' # The folder must already exist or saving screenshot fails! -prefixScreenshot "./MDL_renderer" +prefixScreenshot "./mdl_vMaterials" # The search paths used to look for MDL files and resources referenced inside the scene description materials. # Multiple searchPath can be given here, which get strored into a vector in the given order. diff --git a/data/system_rtigo9_demo.txt b/data/system_rtigo9_demo.txt index b4272e86..4704c652 100644 --- a/data/system_rtigo9_demo.txt +++ b/data/system_rtigo9_demo.txt @@ -128,7 +128,7 @@ camera 0.75 0.5 60 8 # If this is just a folder, end it with '/' # The folder must already exist or saving screenshot fails! -prefixScreenshot "./rtigo9" +prefixScreenshot "./rtigo9_demo" # Tonemapper settings. # Can be adjusted in the GUI. diff --git a/data/system_rtigo9_leaf.txt b/data/system_rtigo9_leaf.txt index b3598079..96d3397e 100644 --- a/data/system_rtigo9_leaf.txt +++ b/data/system_rtigo9_leaf.txt @@ -120,7 +120,7 @@ camera 0.75 0.5 60 8 # If this is just a folder, end it with '/' # The folder must already exist or saving screenshot fails! -prefixScreenshot "./rtigo9" +prefixScreenshot "./rtigo9_leaf" # Tonemapper settings. # Can be adjusted in the GUI.