diff --git a/.appveyor.yml b/.appveyor.yml index 3e2da1199e..4be4b4b9f9 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -33,24 +33,23 @@ build_script: - cd build - cmake -DMATERIALX_BUILD_PYTHON=ON -DMATERIALX_WARNINGS_AS_ERRORS=ON -G "%CMAKE_PLATFORM%" -DCMAKE_BUILD_TYPE="%CONFIGURATION%" .. - cmake --build . --target install --config %CONFIGURATION% - - ctest --output-on-failure --build-config %CONFIGURATION% + - ctest -VV --output-on-failure --build-config %CONFIGURATION% - cmake -E chdir ../python/MaterialXTest python main.py + - cmake -E chdir ../python/MaterialXTest python genshader.py before_deploy: # Go to install directory and zip it up. Currently marked as pre-release - cd C:\Projects\MaterialX\build\installed - - 7z a -r C:\Projects\MaterialX\materialx-v1.36.2_shaderx-%VS_PLATFORM%-%CONFIGURATION%.zip . + - 7z a -r C:\Projects\MaterialX\materialx-v1.36.3_shaderx-%VS_PLATFORM%-%CONFIGURATION%.zip . artifacts: # Set artifact to be created zip. Currently marked as pre-release - - path: materialx-v1.36.2_shaderx-%VS_PLATFORM%-%CONFIGURATION%.zip - name: ShaderXPackage + - path: materialx-v1.36.3_shaderx-%VS_PLATFORM%-%CONFIGURATION%.zip + name: MaterialX_ADSK deploy: # Deploy on main working branch - - release: v1.36.2_shaderx - provider: GitHub - artifact: ShaderXPackage + - provider: GitHub prerelease: true on: VS_PLATFORM: Windows diff --git a/.gitignore b/.gitignore index be98659789..34b660af04 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ # Ignore directories build deploy + +# Ignore local editor settings +.vscode/settings.json diff --git a/.travis.yml b/.travis.yml index 4444007317..4e35a5d317 100644 --- a/.travis.yml +++ b/.travis.yml @@ -70,9 +70,10 @@ script: - cd build - cmake -DMATERIALX_BUILD_PYTHON=ON -DMATERIALX_PYTHON_VERSION=2 -DMATERIALX_INSTALL_PYTHON=OFF -DMATERIALX_WARNINGS_AS_ERRORS=ON -DCMAKE_BUILD_TYPE="${CONFIG}" ${CMAKE_EXTRA_ARGS} .. - cmake --build . --target install --config "${CONFIG}" -- -j4 - - ctest --output-on-failure --build-config "${CONFIG}" + - ctest -VV --output-on-failure --build-config "${CONFIG}" - export PYTHONPATH=$PYTHONPATH:$PWD/installed/python - cmake -E chdir ../python/MaterialXTest python main.py + - cmake -E chdir ../python/MaterialXTest python genshader.py before_deploy: # Go to install directory and zip up to create artifact diff --git a/CHANGELOG.md b/CHANGELOG.md index 40e6ff30fb..f5302c0263 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,26 @@ # Change Log -## [1.36.2] - Development +## [1.36.3] - Development + +Merged shader code generation and PBR node support from Autodesk's ShaderX extensions. + +### Added +- Added the MaterialXGenShader library, supporting shader code generation in GLSL and OSL. +- Added the PBR node library (libraries/pbrlib). +- Added a root-level 'resources' folder. +- Added support for the 'place2d' node. + +### Changed +- Moved the MaterialX data libraries from 'documents/Libraries' to 'libraries'. + +## [1.36.2] - 2019-03-05 ### Added - Added support for 'nodedef' attributes on MaterialX\:\:Node, integrating this usage into GraphElement\:\:addNodeInstance. - Added the MaterialX\:\:GeomPropDef class for geometric input declarations. - Added the Document\:\:getGeomAttrValue method. - Added the ValueElement\:\:getResolvedValue method. +- Added support for the MATERIALX_SEARCH_PATH environment variable. - Added support for GCC 8 and Clang 7. ### Changed diff --git a/CMakeLists.txt b/CMakeLists.txt index 96f5826d06..2cef2adfa0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,21 +17,6 @@ option(MATERIALX_BUILD_DOCS "Create HTML documentation using Doxygen. Requires t option(MATERIALX_PYTHON_LTO "Enable link-time optimizations for MaterialX Python." ON) option(MATERIALX_INSTALL_PYTHON "Install the MaterialX Python package as a third-party library when the install target is built." ON) option(MATERIALX_WARNINGS_AS_ERRORS "Interpret all compiler warnings as errors." OFF) -option(MATERIALX_BUILD_RENDER "Build the MaterialX Render module. " ON) -option(MATERIALX_TEST_RENDER "Run tests for MaterialX Render module. Requires a valid GPU setup for hardware dependent validation." OFF) -option(MATERIALX_BUILD_GEN_OSL "Build the OSL shader generator back-end." ON) -option(MATERIALX_BUILD_GEN_GLSL "Build the GLSL shader generator back-end." ON) -cmake_dependent_option(MATERIALX_BUILD_GEN_OGSFX "Build the OGSFX shader generator back-end." ON "MATERIALX_BUILD_GEN_GLSL" OFF) -option(MATERIALX_BUILD_CONTRIB "Build contribution folder." ON) - -set(MATERIALX_OSLC_EXECUTABLE "" CACHE FILEPATH - "Full path to the oslc binary.") -set(MATERIALX_TESTSHADE_EXECUTABLE "" CACHE FILEPATH - "Full path to the testshade binary.") -set(MATERIALX_TESTRENDER_EXECUTABLE "" CACHE FILEPATH - "Full path to the testrender binary.") -set(MATERIALX_OSL_INCLUDE_PATH "" CACHE PATH - "Full path to osl include paths. e.g. location of stdosl.h") set(MATERIALX_PYTHON_VERSION "" CACHE STRING "Python version to be used in building the MaterialX Python package (e.g. '2.7').") @@ -51,21 +36,56 @@ mark_as_advanced(MATERIALX_PYTHON_EXECUTABLE) mark_as_advanced(MATERIALX_PYTHON_OCIO_DIR) mark_as_advanced(MATERIALX_PYTHON_PYBIND11_DIR) +# Shader generation options +option(MATERIALX_BUILD_GEN_OGSFX "Build the OGSFX shader generator back-end." ON) +mark_as_advanced(MATERIALX_BUILD_GEN_OGSFX) +option(MATERIALX_BUILD_GEN_ARNOLD "Build the Arnold OSL shader generator back-end." ON) +mark_as_advanced(MATERIALX_BUILD_GEN_ARNOLD) + +# Shader render / validation options +option(MATERIALX_BUILD_RENDER "Build the MaterialX Render module." ON) mark_as_advanced(MATERIALX_BUILD_RENDER) +option(MATERIALX_BUILD_RENDEROSL "Build OSL shader generator validation." ON) +mark_as_advanced(MATERIALX_BUILD_RENDEROSL) +option(MATERIALX_BUILD_RENDERGLSL "Build GLSL shader generator validation." ON) +mark_as_advanced(MATERIALX_BUILD_RENDERGLSL) +option(MATERIALX_TEST_RENDER "Run tests for MaterialX Render module. GPU setup required for graphics validation." OFF) mark_as_advanced(MATERIALX_TEST_RENDER) +option(MATERIALX_BUILD_OIIO "Build OpenImageIO support for MaterialXRender. " OFF) +mark_as_advanced(MATERIALX_BUILD_OIIO) +set(MATERIALX_OIIO_DIR "" CACHE PATH "Path to the root folder of the OpenImageIO installation.") +mark_as_advanced(MATERIALX_OIIO_DIR) +option(MATERIALX_BUILD_CONTRIB "Build contribution folder." OFF) +mark_as_advanced(MATERIALX_BUILD_CONTRIB) +if (NOT MATERIALX_BUILD_RENDER) + set (MATERIALX_BUILD_RENDEROSL OFF) + set (MATERIALX_BUILD_RENDERGLSL OFF) + set (MATERIALX_BUILD_CONTRIB OFF) + set (MATERIALX_BUILD_OIIO OFF) +endif() + +# Helpers for OSL validation +set(MATERIALX_OSLC_EXECUTABLE "" CACHE FILEPATH "Full path to the oslc binary.") mark_as_advanced(MATERIALX_OSLC_EXECUTABLE) -mark_as_advanced(MATERIALX_TESTSHADE_EXECUTABLE) +set(MATERIALX_TESTRENDER_EXECUTABLE "" CACHE FILEPATH "Full path to the testrender binary.") mark_as_advanced(MATERIALX_TESTRENDER_EXECUTABLE) +set(MATERIALX_OSL_INCLUDE_PATH "" CACHE PATH "Full path to osl include paths. e.g. location of stdosl.h") mark_as_advanced(MATERIALX_OSL_INCLUDE_PATH) -mark_as_advanced(MATERIALX_BUILD_GEN_OSL) -mark_as_advanced(MATERIALX_BUILD_GEN_GLSL) -mark_as_advanced(MATERIALX_BUILD_GEN_OGSFX) -mark_as_advanced(MATERIALX_BUILD_CONTRIB) - -add_definitions(-DMATERIALX_OSLC_EXECUTABLE=\"${MATERIALX_OSLC_EXECUTABLE}\") -add_definitions(-DMATERIALX_TESTSHADE_EXECUTABLE=\"${MATERIALX_TESTSHADE_EXECUTABLE}\") -add_definitions(-DMATERIALX_TESTRENDER_EXECUTABLE=\"${MATERIALX_TESTRENDER_EXECUTABLE}\") -add_definitions(-DMATERIALX_OSL_INCLUDE_PATH=\"${MATERIALX_OSL_INCLUDE_PATH}\") +if (MATERIALX_OSLC_EXECUTABLE) + add_definitions(-DMATERIALX_OSLC_EXECUTABLE=\"${MATERIALX_OSLC_EXECUTABLE}\") +else() + set (MATERIALX_BUILD_RENDEROSL OFF) +endif() +iF (MATERIALX_TESTRENDER_EXECUTABLE) + add_definitions(-DMATERIALX_TESTRENDER_EXECUTABLE=\"${MATERIALX_TESTRENDER_EXECUTABLE}\") +else() + set (MATERIALX_BUILD_RENDEROSL OFF) +endif() +if (MATERIALX_OSL_INCLUDE_PATH) + add_definitions(-DMATERIALX_OSL_INCLUDE_PATH=\"${MATERIALX_OSL_INCLUDE_PATH}\") +else() + set (MATERIALX_BUILD_RENDEROSL OFF) +endif() # Adjust the default installation path if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) @@ -74,6 +94,9 @@ endif() # Adjust compiler settings if(MSVC) + # Enable multithreaded builds + add_compile_options(/MP) + if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else() @@ -117,39 +140,51 @@ endif() add_subdirectory(source/MaterialXCore) add_subdirectory(source/MaterialXFormat) add_subdirectory(source/MaterialXGenShader) +add_subdirectory(source/MaterialXGenOsl) +add_subdirectory(source/MaterialXGenGlsl) -if (MATERIALX_BUILD_GEN_OSL) - add_definitions(-DMATERIALX_BUILD_GEN_OSL) - add_subdirectory(source/MaterialXGenOsl) -endif(MATERIALX_BUILD_GEN_OSL) -if (MATERIALX_BUILD_GEN_GLSL) - add_definitions(-DMATERIALX_BUILD_GEN_GLSL) - add_subdirectory(source/MaterialXGenGlsl) -endif(MATERIALX_BUILD_GEN_GLSL) if (MATERIALX_BUILD_GEN_OGSFX) add_definitions(-DMATERIALX_BUILD_GEN_OGSFX) add_subdirectory(source/MaterialXGenOgsFx) -endif(MATERIALX_BUILD_GEN_OGSFX) +endif() +if (MATERIALX_BUILD_GEN_ARNOLD) + add_definitions(-DMATERIALX_BUILD_GEN_ARNOLD) + add_subdirectory(source/MaterialXGenArnold) +endif() if (MATERIALX_BUILD_RENDER) - if (MATERIALX_TEST_RENDER) - add_definitions(-DMATERIALX_TEST_RENDER) - endif(MATERIALX_TEST_RENDER) add_definitions(-DMATERIALX_BUILD_RENDER) + if (MATERIALX_BUILD_OIIO) + add_definitions(-DMATERIALX_BUILD_OIIO) + endif() add_subdirectory(source/MaterialXRender) + if (MATERIALX_BUILD_RENDEROSL) + add_subdirectory(source/MaterialXRenderOsl) + add_definitions(-DMATERIALX_BUILD_RENDEROSL) + endif() + if (MATERIALX_BUILD_RENDERGLSL) + add_subdirectory(source/MaterialXRenderHw) + add_subdirectory(source/MaterialXRenderGlsl) + add_definitions(-DMATERIALX_BUILD_RENDERGLSL) + endif() + if (MATERIALX_TEST_RENDER) + add_definitions(-DMATERIALX_TEST_RENDER) + endif() endif(MATERIALX_BUILD_RENDER) if (MATERIALX_BUILD_CONTRIB) add_definitions(-DMATERIALX_BUILD_CONTRIB) add_subdirectory(source/MaterialXContrib) -endif(MATERIALX_BUILD_CONTRIB) +endif() add_subdirectory(source/MaterialXTest) -add_subdirectory(documents) +add_subdirectory(libraries) +add_subdirectory(resources) if(MATERIALX_BUILD_PYTHON) add_subdirectory(source/PyMaterialX) add_subdirectory(python) -endif(MATERIALX_BUILD_PYTHON) - - +endif() +if(MATERIALX_BUILD_DOCS) + add_subdirectory(documents) +endif() diff --git a/README.md b/README.md index 8dab5121ae..af788a25aa 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,13 @@ The Python bindings for MaterialX are based on [PyBind11](https://github.com/pyb The MaterialX repository consists of the following folders: -- [documents](documents) - The MaterialX specification, developer guide, example and test suite files. - [source](source) - Cross-platform C++ libraries for MaterialX with Python bindings. - [python](python) - Support modules for MaterialX Python. +- [documents](documents) - MaterialX documentation, including its specification and developer guides. +- [libraries](libraries) - The standard data libraries for MaterialX, including the definitions of its pattern and shader nodes. +- [resources](resources) - Resources for rendering MaterialX content, including example materials, images, and geometry. -### Usage +## Usage Use of this code is subject to the terms of the Autodesk license agreement provided at the time of installation or download, or which otherwise accompanies this software in either electronic or hard copy form. diff --git a/documents/CMakeLists.txt b/documents/CMakeLists.txt index 0ea6c2a000..b9b189a437 100644 --- a/documents/CMakeLists.txt +++ b/documents/CMakeLists.txt @@ -1,29 +1,35 @@ -install(DIRECTORY ${CMAKE_SOURCE_DIR}/documents/Libraries/ - DESTINATION "${CMAKE_INSTALL_PREFIX}/documents/Libraries") +set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(DOXYGEN_HTML_OUTPUT_DIR ${DOXYGEN_OUTPUT_DIR}/MaterialXDocs) +set(DOXYGEN_INPUT_LIST ${CMAKE_SOURCE_DIR}/documents/DeveloperGuide + ${CMAKE_SOURCE_DIR}/source/MaterialXCore + ${CMAKE_SOURCE_DIR}/source/MaterialXFormat + ${CMAKE_SOURCE_DIR}/source/MaterialXGenShader + ${CMAKE_SOURCE_DIR}/source/MaterialXGenShader/Nodes + ${CMAKE_SOURCE_DIR}/source/MaterialXGenGlsl + ${CMAKE_SOURCE_DIR}/source/MaterialXGenGlsl/Nodes + ${CMAKE_SOURCE_DIR}/source/MaterialXGenOsl + ${CMAKE_SOURCE_DIR}/source/MaterialXGenOgsFx + ${CMAKE_SOURCE_DIR}/source/MaterialXGenOsl + ${CMAKE_SOURCE_DIR}/source/MaterialXGenArnold + ${CMAKE_SOURCE_DIR}/source/MaterialXRender + ${CMAKE_SOURCE_DIR}/source/MaterialXRender/Handlers + ${CMAKE_SOURCE_DIR}/source/MaterialXRender/ShaderValidators + ${CMAKE_SOURCE_DIR}/source/MaterialXRenderHw + ${CMAKE_SOURCE_DIR}/source/MaterialXRenderGlsl + ${CMAKE_SOURCE_DIR}/source/MaterialXRenderOsl + ) +string (REPLACE ";" " " DOXYGEN_INPUT_STR "${DOXYGEN_INPUT_LIST}") -if(MATERIALX_BUILD_DOCS) - set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) - set(DOXYGEN_HTML_OUTPUT_DIR ${DOXYGEN_OUTPUT_DIR}/MaterialXDocs) - set(DOXYGEN_INPUT_LIST ${CMAKE_SOURCE_DIR}/documents/DeveloperGuide - ${CMAKE_SOURCE_DIR}/source/MaterialXCore - ${CMAKE_SOURCE_DIR}/source/MaterialXFormat - ${CMAKE_SOURCE_DIR}/source/MaterialXGenShader - ${CMAKE_SOURCE_DIR}/source/MaterialXGenGlsl - ${CMAKE_SOURCE_DIR}/source/MaterialXGenOgsFx - ${CMAKE_SOURCE_DIR}/source/MaterialXGenOsl) - string (REPLACE ";" " " DOXYGEN_INPUT_STR "${DOXYGEN_INPUT_LIST}") +find_package(Doxygen) - find_package(Doxygen) - - if(DOXYGEN_FOUND) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) - add_custom_target(MaterialXDocs ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating HTML documentation: ${DOXYGEN_HTML_OUTPUT_DIR}/index.html") - add_custom_command(TARGET MaterialXDocs PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_SOURCE_DIR}/documents/Images ${CMAKE_CURRENT_BINARY_DIR}) - install(DIRECTORY ${DOXYGEN_HTML_OUTPUT_DIR} - DESTINATION "${CMAKE_INSTALL_PREFIX}/documents" MESSAGE_NEVER) - endif(DOXYGEN_FOUND) -endif(MATERIALX_BUILD_DOCS) +if(DOXYGEN_FOUND) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) + add_custom_target(MaterialXDocs ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating HTML documentation: ${DOXYGEN_HTML_OUTPUT_DIR}/index.html") + add_custom_command(TARGET MaterialXDocs PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/resources/Images ${CMAKE_CURRENT_BINARY_DIR}) + install(DIRECTORY ${DOXYGEN_HTML_OUTPUT_DIR} + DESTINATION "${CMAKE_INSTALL_PREFIX}/documents" MESSAGE_NEVER) +endif(DOXYGEN_FOUND) diff --git a/documents/DeveloperGuide/ShaderGeneration.md b/documents/DeveloperGuide/ShaderGeneration.md index 130c5cffaf..65384dae59 100644 --- a/documents/DeveloperGuide/ShaderGeneration.md +++ b/documents/DeveloperGuide/ShaderGeneration.md @@ -1,48 +1,32 @@ # Shader Generation ## 1.1 Scope -The shader generation features of ShaderX are implemented as an extension to MaterialX. Most -features are contained in a the [MaterialXGenShader](/source/MaterialXGenShader) shared library, but some features are part of the [MaterialXCore](/source/MaterialXCore) library as well. +A shader generation framework is implemented as part of MaterialX. This can help applications to transform the agnostic MaterialX data description into executable shader code for a specific renderer. A library module named MaterialXGenShader contains the core shader generation features, and support for specific languages resides in separate libraries, e.g. [MaterialXGenGlsl](/source/MaterialXGenGlsl), [MaterialXGenOsl](/source/MaterialXGenOsl). -Note that ShaderX has no runtime and the output produced is source code, not binary executable -code. The source code produced needs to be compiled by a shading language compiler before being -executed by the renderer. See Figure 1 for a high level overview of the system. +Note that this system has no runtime and the output produced is source code, not binary executable code. The source code produced needs to be compiled by a shading language compiler before being executed by the renderer. See Figure 1 for a high level overview of the system. -![ShaderX with multiple shader generators](../Images/shaderx.png) +![Shader generation with multiple shader generators](../../resources/Images/shadergen.png) -**Figure 1**: ShaderX with multiple shader generators +**Figure 1**: Shader generation with multiple shader generators. ## 1.2 Languages and Shader Generators -The ShaderX description is free from device specific details and all implementation details needs to be taken care of by the shader generators. There is one shader generator for each supported shading language. However for each language there can also be variations needed for different renderers. +The MaterialX description is free from device specific details and all implementation details needs to be taken care of by shader generators. There is one shader generator for each supported shading language. However for each language there can also be variations needed for different renderers. For example; OpenGL renderers supporting GLSL can use forward rendering or deferred rendering, each with very different requirements for how the shaders are constructed. Another example is different renderers supporting OSL but with different sets of closures or closure parameters. Hence a separate shader generator can be defined for each language/target combination. -For example: `OpenGL` renderers supporting `GLSL` can use forward rendering or deferred rendering, -each with very different requirements for how the shaders are constructed. Another example is -different renderers supporting OSL but with different sets of closures or closure parameters. Hence a separate shader generator can be defined for each language/target combination. +Class inheritance and specialization is used to create support for new languages or to customize existing language support for a new target. To add a new shader generator for a target you add a new C++ class derived from the base class `ShaderGenerator`, or one of the existing derived shader generator classes (`GlslShaderGenerator`, `OslShaderGenerator`, etc.), and override the methods you need to customize. You might also need to derive a new `Syntax` class, which is used to handle syntactical differences between different shading languages. Then you need to make sure there are implementations defined for all the nodes you want to support, standard library nodes and nodes from other libraries, by either reusing existing implementations where applicable or adding in new ones. See [1.3](#1.3 Node Implementations) on how that is done. -To add a new shader generator for a target you add a new C++ class derived from the base class -`ShaderGenerator`, or one of the existing derived shader generator classes (`HwShaderGenerator`, -`GlslShaderGenerator`, `OslShaderGenerator`, etc.), and override the methods you need to customize. You might also need to derive a new `Syntax` class, which is used to handle syntactical -differences between different shading languages. Then you need to make sure there are implementations defined for all the nodes you want to support, standard library nodes and nodes from other libraries, by either reusing existing implementations where applicable or adding in new ones. - -See [1.3](1.3 Node Implementations) on how that is done. - -Note that a shader generator doesn’t need to be defined at the time when node definitions are -added. New shader generators can be added later, and node implementations for new targets can -be added for existing nodes. +Note that a shader generator doesn’t need to be defined at the time when node definitions are added. New shader generators can be added later, and node implementations for new targets can be added for existing nodes. ## 1.3 Node Implementations -There are four different methods to define the implementation of a node in ShaderX: -- Using an inline expression. -- Using a function written in the target language. -- Using a nodegraph that defines the operation performed by the node. -- Using a C++ class that emits code dynamically during shader generation. +There are four different methods to define the implementation of a node: +1. Using an inline expression. +2. Using a function written in the target language. +3. Using a nodegraph that defines the operation performed by the node. +4. Using a C++ class that emits code dynamically during shader generation. -For all methods the implementation is tied to a specific `nodedef` with a well defined interface of typed inputs and outputs. In the following sub-sections each of these methods are explained. +In the following sub-sections each of these methods are explained. For all methods the implementation is tied to a specific `nodedef` with a well defined interface of typed inputs and outputs. ### 1.3.1 Inline Expression -ShaderX’s code generators support a very simple expression language for inlining code. This is -useful for simple nodes where the operation can be expressed as a single line of code. Inlining will reduce the number of function calls and produce more compact code. The syntax to use is the -same as the target shading language, with the addition of using the node’s input ports as variables wrapped in double curly brackets: `{{input}}`. The code generator will replace these variables with values assigned or connected to the respective inputs. Figure 2 gives an example. +Provided code generators support a very simple expression language for inlining code. This is useful for simple nodes where the operation can be expressed as a single line of code. Inlining will reduce the number of function calls and produce more compact code. The syntax to use is the same as the target shading language, with the addition of using the node’s input ports as variables wrapped in double curly brackets: `{{input}}`. The code generator will replace these variables with values assigned or connected to the respective inputs. Figure 2 gives an example. Connecting the expression to the nodedef is done using an `` element as seen in Figure 2. The file extension is used to differentiate inline expressions from source code functions, using `filename.inline`. @@ -76,17 +60,24 @@ Figure 2. The file extension is used to differentiate inline expressions from so <... more types ...> -``` -```xml + // Implementation elements for node <... more types ...> ``` +```c++ +// File 'mx_add.inline' contains: +{{in1}} + {{in2}} + +// File 'mx_mix.inline' contains: +mix({{bg}}, {{fg}}, {{mix}}) +``` + **Figure 2**: Inline expressions for implementing nodes `` and ``. ### 1.3.2 Shading Language Function -For nodes that can’t be implemented by inline expressions a function definition can be used instead. The function signature should match the nodedefs interface with inputs and outputs. See Figure 3 for an example. Connecting the source code to the nodedef is done using an element, see [1] for more information. +For nodes that can’t be implemented by inline expressions a function definition can be used instead. The function signature should match the nodedefs interface with inputs and outputs. See Figure 3 for an example. Connecting the source code to the nodedef is done using an `` element, see the [MaterialX specification](../Specification/MaterialX.v1.36.Spec.pdf) for more information. ```xml // Nodedef element @@ -115,23 +106,20 @@ void mx_image_color3(string file, string layer, color defaultvalue, string framerange, int frameoffset, string frameendaction, output color out) { - // Sample the texture - out = texture(file, texcoord.x, texcoord.y, - "interp", filtertype, - "subimage", layer, - "missingcolor", defaultvalue, - "wrap", uaddressmode); + // Sample the texture + out = texture(file, texcoord.x, texcoord.y, + "interp", filtertype, + "subimage", layer, + "missingcolor", defaultvalue, + "wrap", uaddressmode); } ``` -**Figure 3**: Shading language functions implementation for node `` in OSL. +**Figure 3**: Shading language function's implementation for node `` in OSL. -### 1.3.3 Implementation by Node Graph -As an alternative to define source code, there is also an option to reference a nodegraph as the -implementation of a nodedef. The only requirement is that the nodegraph and nodedef have -matching inputs and outputs. +### 1.3.3 Node Graph Implementation +As an alternative to defining source code, there is also an option to reference a nodegraph as the implementation of a nodedef. The only requirement is that the nodegraph and nodedef have matching inputs and outputs. -This is useful for creating a compound for a set of nodes performing some common operation. It -can then be referenced as a node inside other nodegraphs. It is also useful for creating compatibility graphs for unknown nodes. If a node is created by some third party, and its implementation is unknown or proprietary, a compatibility graph can be created using known nodes and be referenced as a stand-in implementation. Linking a nodegraph to a nodedef is done by simply setting a nodedef attribute on the nodegraph definition. See Figure 4 for an example. +This is useful for creating a compound for a set of nodes performing some common operation. It can then be referenced as a node inside other nodegraphs. It is also useful for creating compatibility graphs for unknown nodes. If a node is created by some third party, and its implementation is unknown or proprietary, a compatibility graph can be created using known nodes and be referenced as a stand-in implementation. Linking a nodegraph to a nodedef is done by simply setting a nodedef attribute on the nodegraph definition. See Figure 4 for an example. ```xml @@ -170,273 +158,180 @@ can then be referenced as a node inside other nodegraphs. It is also useful for ``` -**Figure 4**: Implementation using a nodegraph. +**Figure 4**: Checker node implementation using a nodegraph. ### 1.3.4 Dynamic Code Generation -In some situations static source code is not enough to implement a node. The code might need -to be customized depending on parameters set on the node. Or for a HW render target vertex -streams or uniform inputs might need to be created in order to supply the data needed for the -node implementation. - -In this case a C++ class can be added to ShaderX to handle the implementation of the node. The -class should be derived from the base class `SgImplementation`. It should specify what language -and target it is for by overriding `getLanguage()` and `getTarget()`. It can also be specified to -support all languages or all targets by setting the identifier to an empty string, as done for the -target identifier in the example below. It then needs to be registered for a `ShaderGenerator` by -calling `ShaderGenerator::registerImplementation()`. See Figure 5 for an example. -When an `SgImplementation` class is used for a nodedef the corresponding `` -element don’t need a file attribute, since no static source code is used. The `` -element will then act only as a declaration that there exists an implementation for the nodedef for a particular language and target. - -Note that the use of `SgImplementation` classes for dynamic code generation goes against our -design goal of being data driven. An application needs to be recompiled after adding a new node -implementation class. However this usage is only needed in special cases. And in these cases -the code produced can be made much more efficient by allowing this dynamic generation. As -a result we choose to support this method of code generation, but it should only be used when -inline expressions or static source code functions are not enough to handle the implementation of -a node. +In some situations static source code is not enough to implement a node. The code might need to be customized depending on parameters set on the node. Or for a hardware render target vertex streams or uniform inputs might need to be created in order to supply the data needed for the node implementation. + +In this case, a C++ class can be added to handle the implementation of the node. The class should be derived from the base class `ShaderNodeImpl`. It should specify what language and target it is for by overriding `getLanguage()` and `getTarget()`. It can also be specified to support all languages or all targets by setting the identifier to an empty string, as done for the target identifier in the example below. It then needs to be registered for a `ShaderGenerator` by calling `ShaderGenerator::registerImplementation()`. See Figure 5 for an example. + +When a `ShaderNodeImpl` class is used for a nodedef the corresponding `` +element doesn’t need a file attribute, since no static source code is used. The `` element will then act only as a declaration that there exists an implementation for the nodedef for a particular language and target. + +Note that by using a `ShaderNodeImpl` class for your node's implementation it is no longer data driven, as in the other three methods above. So it's recommneded to use this only when inline expressions or static source code functions are not enough to handle the implementation of a node. ```c++ /// Implementation of ’foo' node for OSL -class FooOsl : public SgImplementation +class FooOsl : public ShaderNodeImpl { -public: - static SgImplementationPtr create() { return std::make_shared(); } - - const string& getLanguage() const override { return LANGUAGE_OSL; } - const string& getTarget() const override { return EMPTY_STRING; } - - void emitFunctionDefinition(const SgNode& node, ShaderGenerator& sg, - Shader& shader) override - { - // Emit function definition if needed for the node - } - - void emitFunctionCall(const SgNode& node, const SgNodeContext& context, - ShaderGenerator& sg, Shader& shader) override - { - // Emit function call, or inline shader code, for the node - } + public: + static ShaderNodeImplPtr create() { return std::make_shared(); } + + const string& getLanguage() const override { return LANGUAGE_OSL; } + const string& getTarget() const override { return EMPTY_STRING; } + + void emitFunctionDefinition(const ShaderNode& node, GenContext& context, + ShaderStage& stage) const override + { + // Emit function definition if needed for the node + } + + void emitFunctionCall(const ShaderNode& node, GenContext& context, + ShaderStage& stage) const override + { + // Emit function call, or inline shader code, for the node + } }; ``` ```c++ -OslShaderGenerator::OslShaderGenerator() - : ShaderGenerator(std::make_shared()) +OslShaderGenerator::OslShaderGenerator() : + ShaderGenerator(std::make_shared()) { - ... - // Register foo implementation for nodedefs it should be used for - registerImplementation("IM_foo_color2_osl", FooOsl::create); - registerImplementation("IM_foo_color3_osl", FooOsl::create); - registerImplementation("IM_foo_color4_osl", FooOsl::create); - ... + ... + // Register foo implementation for nodedefs it should be used for + registerImplementation("IM_foo_color2_osl", FooOsl::create); + registerImplementation("IM_foo_color3_osl", FooOsl::create); + registerImplementation("IM_foo_color4_osl", FooOsl::create); + ... } ``` **Figure 5**: C++ class for dynamic code generation. ## 1.4 Shader Generation Steps -This section outlines the steps taken in general to produce a shader from the MaterialX description. The `ShaderGenerator` base class and its support classes will handle this for you, but it’s good to -know the steps involved in case more custom changes are needed to support a new target. +This section outlines the steps taken in general to produce a shader from the MaterialX description. The `ShaderGenerator` base class and its supporting classes will handle this for you, but it’s good to know the steps involved if custom changes are needed to support a new target. -ShaderX supports generating a shader starting from either a graph output port, an arbitrary node -inside a graph, or a shaderref in a material. A shader is generated by calling your shader generator -class with an element of either of these types as input. The given element and all dependencies -upstream will be translated into a single monolithic shader in the target shading langage. +Shader generation supports generating a shader starting from either an `output` element or a `shaderref` element in a material. The `output` can be an output port on a nodegraph or an output element inserted anywhere in a node network. A shader is generated by calling your shader generator class with either of these element types as input. The given element and all dependencies upstream will be translated into a single monolithic shader in the target shading language. ```c++ // Generate a shader starting from the given element, translating // the element and all dependencies upstream into shader code. -ShaderPtr ShaderGenerator::generate(const string& shaderName, +ShaderPtr ShaderGenerator::generate(const string& name, ElementPtr element, - const SgOptions& options) + GenContext& context) ``` -The shader generation process can be divided into initialization and code generation. The initial- -ization is handled by the `Shader` class, and consists of a number of steps: - -1. Create an optimized version of the graph as a tree with the given element as root, and with only the used dependencies connected upstream. This involves removing unused paths in -the graph, converting constant nodes to constant values, and adding in any default nodes -for ports that are unconnected but has default connections specified. Removal of unused -paths typically involves constant folding and pruning of conditional branches that never will -be taken. Since the resulting shader in the end will be compiled by a shading language -compiler, and receive a lot of additional optimizations, we don’t need to do too much work -in this optimization step. However a few graph level optimizations can make the resulting -shader a lot smaller and save time and memory during shader compilation. It will also -produce more readable source code which is good for debugging purposes. - - This step is also a good place to do other custom optimizations needed by a particular target. -For example simplification of the graph, which could involve substituting expensive nodes -with approximate nodes, identification of common subgraphs that can be merged, etc. - -2. Track which graph interface ports are being used. It’s done by finding which graph interface -ports have connections to nodes inside the graph. This is useful in later steps to be able to -ignore interface ports that are not used. - -3. The nodes are sorted in topological order. Since a node can be referenced by many other -nodes in the graph we need an ordering of the nodes so that nodes that has a dependency -on other nodes comes after all nodes it depends on. This step also makes sure there are no -cyclic dependencies in the graph. - -4. The shader signature; its interface of uniforms and varyings are established. This consists of -the graph interface ports that are in use, as well as internal ports that has been published -to the interface (an example of the latter is for a HW shader generator where image texture -filenames gets converted to texture samplers which needs to be published in order to be -bound by the target application). This information is stored on the Shader class, and can -be retrieved from it, together with the emitted source code when generation is completed. - -5. Information about scope is tracked for each node. This information is needed to handle -branching by conditional nodes. For example, if a node is used only by a particular branch -on a varying conditional we want to calculate this node only inside that scope, when that -corresponding branch is taken. A node can be used in global scope, in a single conditional -scope or by multiple conditional scopes. - - -The output from the initialization step is a new graph representation constructed using the classes -`SgNode`, `SgInput`, `SgOutput`, `SgNodeGraph`, etc. This is a graph representation optimized for -shader generation with quick access and traversal of nodes and ports, as well as caching of extra -information needed by shader generation. - -After initialization the code generation steps are handled by the `ShaderGenerator` class and derived classes. This part is specific for the particular generator being used, but in general it consists of the following steps: +The shader generation process can be divided into initialization and code generation. The initialization consists of a number of steps: + + 1. Create an optimized version of the graph as a tree with the given input element as root, and with only the used dependencies connected upstream. This involves removing unused paths in the graph, converting constant nodes to constant values, and adding in any default nodes for ports that are unconnected but have default connections specified. Removal of unused paths typically involves constant folding and pruning of conditional branches that will never be taken. Since the resulting shader in the end will be compiled by a shading language compiler, and receive a lot of additional optimizations, we don’t need to do too much work in this optimization step. However, a few graph level optimizations can make the resulting shader a lot smaller and save time and memory during shader compilation. It will also produce more readable source code which is good for debugging purposes. This optimization step is also a good place to do other custom optimizations needed by a particular target. For example simplification of the graph, which could involve substituting expensive nodes with approximate nodes, identification of common subgraphs that can be merged, etc. + + 2. The nodes are sorted in topological order. Since a node can be referenced by many other nodes in the graph we need an ordering of the nodes so that nodes that have a dependency on other nodes come after all dependent nodes. This step also makes sure there are no cyclic dependencies in the graph. + + 3. The stages for the shader are created. For a HW shader this is normally a vertex stage and a pixel stage, but other stages can be added as needed. At the minumum a single pixel stage is required, so even shaders that has no concept of multiple stages, like OSL, needs to have a single pixel stage created. + + 4. The shader stages interface of uniforms and varyings are established. This consists of the graph interface ports that are in use, as well as internal ports that have been published to the interface (an example of the latter is for a hardware shader generator where image texture filenames get converted to texture samplers which needs to be published in order to be bound by the target application). Each node in the graph is also called for a chance to create any uniforms or varyings needed by its implementation. + + 5. Information about scope is tracked for each node. This information is needed to handle branching by conditional nodes. For example, if a node is used only by a particular branch on a varying conditional we want to calculate this node only inside that scope, when that corresponding branch is taken. A node can be used in global scope, in a single conditional scope or by multiple conditional scopes. + +The output from the initialization step is a new graph representation constructed using the classes `ShaderNode`, `ShaderInput`, `ShaderOutput`, `ShaderGraph`, etc. This is a graph representation optimized for shader generation with quick access and traversal of nodes and ports, as well as caching of extra information needed by shader generation. + +After initialization the code generation steps are handled by the `ShaderGenerator` class and derived classes. This part is specific to the particular generator being used, but in general it consists of the following steps: 1. Typedefs are emitted as specified by the Syntax class. -2. Function definitions are emitted for all the atomic nodes that has shading language functions -for their implementations. For nodes using dynamic code generation their `SgImplementation` -instances are called to generate the functions. For nodes that are implemented by graphs a -function definition representing the graph computation is emitted. -3. The shader signature is emitted with all uniforms set to default values. The shader uniforms -can later be accessed on the returned `Shader` instance in order for applications to be able to -bind values to them. + +2. Function definitions are emitted for all the atomic nodes that have shading language functions for their implementations. For nodes using dynamic code generation their `ShaderNodeImpl` instances are called to generate the functions. For nodes that are implemented by graphs a function definition representing the graph computation is emitted. + +3. The shader signature is emitted with all uniforms set to default values. The shader uniforms can later be accessed on the returned `Shader` instance in order for applications to be able to bind values to them. + 4. The function calls for all nodes are emitted, in the right dependency order, propagating output results from upstream nodes as inputs to downstream nodes. Inline expressions are emitted instead of functions calls for nodes that use this. + 5. The final shader output is produced and assigned to the shader output variable. -Note that if a single monolithic shader for the whole graph is not appropriate for your system the -generator can be called on elements at any point in your graph, and generate code for sub-parts. -It is then up to the application to decide where to split the graph, and to assemble the shader code for sub-parts after all have been generated. - -## 1.5 Bindings and Shading Context - -There are a number of ways to bind values to input ports on nodes and graphs. A port can be -assigned a constant default value or be connected to other nodes. If a port is connected it will -read the value from the upstream node. Ports can also be set to have a default node connected -if the user has not made a specific connection to it. This is for example used for input ports -that expect to receive geometric data from the current shading context, like normal or texture -coordinates. If no such connection is made explicitly a default geometric node is connected to -supply the data. - -Geometric data from the current shading context is supplied using MaterialX’s geometric nodes. -There are a number of predefined geometric nodes in the MaterialX standard library to supply -shading context data like position, normal, tangents, texture coordinates, vertex colors, etc. The -vectors can be returned in different coordinate spaces: model, object or world space. If the data -available from the standard geometric nodes are not enough the general purpose primvar node -`geomattr` can be used to access any named data on geometry using a string identifier. It is up to -the shader generator and node implementation of these geometric nodes to make sure the data is -supplied, and where applicable transformed to the requested coordinate space. - -## 1.6 Shader Stages - -The Shader base class supports multiple shader stages. This is needed in order to generate separate -code for multiple stages on HW render targets. By default the base class has only a single stage, -called the pixel stage. But there is another sub-class `HwShader` that adds an additional stage, the -vertex stage. If more stages are needed you can sub-class and extend on this. -When creating shader input variables you can specify which stage the variable should be used in, -see 1.7 for more information on shader variable creation. - -Node implementations using static source code (function or inline expressions) are always emitted -to the pixel stage. Controlling the vertex stage, or other stages, is not supported using static source -code. In order to do that you must use dynamic code generation with a custom `SgImplementation` -sub-class for your node. You are then able to control how it affects all stages separately. Inside -`emitFunctionDefinition` and `emitFunctionCall` you can add separate sections for each stage -using begin/end shader stage macros. Figure 6 shows how the texcoord node for GLSL is emitting -different code into the vertex and pixel stages. - -## 1.7 Shader Variables -When generating a shader from a node graph or shaderref the inputs and parameters on those -elements will be published as shader uniforms on the resulting shader. A listing of the created uniforms can be red from the produced Shader instance. The shader uniforms can then be presented -to the user have their values set by the application. - -Adding new uniforms to a shader is done by first creating a uniform block and then adding -uniforms into the block. There are two predefined uniform blocks that can be used directly, one -named `PublicUniforms` and another named `PrivateUniforms`. Public is used for uniforms to -be published to the user, as described above, and private is used for uniforms needed by node -implementations but set by the application and not published. All uniform blocks can be queried -and accessed by the application from the `Shader` instance after generation. +Note that if a single monolithic shader for the whole graph is not appropriate for your system the generator can be called on `output` elements at any point in your graph, and generate code for sub-parts. It is then up to the application to decide where to split the graph, and to assemble the shader code for sub-parts after all have been generated. + +## 1.5 Shader Stages + +Creation of multiple shader stages is supported. This is needed in order to generate separate code for multiple stages on hardware render targets. A `pixel` stage must always be created by all targets, even for shading languages like OSL that natively doensn't have a concept of stages. The stage is where the generated shader code is stored as well as all uniforms, inputs and outputs for the shader. This is handled by the `ShaderStage` class, and the data can be retrieved from it when generation is completed. + +One or more `ShaderStage` instances are created and stored on the `Shader` class. In addition to the `pixel` stage, hardware generators always specify a `vertex` stage. If additional stages are needed they can be added as well. When creating shader input variables you specify which stage the variable should be used in, see 1.7 for more information on shader variable creation. + +Node implementations using static source code (function or inline expressions) are always emitted to the `pixel` stage. Controlling the `vertex` stage, or other stages, is not supported using static source code. In order to do that you must use dynamic code generation with a custom `ShaderNodeImpl` sub-class for your node. You are then able to control how it affects all stages separately. Inside `emitFunctionDefinition` and `emitFunctionCall` you can add separate sections for each stage using begin/end shader stage macros. Figure 6 shows how the texcoord node for GLSL is emitting different code into the `vertex` and `pixel` stages. + +## 1.6 Shader Variables +When generating a shader from a node graph or shaderref the inputs and parameters on those elements will be published as shader uniforms on the resulting shader. A listing of the created uniforms can be read from the produced `Shader` and `ShaderStage` instances. The shader uniforms can then be presented to the user and have their values set by the application. + +### 1.6.1 Variable Creation +Adding new uniforms, input and outputs to a shader stage is done by first creating a `VariableBlock` to store them. There are some predefined identifiers for commonly used variable blocks. For uniforms there are e.g. one named `HW::PUBLIC_UNIFORMS` and another named `HW::PRIVATE_UNIFORMS`. Public is used for uniforms to be published to the user, as described above, and private is used for uniforms needed by node implementations but set by the application and not published. For hardware targets there are also specific variable blocks called `connector blocks` which are used to send data from one stage to another, connecting the stages. A connector block named `HW::VERTEX_DATA` is used for sending data from the `vertex` stage to the `pixel` stage. Variable block creation and handling can be customized as needed by each shader generator target. + +All variable blocks can be queried and accessed by the application from the `ShaderStage` instances after generation. + +Figure 6 shows how creation of shader inputs and connector variables are done for a node implementation that requires this. ```c++ // Implementation of 'texcoord' node for GLSL -class TexCoordGlsl : public SgImplementation +class TexCoordGlsl : public ShaderNodeImpl { -public: - static SgImplementationPtr create() { return std::make_shared(); } - - void createVariables(const SgNode& node, ShaderGenerator& sg, Shader& s) override - { - HwShader& shader = static_cast(s); - - const SgOutput* output = node.getOutput(); - const SgInput* indexInput = node.getInput(INDEX); - const string index = indexInput ? indexInput->value->getValueString() : "0"; - - shader.createAppData(output->type, "i_texcoord_" + index); - shader.createVertexData(output->type, "texcoord_" + index); - } - - void emitFunctionCall(const SgNode& node, ShaderGenerator& sg, Shader& s) override - { - HwShader& shader = static_cast(s); - - const string& blockInstance = shader.getVertexDataBlock().instance; - const string blockPrefix = blockInstance + "."; - - const SgInput* indexInput = node.getInput(INDEX); - const string index = indexInput ? indexInput->value->getValueString() : "0"; - const string variable = "texcoord_" + index; - - // For the vertex stage set texcoords from the requested uv-set - BEGIN_SHADER_STAGE(shader, HwShader::VERTEX_STAGE) - if (!shader.isCalculated(variable)) - { - shader.addLine(blockPrefix + variable + " = i_" + variable); - shader.setCalculated(variable); - } - END_SHADER_STAGE(shader, HwShader::VERTEX_STAGE) - - // For the pixel stage return the texcoords set in the vertex stage - BEGIN_SHADER_STAGE(shader, HwShader::PIXEL_STAGE) - shader.beginLine(); - sg.emitOutput(node.getOutput(), true, shader); - shader.addStr(" = " + blockPrefix + variable); - shader.endLine(); - END_SHADER_STAGE(shader, HwShader::PIXEL_STAGE) - } + public: + static ShaderNodeImplPtr create() + { + return std::make_shared(); + } + + void TexCoordNodeGlsl::createVariables(const ShaderNode& node, GenContext&, + Shader& shader) const + { + const ShaderOutput* output = node.getOutput(); + const ShaderInput* indexInput = node.getInput(INDEX); + const string index = indexInput ? indexInput->getValue()->getValueString() : "0"; + + ShaderStage& vs = shader.getStage(Stage::VERTEX); + ShaderStage& ps = shader.getStage(Stage::PIXEL); + + addStageInput(HW::VERTEX_INPUTS, output->getType(), "i_texcoord_" + index, vs); + addStageConnector(HW::VERTEX_DATA, output->getType(), "texcoord_" + index, vs, ps); + } + + void TexCoordNodeGlsl::emitFunctionCall(const ShaderNode& node, + GenContext& context, + ShaderStage& stage) const + { + const ShaderGenerator& shadergen = context.getShaderGenerator(); + + const ShaderInput* indexInput = node.getInput(INDEX); + const string index = indexInput ? indexInput->getValue()->getValueString() : "0"; + const string variable = "texcoord_" + index; + + BEGIN_SHADER_STAGE(stage, Stage::VERTEX) + VariableBlock& vertexData = stage.getOutputBlock(HW::VERTEX_DATA); + const string prefix = vertexData.getInstance() + "."; + ShaderPort* texcoord = vertexData[variable]; + if (!texcoord->isEmitted()) + { + shadergen.emitLine(prefix + texcoord->getVariable() + " = i_" + variable, stage); + texcoord->setEmitted(); + } + END_SHADER_STAGE(shader, Stage::VERTEX) + + BEGIN_SHADER_STAGE(stage, Stage::PIXEL) + VariableBlock& vertexData = stage.getInputBlock(HW::VERTEX_DATA); + const string prefix = vertexData.getInstance() + "."; + ShaderPort* texcoord = vertexData[variable]; + shadergen.emitLineBegin(stage); + shadergen.emitOutput(node.getOutput(), true, false, context, stage); + shadergen.emitString(" = " + prefix + texcoord->getVariable(), stage); + shadergen.emitLineEnd(stage); + END_SHADER_STAGE(shader, Stage::PIXEL) + } }; ``` -**Figure 6**: Implementation of node `texcoord` in GLSL. Using an `SgImplementation` sub-class in order to control shader variable creation and code generation into separate shader stages. - -For inputs representing geometric data streams a separate variable block is used. In ShaderX -these variables are named application data inputs (in a HW shading language they are often -named varying inputs or attributes). The `Shader` class has a method for creating such variables, -in a block named `AppData`. This is also accessible from the `Shader` instance after generation. -In order to pass data between shader stages in a hardware shader additional variable blocks are -needed. For this purpose the `HwShader` class (derived from `Shader`) contains a variable block named `VertexData`. It is used for transporting data from the vertex stage to the pixel stage. The -HwShader class has methods for creating such vertex data variables. +**Figure 6**: Implementation of node `texcoord` in GLSL. Using a `ShaderNodeImpl` sub-class in order to control shader variable creation and code generation into separate shader stages. -Creating shader variables and binding values to them needs to be done in agreement with the -shader generator side and application side. The application must know what a variable is for in -order to bind meaningful data to it. One way of handling this is by using semantics. All shader -variables created in ShaderX can be assigned a semantic if that is used by the target application. -ShaderX does not impose a specific set of semantics to use, so for languages and applications that -use this any semantics can be used. For languages that does not use semantics a variable naming -convention needs to be used instead. +### 1.6.2 Variable Naming Convention -Figure 6 shows how creation of shader inputs and vertex data variables are done for a node -implementation that needs this. +Creating shader variables and binding values to them needs to be done in agreement with the shader generator side and application side. The application must know what a variable is for in order to bind meaningful data to it. One way of handling this is by using semantics. All shader variables created can be assigned a semantic if that is used by the target application. Shader generation does not impose a specific set of semantics to use, so for languages and applications that use this any semantics can be used. For languages that do not use semantics a variable naming convention needs to be used instead. -### 1.7.1 Variable Naming Convention - -ShaderX’s built-in shader generators and accompanying node implementations are using a naming convention for its shader variables. A custom shader generator that derives from and takes -advantage of built-in features should preferably use the same convention. -Uniform variables are prefixed with `u_` and application data inputs with `i_` . For languages not using semantics. Figure 7 shows the naming used for variables (inputs and uniforms) with predefined binding rules: +Built-in shader generators and accompanying node implementations have a naming convention for shader variables. A custom shader generator that derives from and takes advantage of built-in features should preferably use the same convention. Uniform variables are prefixed with `u_` and vertex inputs with `i_` . For languages not using semantics, Figure 7 shows the naming used for variables (inputs and uniforms) with predefined binding rules: App data input variables @@ -473,14 +368,8 @@ Uniform variables | u_viewDirection | vec3 | World-space direction of the viewer. | | u_frame | float | The current frame number as defined by the host application. | | u_time | float | The current time in seconds. | -| u_geomattr_ | | A named attribute of given where is the name of the variable on the geometry. | +| u_geomattr_ | | A named attribute of given where is the name of the variable on the geometry. | | u_numActiveLightSources | int | The number of currently active light sources. Note that in shader this is clamped against the maximum allowed number of light sources. | -| u_lightData[] | struct | Array of struct LightData holding parameters for active light sources. The `LightData` struct is built dynamically depending on requirements for bound light shaders. | - +| u_lightData[] | struct | Array of struct LightData holding parameters for active light sources. The `LightData` struct is built dynamically depending on requirements for bound light shaders. | **Figure 7** : Listing of predefined variables with their binding rules. - -## References - -[1] Lucasfilm, MaterialX specification. -http://www.materialx.org, 2017. diff --git a/documents/Libraries/pbrlib/genglsl/mx_addbsdf.glsl b/documents/Libraries/pbrlib/genglsl/mx_addbsdf.glsl deleted file mode 100644 index 80f899975b..0000000000 --- a/documents/Libraries/pbrlib/genglsl/mx_addbsdf.glsl +++ /dev/null @@ -1,14 +0,0 @@ -void mx_addbsdf_reflection(vec3 L, vec3 V, BSDF in1, BSDF in2, out BSDF result) -{ - result = in1 + in2; -} - -void mx_addbsdf_transmission(vec3 V, BSDF in1, BSDF in2, out BSDF result) -{ - result = in1 + in2; -} - -void mx_addbsdf_indirect(vec3 V, vec3 in1, vec3 in2, out vec3 result) -{ - result = in1 + in2; -} diff --git a/documents/Libraries/pbrlib/genglsl/mx_dielectricbtdf.glsl b/documents/Libraries/pbrlib/genglsl/mx_dielectricbtdf.glsl deleted file mode 100644 index cf083d3c58..0000000000 --- a/documents/Libraries/pbrlib/genglsl/mx_dielectricbtdf.glsl +++ /dev/null @@ -1,5 +0,0 @@ -void mx_dielectricbtdf_transmission(vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 normal, vec3 tangent, int distribution, VDF interior, out BSDF result) -{ - // TODO: Attenuate the transmission based on roughness and interior VDF - result = tint * weight; -} diff --git a/documents/Libraries/pbrlib/genglsl/mx_mixsurface.glsl b/documents/Libraries/pbrlib/genglsl/mx_mixsurface.glsl deleted file mode 100644 index f7c443356a..0000000000 --- a/documents/Libraries/pbrlib/genglsl/mx_mixsurface.glsl +++ /dev/null @@ -1,6 +0,0 @@ -void mx_mixsurface(surfaceshader in1, surfaceshader in2, float weight, out surfaceshader result) -{ - weight = clamp(weight, 0.0, 1.0); - result.color = in1.color * (1.0 - weight) + in2.color * weight; - result.transparency = in1.transparency * (1.0 - weight) + in2.transparency * weight; -} diff --git a/documents/Libraries/pbrlib/genglsl/mx_scalebsdf.glsl b/documents/Libraries/pbrlib/genglsl/mx_scalebsdf.glsl deleted file mode 100644 index 32bc4607fd..0000000000 --- a/documents/Libraries/pbrlib/genglsl/mx_scalebsdf.glsl +++ /dev/null @@ -1,17 +0,0 @@ -void mx_scalebsdf_reflection(vec3 L, vec3 V, BSDF _in, vec3 weight, out BSDF result) -{ - weight = clamp(weight, 0.0, 1.0); - result = _in * weight; -} - -void mx_scalebsdf_transmission(vec3 V, BSDF _in, vec3 weight, out BSDF result) -{ - weight = clamp(weight, 0.0, 1.0); - result = _in * weight; -} - -void mx_scalebsdf_indirect(vec3 V, vec3 _in, vec3 weight, out vec3 result) -{ - weight = clamp(weight, 0.0, 1.0); - result = _in * weight; -} diff --git a/documents/Libraries/pbrlib/genglsl/mx_sheenbrdf.glsl b/documents/Libraries/pbrlib/genglsl/mx_sheenbrdf.glsl deleted file mode 100644 index 85a770de2d..0000000000 --- a/documents/Libraries/pbrlib/genglsl/mx_sheenbrdf.glsl +++ /dev/null @@ -1,31 +0,0 @@ -#include "pbrlib/genglsl/lib/mx_bsdfs.glsl" - -// Fake with simple diffuse reflection for now -void mx_sheenbrdf_reflection(vec3 L, vec3 V, float weight, vec3 color, float roughness, vec3 normal, BSDF base, out BSDF result) -{ - float NdotL = dot(L, normal); - if (NdotL <= 0.0 || weight < M_FLOAT_EPS) - { - result = BSDF(0.0); - return; - } - - result = color * weight * NdotL * M_PI_INV; - if (roughness > 0.0) - { - result *= mx_orennayar(L, V, normal, NdotL, roughness); - } -} - -// Fake with simple diffuse reflection for now -void mx_sheenbrdf_indirect(vec3 V, float weight, vec3 color, float roughness, vec3 normal, BSDF base, out vec3 result) -{ - if (weight < M_FLOAT_EPS) - { - result = vec3(0.0); - return; - } - - vec3 Li = mx_environment_irradiance(normal); - result = Li * color * weight; -} diff --git a/documents/Libraries/pbrlib/genglsl/mx_uniformedf.glsl b/documents/Libraries/pbrlib/genglsl/mx_uniformedf.glsl deleted file mode 100644 index ee732c42b7..0000000000 --- a/documents/Libraries/pbrlib/genglsl/mx_uniformedf.glsl +++ /dev/null @@ -1,4 +0,0 @@ -void mx_uniformedf(vec3 N, vec3 L, vec3 intensity, out EDF result) -{ - result = intensity; -} diff --git a/documents/Libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx b/documents/Libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx deleted file mode 100644 index a2f59f5a8e..0000000000 --- a/documents/Libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documents/Libraries/pbrlib/genosl/mx_addbsdf.inline b/documents/Libraries/pbrlib/genosl/mx_addbsdf.inline deleted file mode 100644 index 71277cdec7..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_addbsdf.inline +++ /dev/null @@ -1 +0,0 @@ -{{in1}} + {{in2}} diff --git a/documents/Libraries/pbrlib/genosl/mx_dielectricbtdf.osl b/documents/Libraries/pbrlib/genosl/mx_dielectricbtdf.osl deleted file mode 100644 index 4077ac0da7..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_dielectricbtdf.osl +++ /dev/null @@ -1,4 +0,0 @@ -void mx_dielectricbtdf(float weight, color _color, float ior, roughnessinfo roughness, vector _normal, vector _tangent, string distribution, VDF interior, output BSDF result) -{ - result = _color * weight * microfacet(distribution, _normal, _tangent, roughness.alphaX, roughness.alphaY, ior, true) + weight * interior; -} diff --git a/documents/Libraries/pbrlib/genosl/mx_mixbsdf.osl b/documents/Libraries/pbrlib/genosl/mx_mixbsdf.osl deleted file mode 100644 index 8817208067..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_mixbsdf.osl +++ /dev/null @@ -1,5 +0,0 @@ -void mx_mixbsdf(BSDF in1, BSDF in2, float weight, output BSDF result) -{ - float w = clamp(weight, 0.0, 1.0); - result = in1 * (1.0 - w) + in2 * w; -} diff --git a/documents/Libraries/pbrlib/genosl/mx_mixedf.osl b/documents/Libraries/pbrlib/genosl/mx_mixedf.osl deleted file mode 100644 index f6b06f21eb..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_mixedf.osl +++ /dev/null @@ -1,5 +0,0 @@ -void mx_mixedf(EDF in1, EDF in2, float weight, output EDF result) -{ - float w = clamp(weight, 0.0, 1.0); - result = in1 * (1.0 - w) + in2 * w; -} diff --git a/documents/Libraries/pbrlib/genosl/mx_mixsurface.osl b/documents/Libraries/pbrlib/genosl/mx_mixsurface.osl deleted file mode 100644 index 60ab0d9034..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_mixsurface.osl +++ /dev/null @@ -1,5 +0,0 @@ -void mx_mixsurface(surfaceshader in1, surfaceshader in2, float weight, output surfaceshader result) -{ - float w = clamp(weight, 0.0, 1.0); - result = in1 * (1.0 - w) + in2 * w; -} diff --git a/documents/Libraries/pbrlib/genosl/mx_scalebsdf.osl b/documents/Libraries/pbrlib/genosl/mx_scalebsdf.osl deleted file mode 100644 index b18375cdf8..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_scalebsdf.osl +++ /dev/null @@ -1,5 +0,0 @@ -void mx_scalebsdf(BSDF bsdf, color weight, output BSDF result) -{ - color w = clamp(weight, 0.0, 1.0); - result = bsdf * w; -} diff --git a/documents/Libraries/pbrlib/genosl/mx_sheenbrdf.osl b/documents/Libraries/pbrlib/genosl/mx_sheenbrdf.osl deleted file mode 100644 index af6fc7df93..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_sheenbrdf.osl +++ /dev/null @@ -1,5 +0,0 @@ -void mx_sheenbrdf(float weight, color _color, float roughness, vector _normal, BSDF base, output BSDF result) -{ - // TODO: implement this properly - result = _color * weight * oren_nayar(_normal, roughness); -} diff --git a/documents/Libraries/pbrlib/genosl/mx_standardsurface.osl b/documents/Libraries/pbrlib/genosl/mx_standardsurface.osl deleted file mode 100644 index e3253900e6..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_standardsurface.osl +++ /dev/null @@ -1,45 +0,0 @@ -void mx_standardsurface( - float base, - color base_color, - float diffuse_roughness, - float specular, - color specular_color, - float specular_roughness, - float specular_IOR, - float specular_anisotropy, - float specular_rotation, - float metalness, - float transmission, - color transmission_color, - float transmission_depth, - color transmission_scatter, - float transmission_scatter_anisotropy, - float transmission_dispersion, - float transmission_extra_roughness, - float subsurface, - color subsurface_color, - color subsurface_radius, - float subsurface_scale, - int thin_walled, - normal N, - vector U, - float coat, - color coat_color, - float coat_roughness, - float coat_IOR, - vector coat_normal, - float thin_film_thickness, - float thin_film_IOR, - float emission_weight, - color emission_color, - color opacity, - int caustics, - int internal_reflections, - int exit_to_background, - float indirect_diffuse, - float indirect_specular, - output surfaceshader result) -{ - // TODO: Implement properly - result = base * base_color * oren_nayar(N, diffuse_roughness) + emission_weight * emission_color * emission(); -} diff --git a/documents/Libraries/pbrlib/genosl/mx_subsurfacebrdf.osl b/documents/Libraries/pbrlib/genosl/mx_subsurfacebrdf.osl deleted file mode 100644 index 44758b9f55..0000000000 --- a/documents/Libraries/pbrlib/genosl/mx_subsurfacebrdf.osl +++ /dev/null @@ -1,5 +0,0 @@ -void mx_subsurfacebrdf(float weight, color _color, vector radius, float anisotropy, vector _normal, output BSDF result) -{ - // TODO: implement this properly - result = _color * weight * translucent(_normal); -} diff --git a/documents/Libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx b/documents/Libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx deleted file mode 100644 index 5d5251e65d..0000000000 --- a/documents/Libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documents/Libraries/pbrlib/pbrlib_ng.mtlx b/documents/Libraries/pbrlib/pbrlib_ng.mtlx deleted file mode 100644 index d997e6f92b..0000000000 --- a/documents/Libraries/pbrlib/pbrlib_ng.mtlx +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /> - - - - - - - - - - - - diff --git a/documents/Libraries/stdlib/genglsl/lib/mx_noise.glsl b/documents/Libraries/stdlib/genglsl/lib/mx_noise.glsl deleted file mode 100644 index 20f77a9f2d..0000000000 --- a/documents/Libraries/stdlib/genglsl/lib/mx_noise.glsl +++ /dev/null @@ -1,323 +0,0 @@ -/* -ShaderX Noise Library. - -This library is a modified version of the noise library found in -Open Shading Language: -github.com/imageworks/OpenShadingLanguage/blob/master/src/include/OSL/oslnoise.h - -It contains the subset of noise types needed to implement the MaterialX -standard library. The modifications are mainly conversions from C++ to GLSL. -Produced results should be identical to the OSL noise functions. - -Original copyright notice: ------------------------------------------------------------------------- -Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. -All Rights Reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -* Neither the name of Sony Pictures Imageworks nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------- -*/ - -float mx_select(bool b, float t, float f) -{ - return b ? t : f; -} - -float mx_negate_if(float val, bool b) -{ - return b ? -val : val; -} - -int mx_floor(float x) -{ - // return the greatest integer <= x - return x < 0.0 ? int(x) - 1 : int(x); -} - -// return mx_floor as well as the fractional remainder -float mx_floorfrac(float x, out int i) -{ - i = mx_floor(x); - return x - i; -} - -float mx_bilerp(float v0, float v1, float v2, float v3, float s, float t) -{ - float s1 = 1.0 - s; - return (1.0 - t) * (v0*s1 + v1*s) + t * (v2*s1 + v3*s); -} -vec3 mx_bilerp(vec3 v0, vec3 v1, vec3 v2, vec3 v3, float s, float t) -{ - float s1 = 1.0 - s; - return (1.0 - t) * (v0*s1 + v1*s) + t * (v2*s1 + v3*s); -} -float mx_trilerp(float v0, float v1, float v2, float v3, float v4, float v5, float v6, float v7, float s, float t, float r) -{ - float s1 = 1.0 - s; - float t1 = 1.0 - t; - float r1 = 1.0 - r; - return (r1*(t1*(v0*s1 + v1*s) + t*(v2*s1 + v3*s)) + - r*(t1*(v4*s1 + v5*s) + t*(v6*s1 + v7*s))); -} -vec3 mx_trilerp(vec3 v0, vec3 v1, vec3 v2, vec3 v3, vec3 v4, vec3 v5, vec3 v6, vec3 v7, float s, float t, float r) -{ - float s1 = 1.0 - s; - float t1 = 1.0 - t; - float r1 = 1.0 - r; - return (r1*(t1*(v0*s1 + v1*s) + t*(v2*s1 + v3*s)) + - r*(t1*(v4*s1 + v5*s) + t*(v6*s1 + v7*s))); -} - -// 2 and 3 dimensional gradient functions - perform a dot product against a -// randomly chosen vector. Note that the gradient vector is not normalized, but -// this only affects the overal "scale" of the result, so we simply account for -// the scale by multiplying in the corresponding "perlin" function. -float mx_gradient(uint hash, float x, float y) -{ - // 8 possible directions (+-1,+-2) and (+-2,+-1) - uint h = hash & 7; - float u = mx_select(h<4, x, y); - float v = 2.0 * mx_select(h<4, y, x); - // compute the dot product with (x,y). - return mx_negate_if(u, bool(h&1)) + mx_negate_if(v, bool(h&2)); -} -float mx_gradient(uint hash, float x, float y, float z) -{ - // use vectors pointing to the edges of the cube - uint h = hash & 15; - float u = mx_select(h<8, x, y); - float v = mx_select(h<4, y, mx_select((h==12)||(h==14), x, z)); - return mx_negate_if(u, bool(h&1)) + mx_negate_if(v, bool(h&2)); -} -vec3 mx_gradient(uvec3 hash, float x, float y) -{ - return vec3(mx_gradient(hash.x, x, y), mx_gradient(hash.y, x, y), mx_gradient(hash.z, x, y)); -} -vec3 mx_gradient(uvec3 hash, float x, float y, float z) -{ - return vec3(mx_gradient(hash.x, x, y, z), mx_gradient(hash.y, x, y, z), mx_gradient(hash.z, x, y, z)); -} -// Scaling factors to normalize the result of gradients above. -// These factors were experimentally calculated to be: -// 2D: 0.6616 -// 3D: 0.9820 -float mx_gradient_scale2d(float v) { return 0.6616 * v; } -float mx_gradient_scale3d(float v) { return 0.9820 * v; } -vec3 mx_gradient_scale2d(vec3 v) { return 0.6616 * v; } -vec3 mx_gradient_scale3d(vec3 v) { return 0.9820 * v; } - -/// Bitwise circular rotation left by k bits (for 32 bit unsigned integers) -uint mx_rotl32(uint x, int k) -{ - return (x<>(32-k)); -} - -// Mix up and combine the bits of a, b, and c (doesn't change them, but -// returns a hash of those three original values). -uint mx_bjfinal(uint a, uint b, uint c) -{ - c ^= b; c -= mx_rotl32(b,14); - a ^= c; a -= mx_rotl32(c,11); - b ^= a; b -= mx_rotl32(a,25); - c ^= b; c -= mx_rotl32(b,16); - a ^= c; a -= mx_rotl32(c,4); - b ^= a; b -= mx_rotl32(a,14); - c ^= b; c -= mx_rotl32(b,24); - return c; -} - -// Convert a 32 bit integer into a floating point number in [0,1] -float mx_bits_to_01(uint bits) -{ - return float(bits) / float(uint(0xffffffff)); -} - -float mx_fade(float t) -{ - return t * t * t * (t * (t * 6.0 - 15.0) + 10.0); -} - -uint mx_hash_int(int x, int y) -{ - uint a, b, c; - uint len = 2; - a = b = c = 0xdeadbeef + (len << 2) + 13; - a += x; - b += y; - c = mx_bjfinal(a, b, c); - return c; -} - -uint mx_hash_int(int x, int y, int z) -{ - uint a, b, c; - uint len = 3; - a = b = c = 0xdeadbeef + (len << 2) + 13; - a += x; - b += y; - c += z; - c = mx_bjfinal(a, b, c); - return c; -} - -uvec3 mx_hash_vec3(int x, int y) -{ - uint h = mx_hash_int(x, y); - // we only need the low-order bits to be random, so split out - // the 32 bit result into 3 parts for each channel - uvec3 result; - result.x = (h ) & 0xFF; - result.y = (h >> 8 ) & 0xFF; - result.z = (h >> 16) & 0xFF; - return result; -} - -uvec3 mx_hash_vec3(int x, int y, int z) -{ - uint h = mx_hash_int(x, y, z); - // we only need the low-order bits to be random, so split out - // the 32 bit result into 3 parts for each channel - uvec3 result; - result.x = (h ) & 0xFF; - result.y = (h >> 8 ) & 0xFF; - result.z = (h >> 16) & 0xFF; - return result; -} - -float mx_perlin_noise_float(vec2 p) -{ - int X, Y; - float fx = mx_floorfrac(p.x, X); - float fy = mx_floorfrac(p.y, Y); - float u = mx_fade(fx); - float v = mx_fade(fy); - float result = mx_bilerp( - mx_gradient(mx_hash_int(X , Y ), fx , fy ), - mx_gradient(mx_hash_int(X+1, Y ), fx-1.0, fy ), - mx_gradient(mx_hash_int(X , Y+1), fx , fy-1.0), - mx_gradient(mx_hash_int(X+1, Y+1), fx-1.0, fy-1.0), - u, v); - return mx_gradient_scale2d(result); -} - -float mx_perlin_noise_float(vec3 p) -{ - int X, Y, Z; - float fx = mx_floorfrac(p.x, X); - float fy = mx_floorfrac(p.y, Y); - float fz = mx_floorfrac(p.z, Z); - float u = mx_fade(fx); - float v = mx_fade(fy); - float w = mx_fade(fz); - float result = mx_trilerp( - mx_gradient(mx_hash_int(X , Y , Z ), fx , fy , fz ), - mx_gradient(mx_hash_int(X+1, Y , Z ), fx-1.0, fy , fz ), - mx_gradient(mx_hash_int(X , Y+1, Z ), fx , fy-1.0, fz ), - mx_gradient(mx_hash_int(X+1, Y+1, Z ), fx-1.0, fy-1.0, fz ), - mx_gradient(mx_hash_int(X , Y , Z+1), fx , fy , fz-1.0), - mx_gradient(mx_hash_int(X+1, Y , Z+1), fx-1.0, fy , fz-1.0), - mx_gradient(mx_hash_int(X , Y+1, Z+1), fx , fy-1.0, fz-1.0), - mx_gradient(mx_hash_int(X+1, Y+1, Z+1), fx-1.0, fy-1.0, fz-1.0), - u, v, w); - return mx_gradient_scale3d(result); -} - -vec3 mx_perlin_noise_vec3(vec2 p) -{ - int X, Y; - float fx = mx_floorfrac(p.x, X); - float fy = mx_floorfrac(p.y, Y); - float u = mx_fade(fx); - float v = mx_fade(fy); - vec3 result = mx_bilerp( - mx_gradient(mx_hash_vec3(X , Y ), fx , fy ), - mx_gradient(mx_hash_vec3(X+1, Y ), fx-1.0, fy ), - mx_gradient(mx_hash_vec3(X , Y+1), fx , fy-1.0), - mx_gradient(mx_hash_vec3(X+1, Y+1), fx-1.0, fy-1.0), - u, v); - return mx_gradient_scale2d(result); -} - -vec3 mx_perlin_noise_vec3(vec3 p) -{ - int X, Y, Z; - float fx = mx_floorfrac(p.x, X); - float fy = mx_floorfrac(p.y, Y); - float fz = mx_floorfrac(p.z, Z); - float u = mx_fade(fx); - float v = mx_fade(fy); - float w = mx_fade(fz); - vec3 result = mx_trilerp( - mx_gradient(mx_hash_vec3(X , Y , Z ), fx , fy , fz ), - mx_gradient(mx_hash_vec3(X+1, Y , Z ), fx-1.0, fy , fz ), - mx_gradient(mx_hash_vec3(X , Y+1, Z ), fx , fy-1.0, fz ), - mx_gradient(mx_hash_vec3(X+1, Y+1, Z ), fx-1.0, fy-1.0, fz ), - mx_gradient(mx_hash_vec3(X , Y , Z+1), fx , fy , fz-1.0), - mx_gradient(mx_hash_vec3(X+1, Y , Z+1), fx-1.0, fy , fz-1.0), - mx_gradient(mx_hash_vec3(X , Y+1, Z+1), fx , fy-1.0, fz-1.0), - mx_gradient(mx_hash_vec3(X+1, Y+1, Z+1), fx-1.0, fy-1.0, fz-1.0), - u, v, w); - return mx_gradient_scale3d(result); -} - -float mx_cell_noise_float(vec2 p) -{ - int ix = mx_floor(p.x); - int iy = mx_floor(p.y); - return mx_bits_to_01(mx_hash_int(ix, iy)); -} - -float mx_cell_noise_float(vec3 p) -{ - int ix = mx_floor(p.x); - int iy = mx_floor(p.y); - int iz = mx_floor(p.z); - return mx_bits_to_01(mx_hash_int(ix, iy, iz)); -} - -float mx_fractal_noice_float(vec3 p, int octaves, float lacunarity, float diminish) -{ - float result = 0.0; - float amplitude = 1.0; - for (int i = 0; i < octaves; ++i) - { - result += amplitude * mx_perlin_noise_float(p); - amplitude *= diminish; - p *= lacunarity; - } - return result; -} - -vec3 mx_fractal_noice_vec3(vec3 p, int octaves, float lacunarity, float diminish) -{ - vec3 result = vec3(0.0); - float amplitude = 1.0; - for (int i = 0; i < octaves; ++i) - { - result += amplitude * mx_perlin_noise_vec3(p); - amplitude *= diminish; - p *= lacunarity; - } - return result; -} diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_color2.glsl b/documents/Libraries/stdlib/genglsl/mx_noise2d_color2.glsl deleted file mode 100644 index 95b5ab28d0..0000000000 --- a/documents/Libraries/stdlib/genglsl/mx_noise2d_color2.glsl +++ /dev/null @@ -1,7 +0,0 @@ -#include "stdlib/genglsl/lib/mx_noise.glsl" - -void mx_noise2d_color2(vec2 amplitude, float pivot, vec2 texcoord, out vec2 result) -{ - vec3 value = mx_perlin_noise_vec3(texcoord); - result = value.xy * amplitude + pivot; -} diff --git a/documents/Libraries/stdlib/genglsl/mx_transformnormal.inline b/documents/Libraries/stdlib/genglsl/mx_transformnormal.inline deleted file mode 100644 index 1b326d2fd5..0000000000 --- a/documents/Libraries/stdlib/genglsl/mx_transformnormal.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} diff --git a/documents/Libraries/stdlib/genglsl/mx_transformnormalM.inline b/documents/Libraries/stdlib/genglsl/mx_transformnormalM.inline deleted file mode 100644 index 107b1911c9..0000000000 --- a/documents/Libraries/stdlib/genglsl/mx_transformnormalM.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} * {{mat}} diff --git a/documents/Libraries/stdlib/genglsl/mx_transformpoint.inline b/documents/Libraries/stdlib/genglsl/mx_transformpoint.inline deleted file mode 100644 index 1b326d2fd5..0000000000 --- a/documents/Libraries/stdlib/genglsl/mx_transformpoint.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} diff --git a/documents/Libraries/stdlib/genglsl/mx_transformpointM.inline b/documents/Libraries/stdlib/genglsl/mx_transformpointM.inline deleted file mode 100644 index 107b1911c9..0000000000 --- a/documents/Libraries/stdlib/genglsl/mx_transformpointM.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} * {{mat}} diff --git a/documents/Libraries/stdlib/genglsl/mx_transformvector.inline b/documents/Libraries/stdlib/genglsl/mx_transformvector.inline deleted file mode 100644 index 1b326d2fd5..0000000000 --- a/documents/Libraries/stdlib/genglsl/mx_transformvector.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} diff --git a/documents/Libraries/stdlib/genglsl/mx_transformvectorM.inline b/documents/Libraries/stdlib/genglsl/mx_transformvectorM.inline deleted file mode 100644 index 107b1911c9..0000000000 --- a/documents/Libraries/stdlib/genglsl/mx_transformvectorM.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} * {{mat}} diff --git a/documents/Libraries/stdlib/genosl/mx_transformnormal.inline b/documents/Libraries/stdlib/genosl/mx_transformnormal.inline deleted file mode 100644 index 1b326d2fd5..0000000000 --- a/documents/Libraries/stdlib/genosl/mx_transformnormal.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} diff --git a/documents/Libraries/stdlib/genosl/mx_transformnormalM.inline b/documents/Libraries/stdlib/genosl/mx_transformnormalM.inline deleted file mode 100644 index fd12131044..0000000000 --- a/documents/Libraries/stdlib/genosl/mx_transformnormalM.inline +++ /dev/null @@ -1 +0,0 @@ -transform({{mat}}, {{in}}) diff --git a/documents/Libraries/stdlib/genosl/mx_transformpoint.inline b/documents/Libraries/stdlib/genosl/mx_transformpoint.inline deleted file mode 100644 index 1b326d2fd5..0000000000 --- a/documents/Libraries/stdlib/genosl/mx_transformpoint.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} diff --git a/documents/Libraries/stdlib/genosl/mx_transformpointM.inline b/documents/Libraries/stdlib/genosl/mx_transformpointM.inline deleted file mode 100644 index fd12131044..0000000000 --- a/documents/Libraries/stdlib/genosl/mx_transformpointM.inline +++ /dev/null @@ -1 +0,0 @@ -transform({{mat}}, {{in}}) diff --git a/documents/Libraries/stdlib/genosl/mx_transformvector.inline b/documents/Libraries/stdlib/genosl/mx_transformvector.inline deleted file mode 100644 index 1b326d2fd5..0000000000 --- a/documents/Libraries/stdlib/genosl/mx_transformvector.inline +++ /dev/null @@ -1 +0,0 @@ -{{in}} diff --git a/documents/README.md b/documents/README.md index c2466bb023..d302bfd381 100644 --- a/documents/README.md +++ b/documents/README.md @@ -3,8 +3,4 @@ ## Folders - [DeveloperGuide](DeveloperGuide): Developer information -- [Examples](Examples): Example files -- [Images](Images): Documentation images -- [Libraries](Libraries): Provided library definitions and implementations -- [Specification](Libraries): MaterialX specifications -- [TestSuite](TestSuite): Shader generation test suite. +- [Specification](Specification): MaterialX specifications diff --git a/documents/TestSuite/Images/marble.exr b/documents/TestSuite/Images/marble.exr deleted file mode 100644 index edc135889b..0000000000 Binary files a/documents/TestSuite/Images/marble.exr and /dev/null differ diff --git a/documents/TestSuite/Images/san_giuseppe_bridge.exr b/documents/TestSuite/Images/san_giuseppe_bridge.exr deleted file mode 100644 index d99b43b698..0000000000 Binary files a/documents/TestSuite/Images/san_giuseppe_bridge.exr and /dev/null differ diff --git a/documents/TestSuite/Images/san_giuseppe_bridge_diffuse.exr b/documents/TestSuite/Images/san_giuseppe_bridge_diffuse.exr deleted file mode 100644 index 3b5d68410b..0000000000 Binary files a/documents/TestSuite/Images/san_giuseppe_bridge_diffuse.exr and /dev/null differ diff --git a/documents/TestSuite/pbrlib/bsdf/addbsdf.mtlx b/documents/TestSuite/pbrlib/bsdf/addbsdf.mtlx deleted file mode 100644 index 55030bc60c..0000000000 --- a/documents/TestSuite/pbrlib/bsdf/addbsdf.mtlx +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documents/TestSuite/stdlib/math/transform.mtlx b/documents/TestSuite/stdlib/math/transform.mtlx deleted file mode 100644 index 0622a11b75..0000000000 --- a/documents/TestSuite/stdlib/math/transform.mtlx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documents/TestSuite/sxpbrlib/materials/nodegraph_standardsurface.mtlx b/documents/TestSuite/sxpbrlib/materials/nodegraph_standardsurface.mtlx deleted file mode 100644 index 6a1d7eb707..0000000000 --- a/documents/TestSuite/sxpbrlib/materials/nodegraph_standardsurface.mtlx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <:anonymous name="1" /> - - - - - - - - - - diff --git a/documents/TestSuite/sxpbrlib/materials/wood.mtlx b/documents/TestSuite/sxpbrlib/materials/wood.mtlx deleted file mode 100644 index aee9c09c11..0000000000 --- a/documents/TestSuite/sxpbrlib/materials/wood.mtlx +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documents/TestSuite/sxpbrlib/multioutput/multioutput.mtlx b/documents/TestSuite/sxpbrlib/multioutput/multioutput.mtlx deleted file mode 100644 index b980064e47..0000000000 --- a/documents/TestSuite/sxpbrlib/multioutput/multioutput.mtlx +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documents/TestSuite/util/constant_color.osl b/documents/TestSuite/util/constant_color.osl deleted file mode 100644 index 3dabd39db3..0000000000 --- a/documents/TestSuite/util/constant_color.osl +++ /dev/null @@ -1,10 +0,0 @@ -surface -constant_color - [[ string description = "Simple closure for constant color surface rendering" ]] -( - color Cin = 1 - [[ string description = "Input color to modulate emission with" ]] -) -{ - Ci = Cin * emission(); -} diff --git a/documents/TestSuite/util/constant_color2.osl b/documents/TestSuite/util/constant_color2.osl deleted file mode 100644 index 65b0f9065e..0000000000 --- a/documents/TestSuite/util/constant_color2.osl +++ /dev/null @@ -1,11 +0,0 @@ -#include "color2.h" - -surface -constant_color2 - [[ string description = "Simple closure for constant color surface rendering" ]] -( - color2 Cin = {0.0, 0.0}, -) -{ - Ci = color(Cin.r, Cin.a, 0) * emission(); -} diff --git a/documents/TestSuite/util/constant_color4.osl b/documents/TestSuite/util/constant_color4.osl deleted file mode 100644 index b72e42c08e..0000000000 --- a/documents/TestSuite/util/constant_color4.osl +++ /dev/null @@ -1,12 +0,0 @@ -#include "color4.h" - -surface -constant_color4 - [[ string description = "Simple closure for constant color surface rendering" ]] -( - color4 Cin = {(0.0, 0.0, 0.0), 0.0} - [[ string description = "Input color to modulate emission with" ]] -) -{ - Ci = color(Cin.rgb[0], Cin.rgb[1], Cin.rgb[2]) * emission(); -} diff --git a/documents/TestSuite/util/constant_color_background.osl b/documents/TestSuite/util/constant_color_background.osl deleted file mode 100644 index 0034856c9a..0000000000 --- a/documents/TestSuite/util/constant_color_background.osl +++ /dev/null @@ -1,10 +0,0 @@ -surface -constant_color_background - [[ string description = "Simple closure for constant color background rendering" ]] -( - color Cin = 1 - [[ string description = "Input color to modulate background with" ]] -) -{ - Ci = Cin * background(); -} diff --git a/documents/TestSuite/util/constant_color_scene.xml b/documents/TestSuite/util/constant_color_scene.xml deleted file mode 100644 index 2ca6d11d15..0000000000 --- a/documents/TestSuite/util/constant_color_scene.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - color Cin %background_color%; - shader constant_color_background layer1; - - - - - - shader %input_shader_type% inputShader; - shader %output_shader_type% outputShader; - connect inputShader.%input_shader_output% outputShader.%output_shader_input%; - - - - diff --git a/documents/TestSuite/util/constant_vector2.osl b/documents/TestSuite/util/constant_vector2.osl deleted file mode 100644 index 81d822623c..0000000000 --- a/documents/TestSuite/util/constant_vector2.osl +++ /dev/null @@ -1,12 +0,0 @@ -#include "vector2.h" - -surface -constant_vector2 - [[ string description = "Simple closure for constant color surface rendering" ]] -( - vector2 Cin = {0.0, 0.0} - [[ string description = "Input color to modulate emission with" ]] -) -{ - Ci = color(Cin.x, Cin.y, 0.0) * emission(); -} diff --git a/documents/TestSuite/util/constant_vector4.osl b/documents/TestSuite/util/constant_vector4.osl deleted file mode 100644 index 43b02fb3f1..0000000000 --- a/documents/TestSuite/util/constant_vector4.osl +++ /dev/null @@ -1,12 +0,0 @@ -#include "vector4.h" - -surface -constant_vector4 - [[ string description = "Simple closure for constant color surface rendering" ]] -( - vector4 Cin = {0.0, 0.0, 0.0, 0.0} - [[ string description = "Input color to modulate emission with" ]] -) -{ - Ci = color(Cin.x, Cin.y, Cin.z) * emission(); -} diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt new file mode 100644 index 0000000000..39598ea008 --- /dev/null +++ b/libraries/CMakeLists.txt @@ -0,0 +1,2 @@ +install(DIRECTORY ${CMAKE_SOURCE_DIR}/libraries/ + DESTINATION "${CMAKE_INSTALL_PREFIX}/libraries" MESSAGE_NEVER) diff --git a/documents/Libraries/README.md b/libraries/README.md similarity index 54% rename from documents/Libraries/README.md rename to libraries/README.md index 3399ff2875..8e2e286dfb 100644 --- a/documents/Libraries/README.md +++ b/libraries/README.md @@ -2,24 +2,25 @@ The following is the layout of the definitions and implementations provided as part of the core libraries. +- `osl` denotes a reference implementation for OSL. +- `genosl` denotes "generated" OSL code support. The language specifier is `genosl` and the target is `vanilla`. +- `genglsl` denotes "generated" GLSL code support. The language specifier is `genglsl` with no specific target specifier. + ## Standard Library - [stdlib](stdlib) - [stdlib_defs.mtlx](stdlib/stdlib_defs.mtlx) : Single node nodedef definitions file. - [stdlib_ng.mtlx](stdlib/stdlib_ng.mtlx) : Node graph definitions file. - - [genglsl](stdlib/genglsl): GLSL language support + - [genglsl](stdlib/genglsl): GLSL language support. - lib : Shader utility files. - [stdlib_genglsl_impl.mtlx](stdlib/genglsl/stdlib_genglsl_impl.mtlx) : Mapping from definitions to implementations - [stdlib_genglsl_cm_impl.mtlx](stdlib/genglsl/stdlib_genglsl_cm_impl.mtlx) : Minimal set of "default" color management implementations. - - GLSL implementation files - - [ogsfx](stdlib/genglsl/ogsfx): OGSFX support - - [stdlib_genglsl_ogsfx_impl.mtlx](stdlib/genglsl/ogsfx/stdlib_genglsl_ogsfx_impl.mtlx) : Mapping from definitions to implementations - - OGSFX implementation files - - [genosl](stdlib/genosl): OSL language support + - GLSL implementation files. + - [genosl](stdlib/genosl): OSL language support. - lib: Shader utility files. - [stdlib_genosl_impl.mtlx](stdlib/genosl/stdlib_genosl_impl.mtlx) : Mapping from definitions to implementations - - [stdlib_genosl_cm_impl.mtlx](stdlib/genosl/stdlib_genosl_cm_impl.mtlx) : Minimal set of "default" color management implementations + - [stdlib_genosl_cm_impl.mtlx](stdlib/genosl/stdlib_genosl_cm_impl.mtlx) : Minimal set of "default" color management implementations. - OSL implementation files. - - [osl](stdlib/genosl): OSL reference implementation + - [osl](stdlib/osl): OSL reference implementation - OSL implementation files. ## PBR library @@ -30,11 +31,21 @@ The following is the layout of the definitions and implementations provided as p - lib : Shader utility files. - [pbrlib_genglsl_impl.mtlx](pbrlib/genglsl/pbrlib_genglsl_impl.mtlx) : Mapping from definitions to implementations - GLSL implementation files. - - [ogsfx](pbrlib/genglsl/ogsfx) : OGSFX support - - OGSFX implementation files. - [genosl](pbrlib/genosl) : OSL language support - lib : Utilities - [pbrlib_genosl_impl.mtlx](pbrlib/genosl/pbrlib_genosl_impl.mtlx) : Mapping from definitions to implementations - OSL implementation files. -Note that there is no reference implementation for the PBR library. +## Support Notes: +- GLSL language support is for version 4.0 or higher. +- "default" color management support includes OSL and GLSL implementations for the following non-LUT transforms: + - lin_rec709, gamma18, gamma22, gamma24, acescg, srgb_texture +- Basic GLSL `lightshader` node definitions and implementations are provided for the following light types: + - point, directional, spot +- Code generation is not currently supported for: + - `noise2d`, `noise3d`, `cellnoise2d`, `cellnoise3d`, `fractal3d` nodes for `genglsl` + - `ambientocclusion` node for: `genosl` and `genglsl`. + - `arrayappend` node for: `genosl` and `genglsl`. + - `curveadjust` node for: `genosl` and `genglsl`. + - `displacementshader` and `volumeshader` nodes and associated operations (`add`, `multiply`, `mix`) for: `genosl` and `genglsl`. + - `add`, `multiply`, and `mix surfaceshader` node operations for `genglsl`. diff --git a/documents/Examples/BxDF/alSurface.mtlx b/libraries/bxdf/alSurface.mtlx similarity index 100% rename from documents/Examples/BxDF/alSurface.mtlx rename to libraries/bxdf/alSurface.mtlx diff --git a/documents/Examples/BxDF/Disney_BRDF_2012.mtlx b/libraries/bxdf/disney_brdf_2012.mtlx similarity index 74% rename from documents/Examples/BxDF/Disney_BRDF_2012.mtlx rename to libraries/bxdf/disney_brdf_2012.mtlx index b39e7502b0..c590d2a36a 100644 --- a/documents/Examples/BxDF/Disney_BRDF_2012.mtlx +++ b/libraries/bxdf/disney_brdf_2012.mtlx @@ -1,18 +1,18 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/documents/Examples/BxDF/Disney_BSDF_2015.mtlx b/libraries/bxdf/disney_brdf_2015.mtlx similarity index 83% rename from documents/Examples/BxDF/Disney_BSDF_2015.mtlx rename to libraries/bxdf/disney_brdf_2015.mtlx index 75cf776424..84c600047f 100644 --- a/documents/Examples/BxDF/Disney_BSDF_2015.mtlx +++ b/libraries/bxdf/disney_brdf_2015.mtlx @@ -1,25 +1,25 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libraries/bxdf/standard_surface.mtlx b/libraries/bxdf/standard_surface.mtlx new file mode 100644 index 0000000000..056b612247 --- /dev/null +++ b/libraries/bxdf/standard_surface.mtlx @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/Libraries/pbrlib/genglsl/lib/mx_bsdfs.glsl b/libraries/pbrlib/genglsl/lib/mx_bsdfs.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/lib/mx_bsdfs.glsl rename to libraries/pbrlib/genglsl/lib/mx_bsdfs.glsl diff --git a/documents/Libraries/pbrlib/genglsl/lib/mx_defines.glsl b/libraries/pbrlib/genglsl/lib/mx_defines.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/lib/mx_defines.glsl rename to libraries/pbrlib/genglsl/lib/mx_defines.glsl diff --git a/documents/Libraries/pbrlib/genglsl/lib/mx_environment_fis.glsl b/libraries/pbrlib/genglsl/lib/mx_environment_fis.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/lib/mx_environment_fis.glsl rename to libraries/pbrlib/genglsl/lib/mx_environment_fis.glsl diff --git a/documents/Libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl b/libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl rename to libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl diff --git a/documents/Libraries/pbrlib/genglsl/lib/mx_math.glsl b/libraries/pbrlib/genglsl/lib/mx_math.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/lib/mx_math.glsl rename to libraries/pbrlib/genglsl/lib/mx_math.glsl diff --git a/documents/Libraries/pbrlib/genglsl/lib/mx_refractionindex.glsl b/libraries/pbrlib/genglsl/lib/mx_refraction_index.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/lib/mx_refractionindex.glsl rename to libraries/pbrlib/genglsl/lib/mx_refraction_index.glsl diff --git a/libraries/pbrlib/genglsl/mx_add_bsdf.glsl b/libraries/pbrlib/genglsl/mx_add_bsdf.glsl new file mode 100644 index 0000000000..4179342449 --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_add_bsdf.glsl @@ -0,0 +1,14 @@ +void mx_add_bsdf_reflection(vec3 L, vec3 V, BSDF in1, BSDF in2, out BSDF result) +{ + result = in1 + in2; +} + +void mx_add_bsdf_transmission(vec3 V, BSDF in1, BSDF in2, out BSDF result) +{ + result = in1 + in2; +} + +void mx_add_bsdf_indirect(vec3 V, vec3 in1, vec3 in2, out vec3 result) +{ + result = in1 + in2; +} diff --git a/libraries/pbrlib/genglsl/mx_add_edf.glsl b/libraries/pbrlib/genglsl/mx_add_edf.glsl new file mode 100644 index 0000000000..0631c107b8 --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_add_edf.glsl @@ -0,0 +1,4 @@ +void mx_add_edf(vec3 N, vec3 L, EDF in1, EDF in2, out EDF result) +{ + result = in1 + in2; +} diff --git a/documents/Libraries/pbrlib/genglsl/mx_backfacing_boolean.inline b/libraries/pbrlib/genglsl/mx_backfacing_boolean.inline similarity index 100% rename from documents/Libraries/pbrlib/genglsl/mx_backfacing_boolean.inline rename to libraries/pbrlib/genglsl/mx_backfacing_boolean.inline diff --git a/documents/Libraries/pbrlib/genglsl/mx_backfacing_float.inline b/libraries/pbrlib/genglsl/mx_backfacing_float.inline similarity index 100% rename from documents/Libraries/pbrlib/genglsl/mx_backfacing_float.inline rename to libraries/pbrlib/genglsl/mx_backfacing_float.inline diff --git a/documents/Libraries/pbrlib/genglsl/mx_backfacing_integer.inline b/libraries/pbrlib/genglsl/mx_backfacing_integer.inline similarity index 100% rename from documents/Libraries/pbrlib/genglsl/mx_backfacing_integer.inline rename to libraries/pbrlib/genglsl/mx_backfacing_integer.inline diff --git a/documents/Libraries/pbrlib/genglsl/mx_complex_ior.glsl b/libraries/pbrlib/genglsl/mx_complex_ior.glsl similarity index 75% rename from documents/Libraries/pbrlib/genglsl/mx_complex_ior.glsl rename to libraries/pbrlib/genglsl/mx_complex_ior.glsl index 268dae60be..de00075e7c 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_complex_ior.glsl +++ b/libraries/pbrlib/genglsl/mx_complex_ior.glsl @@ -1,4 +1,4 @@ -#include "pbrlib/genglsl/lib/mx_refractionindex.glsl" +#include "pbrlib/genglsl/lib/mx_refraction_index.glsl" void mx_complex_ior(vec3 ior, vec3 extinction, out vec3 reflectivity, out vec3 edgecolor) { diff --git a/documents/Libraries/pbrlib/genglsl/mx_conductorbrdf.glsl b/libraries/pbrlib/genglsl/mx_conductor_brdf.glsl similarity index 74% rename from documents/Libraries/pbrlib/genglsl/mx_conductorbrdf.glsl rename to libraries/pbrlib/genglsl/mx_conductor_brdf.glsl index c78a4ef9b7..50c49b1e92 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_conductorbrdf.glsl +++ b/libraries/pbrlib/genglsl/mx_conductor_brdf.glsl @@ -1,7 +1,7 @@ #include "pbrlib/genglsl/lib/mx_bsdfs.glsl" -#include "pbrlib/genglsl/lib/mx_refractionindex.glsl" +#include "pbrlib/genglsl/lib/mx_refraction_index.glsl" -void mx_conductorbrdf_reflection(vec3 L, vec3 V, float weight, vec3 reflectivity, vec3 edgecolor, roughnessinfo roughness, vec3 N, vec3 X, int distribution, out BSDF result) +void mx_conductor_brdf_reflection(vec3 L, vec3 V, float weight, vec3 reflectivity, vec3 edgecolor, roughnessinfo roughness, vec3 N, vec3 X, int distribution, out BSDF result) { if (weight < M_FLOAT_EPS) { @@ -36,7 +36,7 @@ void mx_conductorbrdf_reflection(vec3 L, vec3 V, float weight, vec3 reflectivity result = F * D * G / (4 * NdotV); } -void mx_conductorbrdf_indirect(vec3 V, float weight, vec3 reflectivity, vec3 edgecolor, roughnessinfo roughness, vec3 N, vec3 X, int distribution, out vec3 result) +void mx_conductor_brdf_indirect(vec3 V, float weight, vec3 reflectivity, vec3 edgecolor, roughnessinfo roughness, vec3 N, vec3 X, int distribution, out vec3 result) { if (weight < M_FLOAT_EPS) { diff --git a/documents/Libraries/pbrlib/genglsl/mx_dielectricbrdf.glsl b/libraries/pbrlib/genglsl/mx_dielectric_brdf.glsl similarity index 77% rename from documents/Libraries/pbrlib/genglsl/mx_dielectricbrdf.glsl rename to libraries/pbrlib/genglsl/mx_dielectric_brdf.glsl index 82418c7485..9cd8ca5566 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_dielectricbrdf.glsl +++ b/libraries/pbrlib/genglsl/mx_dielectric_brdf.glsl @@ -1,6 +1,6 @@ #include "pbrlib/genglsl/lib/mx_bsdfs.glsl" -void mx_dielectricbrdf_reflection(vec3 L, vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) +void mx_dielectric_brdf_reflection(vec3 L, vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) { if (weight < M_FLOAT_EPS) { @@ -33,7 +33,7 @@ void mx_dielectricbrdf_reflection(vec3 L, vec3 V, float weight, vec3 tint, float + base * (1.0 - F); // Base layer reflection attenuated by top fresnel } -void mx_dielectricbrdf_transmission(vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) +void mx_dielectric_brdf_transmission(vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) { if (weight < M_FLOAT_EPS) { @@ -53,7 +53,7 @@ void mx_dielectricbrdf_transmission(vec3 V, float weight, vec3 tint, float ior, result = base * (1.0 - F); // Base layer transmission attenuated by top fresnel } -void mx_dielectricbrdf_indirect(vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) +void mx_dielectric_brdf_indirect(vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) { if (weight < M_FLOAT_EPS) { diff --git a/libraries/pbrlib/genglsl/mx_dielectric_btdf.glsl b/libraries/pbrlib/genglsl/mx_dielectric_btdf.glsl new file mode 100644 index 0000000000..fb9b25dce1 --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_dielectric_btdf.glsl @@ -0,0 +1,5 @@ +void mx_dielectric_btdf_transmission(vec3 V, float weight, vec3 tint, float ior, roughnessinfo roughness, vec3 normal, vec3 tangent, int distribution, VDF interior, out BSDF result) +{ + // TODO: Attenuate the transmission based on roughness and interior VDF + result = tint * weight; +} diff --git a/documents/Libraries/pbrlib/genglsl/mx_diffusebrdf.glsl b/libraries/pbrlib/genglsl/mx_diffuse_brdf.glsl similarity index 68% rename from documents/Libraries/pbrlib/genglsl/mx_diffusebrdf.glsl rename to libraries/pbrlib/genglsl/mx_diffuse_brdf.glsl index 461343677d..1b32e2e952 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_diffusebrdf.glsl +++ b/libraries/pbrlib/genglsl/mx_diffuse_brdf.glsl @@ -1,6 +1,6 @@ #include "pbrlib/genglsl/lib/mx_bsdfs.glsl" -void mx_diffusebrdf_reflection(vec3 L, vec3 V, float weight, vec3 color, float roughness, vec3 normal, out BSDF result) +void mx_diffuse_brdf_reflection(vec3 L, vec3 V, float weight, vec3 color, float roughness, vec3 normal, out BSDF result) { float NdotL = dot(L, normal); if (NdotL <= 0.0 || weight < M_FLOAT_EPS) @@ -16,7 +16,7 @@ void mx_diffusebrdf_reflection(vec3 L, vec3 V, float weight, vec3 color, float r } } -void mx_diffusebrdf_indirect(vec3 V, float weight, vec3 color, float roughness, vec3 normal, out vec3 result) +void mx_diffuse_brdf_indirect(vec3 V, float weight, vec3 color, float roughness, vec3 normal, out vec3 result) { if (weight < M_FLOAT_EPS) { diff --git a/documents/Libraries/pbrlib/genglsl/mx_diffusebtdf.glsl b/libraries/pbrlib/genglsl/mx_diffuse_btdf.glsl similarity index 76% rename from documents/Libraries/pbrlib/genglsl/mx_diffusebtdf.glsl rename to libraries/pbrlib/genglsl/mx_diffuse_btdf.glsl index a9d2f2b358..c2ab5e4c25 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_diffusebtdf.glsl +++ b/libraries/pbrlib/genglsl/mx_diffuse_btdf.glsl @@ -1,6 +1,6 @@ // We fake diffuse transmission by using diffuse reflection from the opposite side. // So this BTDF is really a BRDF. -void mx_diffusebtdf_reflection(vec3 L, vec3 V, float weight, vec3 color, vec3 normal, out BSDF result) +void mx_diffuse_btdf_reflection(vec3 L, vec3 V, float weight, vec3 color, vec3 normal, out BSDF result) { // Invert normal since we're transmitting light from the other side float NdotL = dot(L, -normal); @@ -13,7 +13,7 @@ void mx_diffusebtdf_reflection(vec3 L, vec3 V, float weight, vec3 color, vec3 no result = color * weight * NdotL * M_PI_INV; } -void mx_diffusebtdf_indirect(vec3 V, float weight, vec3 color, vec3 normal, out vec3 result) +void mx_diffuse_btdf_indirect(vec3 V, float weight, vec3 color, vec3 normal, out vec3 result) { if (weight < M_FLOAT_EPS) { diff --git a/documents/Libraries/pbrlib/genglsl/mx_directionallight.glsl b/libraries/pbrlib/genglsl/mx_directional_light.glsl similarity index 54% rename from documents/Libraries/pbrlib/genglsl/mx_directionallight.glsl rename to libraries/pbrlib/genglsl/mx_directional_light.glsl index f5c9afd536..634c5fe99f 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_directionallight.glsl +++ b/libraries/pbrlib/genglsl/mx_directional_light.glsl @@ -1,4 +1,4 @@ -void mx_directionallight(LightData light, vec3 position, out lightshader result) +void mx_directional_light(LightData light, vec3 position, out lightshader result) { result.direction = -light.direction; result.intensity = light.color * light.intensity; diff --git a/documents/Libraries/pbrlib/genglsl/mx_generalizedschlickbrdf.glsl b/libraries/pbrlib/genglsl/mx_generalized_schlick_brdf.glsl similarity index 75% rename from documents/Libraries/pbrlib/genglsl/mx_generalizedschlickbrdf.glsl rename to libraries/pbrlib/genglsl/mx_generalized_schlick_brdf.glsl index a4e539a968..b089c6b96f 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_generalizedschlickbrdf.glsl +++ b/libraries/pbrlib/genglsl/mx_generalized_schlick_brdf.glsl @@ -1,6 +1,6 @@ #include "pbrlib/genglsl/lib/mx_bsdfs.glsl" -void mx_generalizedschlickbrdf_reflection(vec3 L, vec3 V, float weight, vec3 color0, vec3 color90, float exponent, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) +void mx_generalized_schlick_brdf_reflection(vec3 L, vec3 V, float weight, vec3 color0, vec3 color90, float exponent, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) { if (weight < M_FLOAT_EPS) { @@ -34,7 +34,7 @@ void mx_generalizedschlickbrdf_reflection(vec3 L, vec3 V, float weight, vec3 col + base * (1.0 - avgF); // Base layer reflection attenuated by top fresnel } -void mx_generalizedschlickbrdf_transmission(vec3 V, float weight, vec3 color0, vec3 color90, float exponent, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) +void mx_generalized_schlick_brdf_transmission(vec3 V, float weight, vec3 color0, vec3 color90, float exponent, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) { if (weight < M_FLOAT_EPS) { @@ -55,7 +55,7 @@ void mx_generalizedschlickbrdf_transmission(vec3 V, float weight, vec3 color0, v result = base * (1.0 - avgF); // Base layer transmission attenuated by top fresnel } -void mx_generalizedschlickbrdf_indirect(vec3 V, float weight, vec3 color0, vec3 color90, float exponent, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) +void mx_generalized_schlick_brdf_indirect(vec3 V, float weight, vec3 color0, vec3 color90, float exponent, roughnessinfo roughness, vec3 N, vec3 X, int distribution, BSDF base, out BSDF result) { if (weight < M_FLOAT_EPS) { diff --git a/documents/Libraries/pbrlib/genglsl/mx_mixbsdf.glsl b/libraries/pbrlib/genglsl/mx_mix_bsdf.glsl similarity index 50% rename from documents/Libraries/pbrlib/genglsl/mx_mixbsdf.glsl rename to libraries/pbrlib/genglsl/mx_mix_bsdf.glsl index 3d0d4ab708..34edba0f4a 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_mixbsdf.glsl +++ b/libraries/pbrlib/genglsl/mx_mix_bsdf.glsl @@ -1,16 +1,16 @@ -void mx_mixbsdf_reflection(vec3 L, vec3 V, BSDF in1, BSDF in2, float weight, out BSDF result) +void mx_mix_bsdf_reflection(vec3 L, vec3 V, BSDF in1, BSDF in2, float weight, out BSDF result) { weight = clamp(weight, 0.0, 1.0); result = in1 * (1.0 - weight) + in2 * weight; } -void mx_mixbsdf_transmission(vec3 V, BSDF in1, BSDF in2, float weight, out BSDF result) +void mx_mix_bsdf_transmission(vec3 V, BSDF in1, BSDF in2, float weight, out BSDF result) { weight = clamp(weight, 0.0, 1.0); result = in1 * (1.0 - weight) + in2 * weight; } -void mx_mixbsdf_indirect(vec3 V, vec3 in1, vec3 in2, float weight, out vec3 result) +void mx_mix_bsdf_indirect(vec3 V, vec3 in1, vec3 in2, float weight, out vec3 result) { weight = clamp(weight, 0.0, 1.0); result = in1 * (1.0 - weight) + in2 * weight; diff --git a/documents/Libraries/pbrlib/genglsl/mx_mixedf.glsl b/libraries/pbrlib/genglsl/mx_mix_edf.glsl similarity index 53% rename from documents/Libraries/pbrlib/genglsl/mx_mixedf.glsl rename to libraries/pbrlib/genglsl/mx_mix_edf.glsl index 66dedd1f80..84e551ce9b 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_mixedf.glsl +++ b/libraries/pbrlib/genglsl/mx_mix_edf.glsl @@ -1,4 +1,4 @@ -void mx_mixedf(vec3 N, vec3 L, EDF in1, EDF in2, float weight, out EDF result) +void mx_mix_edf(vec3 N, vec3 L, EDF in1, EDF in2, float weight, out EDF result) { weight = clamp(weight, 0.0, 1.0); result = in1 * (1.0 - weight) + in2 * weight; diff --git a/libraries/pbrlib/genglsl/mx_multiply_bsdf_color.glsl b/libraries/pbrlib/genglsl/mx_multiply_bsdf_color.glsl new file mode 100644 index 0000000000..d776261675 --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_multiply_bsdf_color.glsl @@ -0,0 +1,14 @@ +void mx_multiply_bsdf_color_reflection(vec3 L, vec3 V, BSDF in1, vec3 in2, out BSDF result) +{ + result = in1 * clamp(in2, 0.0, 1.0); +} + +void mx_multiply_bsdf_color_transmission(vec3 V, BSDF in1, vec3 in2, out BSDF result) +{ + result = in1 * clamp(in2, 0.0, 1.0); +} + +void mx_multiply_bsdf_color_indirect(vec3 V, vec3 in1, vec3 in2, out vec3 result) +{ + result = in1 * clamp(in2, 0.0, 1.0); +} diff --git a/libraries/pbrlib/genglsl/mx_multiply_bsdf_float.glsl b/libraries/pbrlib/genglsl/mx_multiply_bsdf_float.glsl new file mode 100644 index 0000000000..abd64ca2bb --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_multiply_bsdf_float.glsl @@ -0,0 +1,14 @@ +void mx_multiply_bsdf_float_reflection(vec3 L, vec3 V, BSDF in1, float in2, out BSDF result) +{ + result = in1 * clamp(in2, 0.0, 1.0); +} + +void mx_multiply_bsdf_float_transmission(vec3 V, BSDF in1, float in2, out BSDF result) +{ + result = in1 * clamp(in2, 0.0, 1.0); +} + +void mx_multiply_bsdf_float_indirect(vec3 V, vec3 in1, float in2, out vec3 result) +{ + result = in1 * clamp(in2, 0.0, 1.0); +} diff --git a/libraries/pbrlib/genglsl/mx_multiply_edf_color.glsl b/libraries/pbrlib/genglsl/mx_multiply_edf_color.glsl new file mode 100644 index 0000000000..f516e39c69 --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_multiply_edf_color.glsl @@ -0,0 +1,4 @@ +void mx_multiply_edf_color(vec3 N, vec3 L, EDF in1, vec3 in2, out EDF result) +{ + result = in1 * in2; +} diff --git a/libraries/pbrlib/genglsl/mx_multiply_edf_float.glsl b/libraries/pbrlib/genglsl/mx_multiply_edf_float.glsl new file mode 100644 index 0000000000..fa61bff309 --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_multiply_edf_float.glsl @@ -0,0 +1,4 @@ +void mx_multiply_edf_float(vec3 N, vec3 L, EDF in1, float in2, out EDF result) +{ + result = in1 * in2; +} diff --git a/documents/Libraries/pbrlib/genglsl/mx_normalmap.glsl b/libraries/pbrlib/genglsl/mx_normalmap.glsl similarity index 71% rename from documents/Libraries/pbrlib/genglsl/mx_normalmap.glsl rename to libraries/pbrlib/genglsl/mx_normalmap.glsl index cedfd24e50..832e3afb99 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_normalmap.glsl +++ b/libraries/pbrlib/genglsl/mx_normalmap.glsl @@ -1,7 +1,7 @@ -void mx_normalmap(vec3 value, int tangentSpace, vec3 N, vec3 T, out vec3 result) +void mx_normalmap(vec3 value, int tangent_space, vec3 N, vec3 T, out vec3 result) { // Tangent space - if (tangentSpace == 1) + if (tangent_space == 1) { vec3 v = value * 2.0 - 1.0; vec3 B = normalize(cross(N, T)); diff --git a/documents/Libraries/pbrlib/genglsl/mx_pointlight.glsl b/libraries/pbrlib/genglsl/mx_point_light.glsl similarity index 58% rename from documents/Libraries/pbrlib/genglsl/mx_pointlight.glsl rename to libraries/pbrlib/genglsl/mx_point_light.glsl index aaaa225d22..c94b2225aa 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_pointlight.glsl +++ b/libraries/pbrlib/genglsl/mx_point_light.glsl @@ -1,8 +1,8 @@ -void mx_pointlight(LightData light, vec3 position, out lightshader result) +void mx_point_light(LightData light, vec3 position, out lightshader result) { result.direction = light.position - position; float distance = length(result.direction) + M_FLOAT_EPS; - float attenuation = pow(distance + 1.0, light.decayRate + M_FLOAT_EPS); + float attenuation = pow(distance + 1.0, light.decay_rate + M_FLOAT_EPS); result.intensity = light.color * light.intensity / attenuation; result.direction /= distance; } diff --git a/documents/Libraries/pbrlib/genglsl/mx_roughness_anisotropy.glsl b/libraries/pbrlib/genglsl/mx_roughness_anisotropy.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/mx_roughness_anisotropy.glsl rename to libraries/pbrlib/genglsl/mx_roughness_anisotropy.glsl diff --git a/documents/Libraries/pbrlib/genglsl/mx_roughness_dual.glsl b/libraries/pbrlib/genglsl/mx_roughness_dual.glsl similarity index 52% rename from documents/Libraries/pbrlib/genglsl/mx_roughness_dual.glsl rename to libraries/pbrlib/genglsl/mx_roughness_dual.glsl index 1de8ac53b6..b332000198 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_roughness_dual.glsl +++ b/libraries/pbrlib/genglsl/mx_roughness_dual.glsl @@ -1,16 +1,16 @@ -void mx_roughness_dual(float roughnessX, float roughnessY, out roughnessinfo result) +void mx_roughness_dual(float roughness_x, float roughness_y, out roughnessinfo result) { - if (roughnessY < 0.0) + if (roughness_y < 0.0) { - result.roughness = roughnessX; - result.alpha = clamp(roughnessX * roughnessX, M_FLOAT_EPS, 1.0); + result.roughness = roughness_x; + result.alpha = clamp(roughness_x * roughness_x, M_FLOAT_EPS, 1.0); result.alphaX = result.alpha; result.alphaY = result.alpha; } else { - float rx2 = roughnessX * roughnessX; - float ry2 = roughnessY * roughnessY; + float rx2 = roughness_x * roughness_x; + float ry2 = roughness_y * roughness_y; result.roughness = sqrt(rx2 + ry2); result.alpha = clamp(result.roughness * result.roughness, M_FLOAT_EPS, 1.0); result.alphaX = clamp(rx2, M_FLOAT_EPS, 1.0); diff --git a/libraries/pbrlib/genglsl/mx_sheen_brdf.glsl b/libraries/pbrlib/genglsl/mx_sheen_brdf.glsl new file mode 100644 index 0000000000..af2efacf1a --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_sheen_brdf.glsl @@ -0,0 +1,13 @@ +#include "pbrlib/genglsl/lib/mx_bsdfs.glsl" + +void mx_sheen_brdf_reflection(vec3 L, vec3 V, float weight, vec3 color, float roughness, vec3 normal, BSDF base, out BSDF result) +{ + // TODO: implement this + result = base; +} + +void mx_sheen_brdf_indirect(vec3 V, float weight, vec3 color, float roughness, vec3 normal, BSDF base, out vec3 result) +{ + // TODO: implement this + result = base; +} diff --git a/documents/Libraries/pbrlib/genglsl/mx_spotlight.glsl b/libraries/pbrlib/genglsl/mx_spot_light.glsl similarity index 59% rename from documents/Libraries/pbrlib/genglsl/mx_spotlight.glsl rename to libraries/pbrlib/genglsl/mx_spot_light.glsl index b61ec8dfa2..b3607844cd 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_spotlight.glsl +++ b/libraries/pbrlib/genglsl/mx_spot_light.glsl @@ -1,12 +1,12 @@ -void mx_spotlight(LightData light, vec3 position, out lightshader result) +void mx_spot_light(LightData light, vec3 position, out lightshader result) { result.direction = light.position - position; float distance = length(result.direction) + M_FLOAT_EPS; - float attenuation = pow(distance + 1.0, light.decayRate + M_FLOAT_EPS); + float attenuation = pow(distance + 1.0, light.decay_rate + M_FLOAT_EPS); result.intensity = light.color * light.intensity / attenuation; result.direction /= distance; - float low = min(light.innerConeAngle, light.outerConeAngle); - float high = light.innerConeAngle; + float low = min(light.inner_angle, light.outer_angle); + float high = light.inner_angle; float cosDir = dot(result.direction, -light.direction); float spotAttenuation = smoothstep(low, high, cosDir); result.intensity *= spotAttenuation; diff --git a/documents/Libraries/pbrlib/genglsl/mx_subsurfacebrdf.glsl b/libraries/pbrlib/genglsl/mx_subsurface_brdf.glsl similarity index 68% rename from documents/Libraries/pbrlib/genglsl/mx_subsurfacebrdf.glsl rename to libraries/pbrlib/genglsl/mx_subsurface_brdf.glsl index 88cc436e39..5b9d74b878 100644 --- a/documents/Libraries/pbrlib/genglsl/mx_subsurfacebrdf.glsl +++ b/libraries/pbrlib/genglsl/mx_subsurface_brdf.glsl @@ -1,5 +1,5 @@ // Fake with simple diffuse transmission -void mx_subsurfacebrdf_reflection(vec3 L, vec3 V, float weight, vec3 color, vec3 radius, float anisotropy, vec3 normal, out BSDF result) +void mx_subsurface_brdf_reflection(vec3 L, vec3 V, float weight, vec3 color, vec3 radius, float anisotropy, vec3 normal, out BSDF result) { // Invert normal since we're transmitting light from the other side float NdotL = dot(L, -normal); @@ -13,7 +13,7 @@ void mx_subsurfacebrdf_reflection(vec3 L, vec3 V, float weight, vec3 color, vec3 } // Fake with simple diffuse transmission -void mx_subsurfacebrdf_indirect(vec3 V, float weight, vec3 color, vec3 radius, float anisotropy, vec3 normal, out vec3 result) +void mx_subsurface_brdf_indirect(vec3 V, float weight, vec3 color, vec3 radius, float anisotropy, vec3 normal, out vec3 result) { if (weight < M_FLOAT_EPS) { diff --git a/libraries/pbrlib/genglsl/mx_uniform_edf.glsl b/libraries/pbrlib/genglsl/mx_uniform_edf.glsl new file mode 100644 index 0000000000..e96ad7f99c --- /dev/null +++ b/libraries/pbrlib/genglsl/mx_uniform_edf.glsl @@ -0,0 +1,4 @@ +void mx_uniform_edf(vec3 N, vec3 L, vec3 intensity, out EDF result) +{ + result = intensity; +} diff --git a/documents/Libraries/pbrlib/genglsl/ogsfx/mx_lighting_functions.glsl b/libraries/pbrlib/genglsl/ogsfx/mx_lighting_functions.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/ogsfx/mx_lighting_functions.glsl rename to libraries/pbrlib/genglsl/ogsfx/mx_lighting_functions.glsl diff --git a/documents/Libraries/pbrlib/genglsl/ogsfx/mx_lighting_uniforms.glsl b/libraries/pbrlib/genglsl/ogsfx/mx_lighting_uniforms.glsl similarity index 100% rename from documents/Libraries/pbrlib/genglsl/ogsfx/mx_lighting_uniforms.glsl rename to libraries/pbrlib/genglsl/ogsfx/mx_lighting_uniforms.glsl diff --git a/libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx b/libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx new file mode 100644 index 0000000000..cf69ceba2f --- /dev/null +++ b/libraries/pbrlib/genglsl/pbrlib_genglsl_impl.mtlx @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/Libraries/pbrlib/genosl/lib/mx_fresnel.osl b/libraries/pbrlib/genosl/lib/mx_fresnel.osl similarity index 100% rename from documents/Libraries/pbrlib/genosl/lib/mx_fresnel.osl rename to libraries/pbrlib/genosl/lib/mx_fresnel.osl diff --git a/documents/Libraries/pbrlib/genosl/lib/mx_refractionindex.osl b/libraries/pbrlib/genosl/lib/mx_refraction_index.osl similarity index 100% rename from documents/Libraries/pbrlib/genosl/lib/mx_refractionindex.osl rename to libraries/pbrlib/genosl/lib/mx_refraction_index.osl diff --git a/documents/Libraries/stdlib/genosl/mx_add.inline b/libraries/pbrlib/genosl/mx_add.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_add.inline rename to libraries/pbrlib/genosl/mx_add.inline diff --git a/documents/Libraries/pbrlib/genosl/mx_backfacing_boolean.inline b/libraries/pbrlib/genosl/mx_backfacing_boolean.inline similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_backfacing_boolean.inline rename to libraries/pbrlib/genosl/mx_backfacing_boolean.inline diff --git a/documents/Libraries/pbrlib/genosl/mx_backfacing_float.inline b/libraries/pbrlib/genosl/mx_backfacing_float.inline similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_backfacing_float.inline rename to libraries/pbrlib/genosl/mx_backfacing_float.inline diff --git a/documents/Libraries/pbrlib/genosl/mx_backfacing_integer.inline b/libraries/pbrlib/genosl/mx_backfacing_integer.inline similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_backfacing_integer.inline rename to libraries/pbrlib/genosl/mx_backfacing_integer.inline diff --git a/documents/Libraries/pbrlib/genosl/mx_complex_ior.osl b/libraries/pbrlib/genosl/mx_complex_ior.osl similarity index 77% rename from documents/Libraries/pbrlib/genosl/mx_complex_ior.osl rename to libraries/pbrlib/genosl/mx_complex_ior.osl index 125936dd33..c3cb9fcdee 100644 --- a/documents/Libraries/pbrlib/genosl/mx_complex_ior.osl +++ b/libraries/pbrlib/genosl/mx_complex_ior.osl @@ -1,4 +1,4 @@ -#include "pbrlib/genosl/lib/mx_refractionindex.osl" +#include "pbrlib/genosl/lib/mx_refraction_index.osl" void mx_complex_ior(vector ior, vector extinction, output color reflectivity, output color edgecolor) { diff --git a/documents/Libraries/pbrlib/genosl/mx_conductorbrdf.osl b/libraries/pbrlib/genosl/mx_conductor_brdf.osl similarity index 76% rename from documents/Libraries/pbrlib/genosl/mx_conductorbrdf.osl rename to libraries/pbrlib/genosl/mx_conductor_brdf.osl index fc2a552319..0ffb86e8a7 100644 --- a/documents/Libraries/pbrlib/genosl/mx_conductorbrdf.osl +++ b/libraries/pbrlib/genosl/mx_conductor_brdf.osl @@ -1,7 +1,7 @@ -#include "pbrlib/genosl/lib/mx_refractionindex.osl" +#include "pbrlib/genosl/lib/mx_refraction_index.osl" #include "pbrlib/genosl/lib/mx_fresnel.osl" -void mx_conductorbrdf(float weight, color reflectivity, color edgecolor, roughnessinfo roughness, normal N, vector U, string distribution, output BSDF result) +void mx_conductor_brdf(float weight, color reflectivity, color edgecolor, roughnessinfo roughness, normal N, vector U, string distribution, output BSDF result) { if (weight < M_FLOAT_EPS) { diff --git a/documents/Libraries/pbrlib/genosl/mx_dielectricbrdf.osl b/libraries/pbrlib/genosl/mx_dielectric_brdf.osl similarity index 79% rename from documents/Libraries/pbrlib/genosl/mx_dielectricbrdf.osl rename to libraries/pbrlib/genosl/mx_dielectric_brdf.osl index fac1e738f0..4f8aedcc4b 100644 --- a/documents/Libraries/pbrlib/genosl/mx_dielectricbrdf.osl +++ b/libraries/pbrlib/genosl/mx_dielectric_brdf.osl @@ -1,6 +1,6 @@ #include "pbrlib/genosl/lib/mx_fresnel.osl" -void mx_dielectricbrdf(float weight, color reflectance, float ior, roughnessinfo roughness, normal N, vector U, string distribution, BSDF base, output BSDF result) +void mx_dielectric_brdf(float weight, color reflectance, float ior, roughnessinfo roughness, normal N, vector U, string distribution, BSDF base, output BSDF result) { if (weight < M_FLOAT_EPS) { diff --git a/libraries/pbrlib/genosl/mx_dielectric_btdf.osl b/libraries/pbrlib/genosl/mx_dielectric_btdf.osl new file mode 100644 index 0000000000..3b3faf9710 --- /dev/null +++ b/libraries/pbrlib/genosl/mx_dielectric_btdf.osl @@ -0,0 +1,4 @@ +void mx_dielectric_btdf(float weight, color _color, float ior, roughnessinfo roughness, vector _normal, vector _tangent, string distribution, VDF interior, output BSDF result) +{ + result = _color * weight * microfacet(distribution, _normal, _tangent, roughness.alphaX, roughness.alphaY, ior, true) + weight * interior; +} diff --git a/documents/Libraries/pbrlib/genosl/mx_diffusebrdf.inline b/libraries/pbrlib/genosl/mx_diffuse_brdf.inline similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_diffusebrdf.inline rename to libraries/pbrlib/genosl/mx_diffuse_brdf.inline diff --git a/documents/Libraries/pbrlib/genosl/mx_diffusebtdf.inline b/libraries/pbrlib/genosl/mx_diffuse_btdf.inline similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_diffusebtdf.inline rename to libraries/pbrlib/genosl/mx_diffuse_btdf.inline diff --git a/documents/Libraries/pbrlib/genosl/mx_generalizedschlickbrdf.osl b/libraries/pbrlib/genosl/mx_generalized_schlick_brdf.osl similarity index 78% rename from documents/Libraries/pbrlib/genosl/mx_generalizedschlickbrdf.osl rename to libraries/pbrlib/genosl/mx_generalized_schlick_brdf.osl index 681f53d871..aa66d4732b 100644 --- a/documents/Libraries/pbrlib/genosl/mx_generalizedschlickbrdf.osl +++ b/libraries/pbrlib/genosl/mx_generalized_schlick_brdf.osl @@ -1,6 +1,6 @@ #include "pbrlib/genosl/lib/mx_fresnel.osl" -void mx_generalizedschlickbrdf(float weight, color color0, color color90, float exponent, roughnessinfo roughness, normal N, vector U, string distribution, BSDF base, output BSDF result) +void mx_generalized_schlick_brdf(float weight, color color0, color color90, float exponent, roughnessinfo roughness, normal N, vector U, string distribution, BSDF base, output BSDF result) { if (weight < M_FLOAT_EPS) { diff --git a/documents/Libraries/stdlib/genglsl/mx_mix.inline b/libraries/pbrlib/genosl/mx_mix.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_mix.inline rename to libraries/pbrlib/genosl/mx_mix.inline diff --git a/libraries/pbrlib/genosl/mx_multiply_bsdf.inline b/libraries/pbrlib/genosl/mx_multiply_bsdf.inline new file mode 100644 index 0000000000..50519f9d23 --- /dev/null +++ b/libraries/pbrlib/genosl/mx_multiply_bsdf.inline @@ -0,0 +1 @@ +{{in1}} * clamp({{in2}}, 0.0, 1.0) diff --git a/documents/Libraries/stdlib/genglsl/mx_multiply.inline b/libraries/pbrlib/genosl/mx_multiply_edf.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_multiply.inline rename to libraries/pbrlib/genosl/mx_multiply_edf.inline diff --git a/documents/Libraries/pbrlib/genosl/mx_normalmap.osl b/libraries/pbrlib/genosl/mx_normalmap.osl similarity index 73% rename from documents/Libraries/pbrlib/genosl/mx_normalmap.osl rename to libraries/pbrlib/genosl/mx_normalmap.osl index c6e1664c66..4f758cd51f 100644 --- a/documents/Libraries/pbrlib/genosl/mx_normalmap.osl +++ b/libraries/pbrlib/genosl/mx_normalmap.osl @@ -1,7 +1,7 @@ -void mx_normalmap(vector value, int tangentSpace, vector N, vector U, output vector result) +void mx_normalmap(vector value, int tangent_space, vector N, vector U, output vector result) { // Tangent space - if (tangentSpace == 1) + if (tangent_space == 1) { vector v = value * 2.0 - 1.0; vector T = normalize(U - dot(U, N) * N); diff --git a/documents/Libraries/pbrlib/genosl/mx_roughness_anisotropy.osl b/libraries/pbrlib/genosl/mx_roughness_anisotropy.osl similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_roughness_anisotropy.osl rename to libraries/pbrlib/genosl/mx_roughness_anisotropy.osl diff --git a/documents/Libraries/pbrlib/genosl/mx_roughness_dual.osl b/libraries/pbrlib/genosl/mx_roughness_dual.osl similarity index 51% rename from documents/Libraries/pbrlib/genosl/mx_roughness_dual.osl rename to libraries/pbrlib/genosl/mx_roughness_dual.osl index 1e1a04e11a..f5c04f47e0 100644 --- a/documents/Libraries/pbrlib/genosl/mx_roughness_dual.osl +++ b/libraries/pbrlib/genosl/mx_roughness_dual.osl @@ -1,16 +1,16 @@ -void mx_roughness_dual(float roughnessX, float roughnessY, output roughnessinfo result) +void mx_roughness_dual(float roughness_x, float roughness_y, output roughnessinfo result) { - if (roughnessY < 0.0) + if (roughness_y < 0.0) { - result.roughness = roughnessX; - result.alpha = clamp(roughnessX * roughnessX, M_FLOAT_EPS, 1.0); + result.roughness = roughness_x; + result.alpha = clamp(roughness_x * roughness_x, M_FLOAT_EPS, 1.0); result.alphaX = result.alpha; result.alphaY = result.alpha; } else { - float rx2 = roughnessX * roughnessX; - float ry2 = roughnessY * roughnessY; + float rx2 = roughness_x * roughness_x; + float ry2 = roughness_y * roughness_y; result.roughness = sqrt(rx2 + ry2); result.alpha = clamp(result.roughness * result.roughness, M_FLOAT_EPS, 1.0); result.alphaX = clamp(rx2, M_FLOAT_EPS, 1.0); diff --git a/libraries/pbrlib/genosl/mx_sheen_brdf.osl b/libraries/pbrlib/genosl/mx_sheen_brdf.osl new file mode 100644 index 0000000000..48a1272c4d --- /dev/null +++ b/libraries/pbrlib/genosl/mx_sheen_brdf.osl @@ -0,0 +1,5 @@ +void mx_sheen_brdf(float weight, color _color, float roughness, vector _normal, BSDF base, output BSDF result) +{ + // TODO: implement this + result = base; +} diff --git a/libraries/pbrlib/genosl/mx_subsurface_brdf.osl b/libraries/pbrlib/genosl/mx_subsurface_brdf.osl new file mode 100644 index 0000000000..1d2bd2c605 --- /dev/null +++ b/libraries/pbrlib/genosl/mx_subsurface_brdf.osl @@ -0,0 +1,5 @@ +void mx_subsurface_brdf(float weight, color _color, vector radius, float anisotropy, vector _normal, output BSDF result) +{ + // TODO: implement this properly + result = _color * weight * translucent(_normal); +} diff --git a/documents/Libraries/pbrlib/genosl/mx_surface.osl b/libraries/pbrlib/genosl/mx_surface.osl similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_surface.osl rename to libraries/pbrlib/genosl/mx_surface.osl diff --git a/documents/Libraries/pbrlib/genosl/mx_uniformedf.inline b/libraries/pbrlib/genosl/mx_uniform_edf.inline similarity index 100% rename from documents/Libraries/pbrlib/genosl/mx_uniformedf.inline rename to libraries/pbrlib/genosl/mx_uniform_edf.inline diff --git a/libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx b/libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx new file mode 100644 index 0000000000..ff49ca1870 --- /dev/null +++ b/libraries/pbrlib/genosl/pbrlib_genosl_impl.mtlx @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/Libraries/pbrlib/pbrlib_defs.mtlx b/libraries/pbrlib/pbrlib_defs.mtlx similarity index 54% rename from documents/Libraries/pbrlib/pbrlib_defs.mtlx rename to libraries/pbrlib/pbrlib_defs.mtlx index cc2f779d99..3188fea819 100644 --- a/documents/Libraries/pbrlib/pbrlib_defs.mtlx +++ b/libraries/pbrlib/pbrlib_defs.mtlx @@ -1,4 +1,11 @@ + + @@ -11,10 +18,10 @@ - @@ -23,10 +30,10 @@ - @@ -34,10 +41,10 @@ - @@ -49,10 +56,10 @@ - @@ -65,10 +72,10 @@ - @@ -81,10 +88,10 @@ - @@ -98,10 +105,10 @@ - @@ -111,10 +118,10 @@ - @@ -124,54 +131,66 @@ - - - - + + + + + + + + + + + + + + - + + + + - - - + + - - - - + + + - - - - - - + + + + + + + - - - - - - - - + - @@ -229,66 +237,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - + diff --git a/libraries/pbrlib/pbrlib_ng.mtlx b/libraries/pbrlib/pbrlib_ng.mtlx new file mode 100644 index 0000000000..7617d9ff18 --- /dev/null +++ b/libraries/pbrlib/pbrlib_ng.mtlx @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/documents/Libraries/stdlib/genglsl/lib/mx_get_target_uv_noop.glsl b/libraries/stdlib/genglsl/lib/mx_get_target_uv_noop.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/lib/mx_get_target_uv_noop.glsl rename to libraries/stdlib/genglsl/lib/mx_get_target_uv_noop.glsl diff --git a/documents/Libraries/stdlib/genglsl/lib/mx_get_target_uv_vflip.glsl b/libraries/stdlib/genglsl/lib/mx_get_target_uv_vflip.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/lib/mx_get_target_uv_vflip.glsl rename to libraries/stdlib/genglsl/lib/mx_get_target_uv_vflip.glsl diff --git a/libraries/stdlib/genglsl/lib/mx_noise.glsl b/libraries/stdlib/genglsl/lib/mx_noise.glsl new file mode 100644 index 0000000000..6afcc896b5 --- /dev/null +++ b/libraries/stdlib/genglsl/lib/mx_noise.glsl @@ -0,0 +1,48 @@ +/* +ShaderX Noise Library. + +NOTE : 2019-03-13 + The implementation is not available at this time, + but will be made available as soon as possible. + +*/ + +float mx_perlin_noise_float(vec2 p) +{ + return 1.0; +} + +float mx_perlin_noise_float(vec3 p) +{ + return 1.0; +} + +vec3 mx_perlin_noise_vec3(vec2 p) +{ + return vec3(1.0); +} + +vec3 mx_perlin_noise_vec3(vec3 p) +{ + return vec3(1.0); +} + +float mx_cell_noise_float(vec2 p) +{ + return 1.0; +} + +float mx_cell_noise_float(vec3 p) +{ + return 1.0; +} + +float mx_fractal_noice_float(vec3 p, int octaves, float lacunarity, float diminish) +{ + return 1.0; +} + +vec3 mx_fractal_noice_vec3(vec3 p, int octaves, float lacunarity, float diminish) +{ + return vec3(1.0); +} diff --git a/documents/Libraries/stdlib/genglsl/lib/mx_sampling.glsl b/libraries/stdlib/genglsl/lib/mx_sampling.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/lib/mx_sampling.glsl rename to libraries/stdlib/genglsl/lib/mx_sampling.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_aastep.glsl b/libraries/stdlib/genglsl/mx_aastep.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_aastep.glsl rename to libraries/stdlib/genglsl/mx_aastep.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_absval.inline b/libraries/stdlib/genglsl/mx_absval.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_absval.inline rename to libraries/stdlib/genglsl/mx_absval.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_acescg_to_linear_color3.glsl b/libraries/stdlib/genglsl/mx_acescg_to_linear_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_acescg_to_linear_color3.glsl rename to libraries/stdlib/genglsl/mx_acescg_to_linear_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_acescg_to_linear_color4.glsl b/libraries/stdlib/genglsl/mx_acescg_to_linear_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_acescg_to_linear_color4.glsl rename to libraries/stdlib/genglsl/mx_acescg_to_linear_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_acos.inline b/libraries/stdlib/genglsl/mx_acos.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_acos.inline rename to libraries/stdlib/genglsl/mx_acos.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_add.inline b/libraries/stdlib/genglsl/mx_add.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_add.inline rename to libraries/stdlib/genglsl/mx_add.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_asin.inline b/libraries/stdlib/genglsl/mx_asin.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_asin.inline rename to libraries/stdlib/genglsl/mx_asin.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_atan2.inline b/libraries/stdlib/genglsl/mx_atan2.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_atan2.inline rename to libraries/stdlib/genglsl/mx_atan2.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_burn.inline b/libraries/stdlib/genglsl/mx_burn.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_burn.inline rename to libraries/stdlib/genglsl/mx_burn.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_ceil.inline b/libraries/stdlib/genglsl/mx_ceil.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ceil.inline rename to libraries/stdlib/genglsl/mx_ceil.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_cellnoise2d_float.glsl b/libraries/stdlib/genglsl/mx_cellnoise2d_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_cellnoise2d_float.glsl rename to libraries/stdlib/genglsl/mx_cellnoise2d_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_cellnoise3d_float.glsl b/libraries/stdlib/genglsl/mx_cellnoise3d_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_cellnoise3d_float.glsl rename to libraries/stdlib/genglsl/mx_cellnoise3d_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_clamp.inline b/libraries/stdlib/genglsl/mx_clamp.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_clamp.inline rename to libraries/stdlib/genglsl/mx_clamp.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_constant.inline b/libraries/stdlib/genglsl/mx_constant.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_constant.inline rename to libraries/stdlib/genglsl/mx_constant.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_cos.inline b/libraries/stdlib/genglsl/mx_cos.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_cos.inline rename to libraries/stdlib/genglsl/mx_cos.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_crossproduct.inline b/libraries/stdlib/genglsl/mx_crossproduct.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_crossproduct.inline rename to libraries/stdlib/genglsl/mx_crossproduct.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_determinant.inline b/libraries/stdlib/genglsl/mx_determinant.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_determinant.inline rename to libraries/stdlib/genglsl/mx_determinant.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_difference.inline b/libraries/stdlib/genglsl/mx_difference.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_difference.inline rename to libraries/stdlib/genglsl/mx_difference.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_disjointover_color2.inline b/libraries/stdlib/genglsl/mx_disjointover_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_disjointover_color2.inline rename to libraries/stdlib/genglsl/mx_disjointover_color2.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_disjointover_color4.inline b/libraries/stdlib/genglsl/mx_disjointover_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_disjointover_color4.inline rename to libraries/stdlib/genglsl/mx_disjointover_color4.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_divide.inline b/libraries/stdlib/genglsl/mx_divide.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_divide.inline rename to libraries/stdlib/genglsl/mx_divide.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_dodge.inline b/libraries/stdlib/genglsl/mx_dodge.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_dodge.inline rename to libraries/stdlib/genglsl/mx_dodge.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_dot.inline b/libraries/stdlib/genglsl/mx_dot.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_dot.inline rename to libraries/stdlib/genglsl/mx_dot.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_dotproduct.inline b/libraries/stdlib/genglsl/mx_dotproduct.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_dotproduct.inline rename to libraries/stdlib/genglsl/mx_dotproduct.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_exp.inline b/libraries/stdlib/genglsl/mx_exp.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_exp.inline rename to libraries/stdlib/genglsl/mx_exp.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_floor.inline b/libraries/stdlib/genglsl/mx_floor.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_floor.inline rename to libraries/stdlib/genglsl/mx_floor.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_fractal3d_fa_vector2.glsl b/libraries/stdlib/genglsl/mx_fractal3d_fa_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_fractal3d_fa_vector2.glsl rename to libraries/stdlib/genglsl/mx_fractal3d_fa_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_fractal3d_fa_vector3.glsl b/libraries/stdlib/genglsl/mx_fractal3d_fa_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_fractal3d_fa_vector3.glsl rename to libraries/stdlib/genglsl/mx_fractal3d_fa_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_fractal3d_fa_vector4.glsl b/libraries/stdlib/genglsl/mx_fractal3d_fa_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_fractal3d_fa_vector4.glsl rename to libraries/stdlib/genglsl/mx_fractal3d_fa_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_fractal3d_float.glsl b/libraries/stdlib/genglsl/mx_fractal3d_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_fractal3d_float.glsl rename to libraries/stdlib/genglsl/mx_fractal3d_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_fractal3d_vector2.glsl b/libraries/stdlib/genglsl/mx_fractal3d_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_fractal3d_vector2.glsl rename to libraries/stdlib/genglsl/mx_fractal3d_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_fractal3d_vector3.glsl b/libraries/stdlib/genglsl/mx_fractal3d_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_fractal3d_vector3.glsl rename to libraries/stdlib/genglsl/mx_fractal3d_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_fractal3d_vector4.glsl b/libraries/stdlib/genglsl/mx_fractal3d_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_fractal3d_vector4.glsl rename to libraries/stdlib/genglsl/mx_fractal3d_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_gamma18_to_linear_color3.glsl b/libraries/stdlib/genglsl/mx_gamma18_to_linear_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_gamma18_to_linear_color3.glsl rename to libraries/stdlib/genglsl/mx_gamma18_to_linear_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_gamma18_to_linear_color4.glsl b/libraries/stdlib/genglsl/mx_gamma18_to_linear_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_gamma18_to_linear_color4.glsl rename to libraries/stdlib/genglsl/mx_gamma18_to_linear_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_gamma22_to_linear_color3.glsl b/libraries/stdlib/genglsl/mx_gamma22_to_linear_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_gamma22_to_linear_color3.glsl rename to libraries/stdlib/genglsl/mx_gamma22_to_linear_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_gamma22_to_linear_color4.glsl b/libraries/stdlib/genglsl/mx_gamma22_to_linear_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_gamma22_to_linear_color4.glsl rename to libraries/stdlib/genglsl/mx_gamma22_to_linear_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_gamma24_to_linear_color3.glsl b/libraries/stdlib/genglsl/mx_gamma24_to_linear_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_gamma24_to_linear_color3.glsl rename to libraries/stdlib/genglsl/mx_gamma24_to_linear_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_gamma24_to_linear_color4.glsl b/libraries/stdlib/genglsl/mx_gamma24_to_linear_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_gamma24_to_linear_color4.glsl rename to libraries/stdlib/genglsl/mx_gamma24_to_linear_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_hsv.glsl b/libraries/stdlib/genglsl/mx_hsv.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_hsv.glsl rename to libraries/stdlib/genglsl/mx_hsv.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_hsvtorgb_color3.glsl b/libraries/stdlib/genglsl/mx_hsvtorgb_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_hsvtorgb_color3.glsl rename to libraries/stdlib/genglsl/mx_hsvtorgb_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl b/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl rename to libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_image_color2.glsl b/libraries/stdlib/genglsl/mx_image_color2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_image_color2.glsl rename to libraries/stdlib/genglsl/mx_image_color2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_image_color3.glsl b/libraries/stdlib/genglsl/mx_image_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_image_color3.glsl rename to libraries/stdlib/genglsl/mx_image_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_image_color4.glsl b/libraries/stdlib/genglsl/mx_image_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_image_color4.glsl rename to libraries/stdlib/genglsl/mx_image_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_image_float.glsl b/libraries/stdlib/genglsl/mx_image_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_image_float.glsl rename to libraries/stdlib/genglsl/mx_image_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_image_vector2.glsl b/libraries/stdlib/genglsl/mx_image_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_image_vector2.glsl rename to libraries/stdlib/genglsl/mx_image_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_image_vector3.glsl b/libraries/stdlib/genglsl/mx_image_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_image_vector3.glsl rename to libraries/stdlib/genglsl/mx_image_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_image_vector4.glsl b/libraries/stdlib/genglsl/mx_image_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_image_vector4.glsl rename to libraries/stdlib/genglsl/mx_image_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_in_color2.inline b/libraries/stdlib/genglsl/mx_in_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_in_color2.inline rename to libraries/stdlib/genglsl/mx_in_color2.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_in_color4.inline b/libraries/stdlib/genglsl/mx_in_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_in_color4.inline rename to libraries/stdlib/genglsl/mx_in_color4.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_inside.inline b/libraries/stdlib/genglsl/mx_inside.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_inside.inline rename to libraries/stdlib/genglsl/mx_inside.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_invert.inline b/libraries/stdlib/genglsl/mx_invert.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_invert.inline rename to libraries/stdlib/genglsl/mx_invert.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_invertM.inline b/libraries/stdlib/genglsl/mx_invertM.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_invertM.inline rename to libraries/stdlib/genglsl/mx_invertM.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_ln.inline b/libraries/stdlib/genglsl/mx_ln.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ln.inline rename to libraries/stdlib/genglsl/mx_ln.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_luminance_color3.glsl b/libraries/stdlib/genglsl/mx_luminance_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_luminance_color3.glsl rename to libraries/stdlib/genglsl/mx_luminance_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_luminance_color4.glsl b/libraries/stdlib/genglsl/mx_luminance_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_luminance_color4.glsl rename to libraries/stdlib/genglsl/mx_luminance_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_magnitude.inline b/libraries/stdlib/genglsl/mx_magnitude.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_magnitude.inline rename to libraries/stdlib/genglsl/mx_magnitude.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_mask_color2.inline b/libraries/stdlib/genglsl/mx_mask_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_mask_color2.inline rename to libraries/stdlib/genglsl/mx_mask_color2.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_mask_color4.inline b/libraries/stdlib/genglsl/mx_mask_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_mask_color4.inline rename to libraries/stdlib/genglsl/mx_mask_color4.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_matte_color2.inline b/libraries/stdlib/genglsl/mx_matte_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_matte_color2.inline rename to libraries/stdlib/genglsl/mx_matte_color2.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_matte_color4.inline b/libraries/stdlib/genglsl/mx_matte_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_matte_color4.inline rename to libraries/stdlib/genglsl/mx_matte_color4.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_max.inline b/libraries/stdlib/genglsl/mx_max.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_max.inline rename to libraries/stdlib/genglsl/mx_max.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_min.inline b/libraries/stdlib/genglsl/mx_min.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_min.inline rename to libraries/stdlib/genglsl/mx_min.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_minus.inline b/libraries/stdlib/genglsl/mx_minus.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_minus.inline rename to libraries/stdlib/genglsl/mx_minus.inline diff --git a/documents/Libraries/stdlib/genosl/mx_mix.inline b/libraries/stdlib/genglsl/mx_mix.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_mix.inline rename to libraries/stdlib/genglsl/mx_mix.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_modulo.inline b/libraries/stdlib/genglsl/mx_modulo.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_modulo.inline rename to libraries/stdlib/genglsl/mx_modulo.inline diff --git a/documents/Libraries/stdlib/genosl/mx_multiply.inline b/libraries/stdlib/genglsl/mx_multiply.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_multiply.inline rename to libraries/stdlib/genglsl/mx_multiply.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_fa_vector2.glsl b/libraries/stdlib/genglsl/mx_noise2d_fa_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise2d_fa_vector2.glsl rename to libraries/stdlib/genglsl/mx_noise2d_fa_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_fa_vector3.glsl b/libraries/stdlib/genglsl/mx_noise2d_fa_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise2d_fa_vector3.glsl rename to libraries/stdlib/genglsl/mx_noise2d_fa_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_fa_vector4.glsl b/libraries/stdlib/genglsl/mx_noise2d_fa_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise2d_fa_vector4.glsl rename to libraries/stdlib/genglsl/mx_noise2d_fa_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_float.glsl b/libraries/stdlib/genglsl/mx_noise2d_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise2d_float.glsl rename to libraries/stdlib/genglsl/mx_noise2d_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_vector2.glsl b/libraries/stdlib/genglsl/mx_noise2d_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise2d_vector2.glsl rename to libraries/stdlib/genglsl/mx_noise2d_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_vector3.glsl b/libraries/stdlib/genglsl/mx_noise2d_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise2d_vector3.glsl rename to libraries/stdlib/genglsl/mx_noise2d_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise2d_vector4.glsl b/libraries/stdlib/genglsl/mx_noise2d_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise2d_vector4.glsl rename to libraries/stdlib/genglsl/mx_noise2d_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise3d_fa_vector2.glsl b/libraries/stdlib/genglsl/mx_noise3d_fa_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise3d_fa_vector2.glsl rename to libraries/stdlib/genglsl/mx_noise3d_fa_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise3d_fa_vector3.glsl b/libraries/stdlib/genglsl/mx_noise3d_fa_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise3d_fa_vector3.glsl rename to libraries/stdlib/genglsl/mx_noise3d_fa_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise3d_fa_vector4.glsl b/libraries/stdlib/genglsl/mx_noise3d_fa_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise3d_fa_vector4.glsl rename to libraries/stdlib/genglsl/mx_noise3d_fa_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise3d_float.glsl b/libraries/stdlib/genglsl/mx_noise3d_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise3d_float.glsl rename to libraries/stdlib/genglsl/mx_noise3d_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise3d_vector2.glsl b/libraries/stdlib/genglsl/mx_noise3d_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise3d_vector2.glsl rename to libraries/stdlib/genglsl/mx_noise3d_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise3d_vector3.glsl b/libraries/stdlib/genglsl/mx_noise3d_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise3d_vector3.glsl rename to libraries/stdlib/genglsl/mx_noise3d_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_noise3d_vector4.glsl b/libraries/stdlib/genglsl/mx_noise3d_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_noise3d_vector4.glsl rename to libraries/stdlib/genglsl/mx_noise3d_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_normalize.inline b/libraries/stdlib/genglsl/mx_normalize.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_normalize.inline rename to libraries/stdlib/genglsl/mx_normalize.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_out_color2.inline b/libraries/stdlib/genglsl/mx_out_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_out_color2.inline rename to libraries/stdlib/genglsl/mx_out_color2.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_out_color4.inline b/libraries/stdlib/genglsl/mx_out_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_out_color4.inline rename to libraries/stdlib/genglsl/mx_out_color4.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_outside.inline b/libraries/stdlib/genglsl/mx_outside.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_outside.inline rename to libraries/stdlib/genglsl/mx_outside.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_over_color2.inline b/libraries/stdlib/genglsl/mx_over_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_over_color2.inline rename to libraries/stdlib/genglsl/mx_over_color2.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_over_color4.inline b/libraries/stdlib/genglsl/mx_over_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_over_color4.inline rename to libraries/stdlib/genglsl/mx_over_color4.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_overlay.glsl b/libraries/stdlib/genglsl/mx_overlay.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_overlay.glsl rename to libraries/stdlib/genglsl/mx_overlay.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_overlay_color2.glsl b/libraries/stdlib/genglsl/mx_overlay_color2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_overlay_color2.glsl rename to libraries/stdlib/genglsl/mx_overlay_color2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_overlay_color3.glsl b/libraries/stdlib/genglsl/mx_overlay_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_overlay_color3.glsl rename to libraries/stdlib/genglsl/mx_overlay_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_overlay_color4.glsl b/libraries/stdlib/genglsl/mx_overlay_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_overlay_color4.glsl rename to libraries/stdlib/genglsl/mx_overlay_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_overlay_float.inline b/libraries/stdlib/genglsl/mx_overlay_float.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_overlay_float.inline rename to libraries/stdlib/genglsl/mx_overlay_float.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_plus.inline b/libraries/stdlib/genglsl/mx_plus.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_plus.inline rename to libraries/stdlib/genglsl/mx_plus.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_power.inline b/libraries/stdlib/genglsl/mx_power.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_power.inline rename to libraries/stdlib/genglsl/mx_power.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_power_color2_float.inline b/libraries/stdlib/genglsl/mx_power_color2_float.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_power_color2_float.inline rename to libraries/stdlib/genglsl/mx_power_color2_float.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_power_color3_float.inline b/libraries/stdlib/genglsl/mx_power_color3_float.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_power_color3_float.inline rename to libraries/stdlib/genglsl/mx_power_color3_float.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_power_color4_float.inline b/libraries/stdlib/genglsl/mx_power_color4_float.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_power_color4_float.inline rename to libraries/stdlib/genglsl/mx_power_color4_float.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_power_vector2_float.inline b/libraries/stdlib/genglsl/mx_power_vector2_float.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_power_vector2_float.inline rename to libraries/stdlib/genglsl/mx_power_vector2_float.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_power_vector3_float.inline b/libraries/stdlib/genglsl/mx_power_vector3_float.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_power_vector3_float.inline rename to libraries/stdlib/genglsl/mx_power_vector3_float.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_power_vector4_float.inline b/libraries/stdlib/genglsl/mx_power_vector4_float.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_power_vector4_float.inline rename to libraries/stdlib/genglsl/mx_power_vector4_float.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_premult_color2.glsl b/libraries/stdlib/genglsl/mx_premult_color2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_premult_color2.glsl rename to libraries/stdlib/genglsl/mx_premult_color2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_premult_color3.glsl b/libraries/stdlib/genglsl/mx_premult_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_premult_color3.glsl rename to libraries/stdlib/genglsl/mx_premult_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_premult_color4.glsl b/libraries/stdlib/genglsl/mx_premult_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_premult_color4.glsl rename to libraries/stdlib/genglsl/mx_premult_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramp4_float.glsl b/libraries/stdlib/genglsl/mx_ramp4_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramp4_float.glsl rename to libraries/stdlib/genglsl/mx_ramp4_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramp4_vector2.glsl b/libraries/stdlib/genglsl/mx_ramp4_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramp4_vector2.glsl rename to libraries/stdlib/genglsl/mx_ramp4_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramp4_vector3.glsl b/libraries/stdlib/genglsl/mx_ramp4_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramp4_vector3.glsl rename to libraries/stdlib/genglsl/mx_ramp4_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramp4_vector4.glsl b/libraries/stdlib/genglsl/mx_ramp4_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramp4_vector4.glsl rename to libraries/stdlib/genglsl/mx_ramp4_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramplr_float.glsl b/libraries/stdlib/genglsl/mx_ramplr_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramplr_float.glsl rename to libraries/stdlib/genglsl/mx_ramplr_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramplr_vector2.glsl b/libraries/stdlib/genglsl/mx_ramplr_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramplr_vector2.glsl rename to libraries/stdlib/genglsl/mx_ramplr_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramplr_vector3.glsl b/libraries/stdlib/genglsl/mx_ramplr_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramplr_vector3.glsl rename to libraries/stdlib/genglsl/mx_ramplr_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramplr_vector4.glsl b/libraries/stdlib/genglsl/mx_ramplr_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramplr_vector4.glsl rename to libraries/stdlib/genglsl/mx_ramplr_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramptb_float.glsl b/libraries/stdlib/genglsl/mx_ramptb_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramptb_float.glsl rename to libraries/stdlib/genglsl/mx_ramptb_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramptb_vector2.glsl b/libraries/stdlib/genglsl/mx_ramptb_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramptb_vector2.glsl rename to libraries/stdlib/genglsl/mx_ramptb_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramptb_vector3.glsl b/libraries/stdlib/genglsl/mx_ramptb_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramptb_vector3.glsl rename to libraries/stdlib/genglsl/mx_ramptb_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_ramptb_vector4.glsl b/libraries/stdlib/genglsl/mx_ramptb_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_ramptb_vector4.glsl rename to libraries/stdlib/genglsl/mx_ramptb_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_remap.inline b/libraries/stdlib/genglsl/mx_remap.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_remap.inline rename to libraries/stdlib/genglsl/mx_remap.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_rgbtohsv_color3.glsl b/libraries/stdlib/genglsl/mx_rgbtohsv_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_rgbtohsv_color3.glsl rename to libraries/stdlib/genglsl/mx_rgbtohsv_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl b/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl rename to libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_rotate_vector2.glsl b/libraries/stdlib/genglsl/mx_rotate_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_rotate_vector2.glsl rename to libraries/stdlib/genglsl/mx_rotate_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_rotate_vector3.glsl b/libraries/stdlib/genglsl/mx_rotate_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_rotate_vector3.glsl rename to libraries/stdlib/genglsl/mx_rotate_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_saturate_color3.glsl b/libraries/stdlib/genglsl/mx_saturate_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_saturate_color3.glsl rename to libraries/stdlib/genglsl/mx_saturate_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_saturate_color4.glsl b/libraries/stdlib/genglsl/mx_saturate_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_saturate_color4.glsl rename to libraries/stdlib/genglsl/mx_saturate_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_screen.inline b/libraries/stdlib/genglsl/mx_screen.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_screen.inline rename to libraries/stdlib/genglsl/mx_screen.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_sign.inline b/libraries/stdlib/genglsl/mx_sign.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_sign.inline rename to libraries/stdlib/genglsl/mx_sign.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_sin.inline b/libraries/stdlib/genglsl/mx_sin.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_sin.inline rename to libraries/stdlib/genglsl/mx_sin.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_smoothstep.inline b/libraries/stdlib/genglsl/mx_smoothstep.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_smoothstep.inline rename to libraries/stdlib/genglsl/mx_smoothstep.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_splitlr_float.glsl b/libraries/stdlib/genglsl/mx_splitlr_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splitlr_float.glsl rename to libraries/stdlib/genglsl/mx_splitlr_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_splitlr_vector2.glsl b/libraries/stdlib/genglsl/mx_splitlr_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splitlr_vector2.glsl rename to libraries/stdlib/genglsl/mx_splitlr_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_splitlr_vector3.glsl b/libraries/stdlib/genglsl/mx_splitlr_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splitlr_vector3.glsl rename to libraries/stdlib/genglsl/mx_splitlr_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_splitlr_vector4.glsl b/libraries/stdlib/genglsl/mx_splitlr_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splitlr_vector4.glsl rename to libraries/stdlib/genglsl/mx_splitlr_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_splittb_float.glsl b/libraries/stdlib/genglsl/mx_splittb_float.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splittb_float.glsl rename to libraries/stdlib/genglsl/mx_splittb_float.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_splittb_vector2.glsl b/libraries/stdlib/genglsl/mx_splittb_vector2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splittb_vector2.glsl rename to libraries/stdlib/genglsl/mx_splittb_vector2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_splittb_vector3.glsl b/libraries/stdlib/genglsl/mx_splittb_vector3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splittb_vector3.glsl rename to libraries/stdlib/genglsl/mx_splittb_vector3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_splittb_vector4.glsl b/libraries/stdlib/genglsl/mx_splittb_vector4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_splittb_vector4.glsl rename to libraries/stdlib/genglsl/mx_splittb_vector4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_sqrt.inline b/libraries/stdlib/genglsl/mx_sqrt.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_sqrt.inline rename to libraries/stdlib/genglsl/mx_sqrt.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color3.glsl b/libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color3.glsl rename to libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color4.glsl b/libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color4.glsl rename to libraries/stdlib/genglsl/mx_srgb_texture_to_linear_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_subtract.inline b/libraries/stdlib/genglsl/mx_subtract.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_subtract.inline rename to libraries/stdlib/genglsl/mx_subtract.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_tan.inline b/libraries/stdlib/genglsl/mx_tan.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_tan.inline rename to libraries/stdlib/genglsl/mx_tan.inline diff --git a/libraries/stdlib/genglsl/mx_transformnormal3_matrix44.glsl b/libraries/stdlib/genglsl/mx_transformnormal3_matrix44.glsl new file mode 100644 index 0000000000..4f18de2a5d --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformnormal3_matrix44.glsl @@ -0,0 +1,6 @@ +void transformnormal3_matrix44(vec3 val, mat4 transform, out vec3 result) +{ + vec4 _val = vec4(val.x, val.y, val.z, 1.0); + vec4 res = transpose(inverse(transform)) * _val; + result = res.xyz; +} diff --git a/libraries/stdlib/genglsl/mx_transformnormalM.inline b/libraries/stdlib/genglsl/mx_transformnormalM.inline new file mode 100644 index 0000000000..4e5b7675d7 --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformnormalM.inline @@ -0,0 +1 @@ +{{in}} * transpose(inverse({{mat}})) diff --git a/libraries/stdlib/genglsl/mx_transformpoint2_matrix33.glsl b/libraries/stdlib/genglsl/mx_transformpoint2_matrix33.glsl new file mode 100644 index 0000000000..097de60439 --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformpoint2_matrix33.glsl @@ -0,0 +1,6 @@ +void transformpoint2_matrix33(vec2 val, mat3 transform, out vec2 result) +{ + vec3 _val = vec3(val.x, val.y, 1.0); + vec3 res = transform * _val; + result = res.xy; +} diff --git a/libraries/stdlib/genglsl/mx_transformpoint3_matrix44.glsl b/libraries/stdlib/genglsl/mx_transformpoint3_matrix44.glsl new file mode 100644 index 0000000000..1cfeeaefbf --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformpoint3_matrix44.glsl @@ -0,0 +1,6 @@ +void transformpoint3_matrix44(vec3 val, mat4 transform, out vec3 result) +{ + vec4 _val = vec4(val.x, val.y, val.z, 1.0); + vec4 res = transform * _val; + result = res.xyz; +} diff --git a/libraries/stdlib/genglsl/mx_transformpointM.inline b/libraries/stdlib/genglsl/mx_transformpointM.inline new file mode 100644 index 0000000000..06f4bf7754 --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformpointM.inline @@ -0,0 +1 @@ +{{mat}} * {{in}} diff --git a/libraries/stdlib/genglsl/mx_transformvector2_matrix33.glsl b/libraries/stdlib/genglsl/mx_transformvector2_matrix33.glsl new file mode 100644 index 0000000000..42a7d2ac84 --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformvector2_matrix33.glsl @@ -0,0 +1,6 @@ +void transformvector2_matrix33(vec2 val, mat3 transform, out vec2 result) +{ + vec3 _val = vec3(val.x, val.y, 0.0); + vec3 res = transform * _val; + result = res.xy; +} diff --git a/libraries/stdlib/genglsl/mx_transformvector3_matrix44.glsl b/libraries/stdlib/genglsl/mx_transformvector3_matrix44.glsl new file mode 100644 index 0000000000..fdd430f99e --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformvector3_matrix44.glsl @@ -0,0 +1,6 @@ +void transformvector3_matrix44(vec3 val, mat4 transform, out vec3 result) +{ + vec4 _val = vec4(val.x, val.y, val.z, 0.0); + vec4 res = transform * _val; + result = res.xyz; +} diff --git a/libraries/stdlib/genglsl/mx_transformvectorM.inline b/libraries/stdlib/genglsl/mx_transformvectorM.inline new file mode 100644 index 0000000000..06f4bf7754 --- /dev/null +++ b/libraries/stdlib/genglsl/mx_transformvectorM.inline @@ -0,0 +1 @@ +{{mat}} * {{in}} diff --git a/documents/Libraries/stdlib/genglsl/mx_transpose.inline b/libraries/stdlib/genglsl/mx_transpose.inline similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_transpose.inline rename to libraries/stdlib/genglsl/mx_transpose.inline diff --git a/documents/Libraries/stdlib/genglsl/mx_unpremult_color2.glsl b/libraries/stdlib/genglsl/mx_unpremult_color2.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_unpremult_color2.glsl rename to libraries/stdlib/genglsl/mx_unpremult_color2.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_unpremult_color3.glsl b/libraries/stdlib/genglsl/mx_unpremult_color3.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_unpremult_color3.glsl rename to libraries/stdlib/genglsl/mx_unpremult_color3.glsl diff --git a/documents/Libraries/stdlib/genglsl/mx_unpremult_color4.glsl b/libraries/stdlib/genglsl/mx_unpremult_color4.glsl similarity index 100% rename from documents/Libraries/stdlib/genglsl/mx_unpremult_color4.glsl rename to libraries/stdlib/genglsl/mx_unpremult_color4.glsl diff --git a/documents/Libraries/stdlib/genglsl/stdlib_genglsl_cm_impl.mtlx b/libraries/stdlib/genglsl/stdlib_genglsl_cm_impl.mtlx similarity index 100% rename from documents/Libraries/stdlib/genglsl/stdlib_genglsl_cm_impl.mtlx rename to libraries/stdlib/genglsl/stdlib_genglsl_cm_impl.mtlx diff --git a/documents/Libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx b/libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx similarity index 97% rename from documents/Libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx rename to libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx index 839128851f..779dc5c05d 100644 --- a/documents/Libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx +++ b/libraries/stdlib/genglsl/stdlib_genglsl_impl.mtlx @@ -449,22 +449,27 @@ - + + + - + - + + + - + - + + - + @@ -684,7 +689,11 @@ + + + + diff --git a/documents/Libraries/stdlib/genosl/lib/mx_get_target_uv_noop.osl b/libraries/stdlib/genosl/lib/mx_get_target_uv_noop.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/lib/mx_get_target_uv_noop.osl rename to libraries/stdlib/genosl/lib/mx_get_target_uv_noop.osl diff --git a/documents/Libraries/stdlib/genosl/lib/mx_get_target_uv_vflip.osl b/libraries/stdlib/genosl/lib/mx_get_target_uv_vflip.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/lib/mx_get_target_uv_vflip.osl rename to libraries/stdlib/genosl/lib/mx_get_target_uv_vflip.osl diff --git a/documents/Libraries/stdlib/genosl/lib/mx_sampling.osl b/libraries/stdlib/genosl/lib/mx_sampling.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/lib/mx_sampling.osl rename to libraries/stdlib/genosl/lib/mx_sampling.osl diff --git a/documents/Libraries/stdlib/genosl/mx_absval.inline b/libraries/stdlib/genosl/mx_absval.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_absval.inline rename to libraries/stdlib/genosl/mx_absval.inline diff --git a/documents/Libraries/stdlib/genosl/mx_acescg_to_linear_color3.osl b/libraries/stdlib/genosl/mx_acescg_to_linear_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_acescg_to_linear_color3.osl rename to libraries/stdlib/genosl/mx_acescg_to_linear_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_acescg_to_linear_color4.osl b/libraries/stdlib/genosl/mx_acescg_to_linear_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_acescg_to_linear_color4.osl rename to libraries/stdlib/genosl/mx_acescg_to_linear_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_acos.inline b/libraries/stdlib/genosl/mx_acos.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_acos.inline rename to libraries/stdlib/genosl/mx_acos.inline diff --git a/libraries/stdlib/genosl/mx_add.inline b/libraries/stdlib/genosl/mx_add.inline new file mode 100644 index 0000000000..d16f1ab8c7 --- /dev/null +++ b/libraries/stdlib/genosl/mx_add.inline @@ -0,0 +1 @@ +mx_add({{in1}}, {{in2}}) diff --git a/documents/Libraries/stdlib/genosl/mx_ambientocclusion_float.osl b/libraries/stdlib/genosl/mx_ambientocclusion_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ambientocclusion_float.osl rename to libraries/stdlib/genosl/mx_ambientocclusion_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_asin.inline b/libraries/stdlib/genosl/mx_asin.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_asin.inline rename to libraries/stdlib/genosl/mx_asin.inline diff --git a/documents/Libraries/stdlib/genosl/mx_atan2.inline b/libraries/stdlib/genosl/mx_atan2.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_atan2.inline rename to libraries/stdlib/genosl/mx_atan2.inline diff --git a/documents/Libraries/stdlib/genosl/mx_bitangent_vector3.inline b/libraries/stdlib/genosl/mx_bitangent_vector3.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_bitangent_vector3.inline rename to libraries/stdlib/genosl/mx_bitangent_vector3.inline diff --git a/documents/Libraries/stdlib/genosl/mx_burn.inline b/libraries/stdlib/genosl/mx_burn.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_burn.inline rename to libraries/stdlib/genosl/mx_burn.inline diff --git a/documents/Libraries/stdlib/genosl/mx_ceil.inline b/libraries/stdlib/genosl/mx_ceil.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ceil.inline rename to libraries/stdlib/genosl/mx_ceil.inline diff --git a/documents/Libraries/stdlib/genosl/mx_cellnoise2d_float.osl b/libraries/stdlib/genosl/mx_cellnoise2d_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_cellnoise2d_float.osl rename to libraries/stdlib/genosl/mx_cellnoise2d_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_cellnoise3d_float.osl b/libraries/stdlib/genosl/mx_cellnoise3d_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_cellnoise3d_float.osl rename to libraries/stdlib/genosl/mx_cellnoise3d_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_clamp.inline b/libraries/stdlib/genosl/mx_clamp.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_clamp.inline rename to libraries/stdlib/genosl/mx_clamp.inline diff --git a/documents/Libraries/stdlib/genosl/mx_constant.inline b/libraries/stdlib/genosl/mx_constant.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_constant.inline rename to libraries/stdlib/genosl/mx_constant.inline diff --git a/documents/Libraries/stdlib/genosl/mx_contrast.inline b/libraries/stdlib/genosl/mx_contrast.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_contrast.inline rename to libraries/stdlib/genosl/mx_contrast.inline diff --git a/documents/Libraries/stdlib/genosl/mx_cos.inline b/libraries/stdlib/genosl/mx_cos.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_cos.inline rename to libraries/stdlib/genosl/mx_cos.inline diff --git a/documents/Libraries/stdlib/genosl/mx_crossproduct.inline b/libraries/stdlib/genosl/mx_crossproduct.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_crossproduct.inline rename to libraries/stdlib/genosl/mx_crossproduct.inline diff --git a/documents/Libraries/stdlib/genosl/mx_determinant.inline b/libraries/stdlib/genosl/mx_determinant.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_determinant.inline rename to libraries/stdlib/genosl/mx_determinant.inline diff --git a/documents/Libraries/stdlib/genosl/mx_difference.inline b/libraries/stdlib/genosl/mx_difference.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_difference.inline rename to libraries/stdlib/genosl/mx_difference.inline diff --git a/documents/Libraries/stdlib/genosl/mx_disjointover_color2.inline b/libraries/stdlib/genosl/mx_disjointover_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_disjointover_color2.inline rename to libraries/stdlib/genosl/mx_disjointover_color2.inline diff --git a/documents/Libraries/stdlib/genosl/mx_disjointover_color4.inline b/libraries/stdlib/genosl/mx_disjointover_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_disjointover_color4.inline rename to libraries/stdlib/genosl/mx_disjointover_color4.inline diff --git a/documents/Libraries/stdlib/genosl/mx_divide.inline b/libraries/stdlib/genosl/mx_divide.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_divide.inline rename to libraries/stdlib/genosl/mx_divide.inline diff --git a/documents/Libraries/stdlib/genosl/mx_dodge.inline b/libraries/stdlib/genosl/mx_dodge.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_dodge.inline rename to libraries/stdlib/genosl/mx_dodge.inline diff --git a/documents/Libraries/stdlib/genosl/mx_dot.inline b/libraries/stdlib/genosl/mx_dot.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_dot.inline rename to libraries/stdlib/genosl/mx_dot.inline diff --git a/documents/Libraries/stdlib/genosl/mx_dotproduct.inline b/libraries/stdlib/genosl/mx_dotproduct.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_dotproduct.inline rename to libraries/stdlib/genosl/mx_dotproduct.inline diff --git a/documents/Libraries/stdlib/genosl/mx_exp.inline b/libraries/stdlib/genosl/mx_exp.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_exp.inline rename to libraries/stdlib/genosl/mx_exp.inline diff --git a/documents/Libraries/stdlib/genosl/mx_floor.inline b/libraries/stdlib/genosl/mx_floor.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_floor.inline rename to libraries/stdlib/genosl/mx_floor.inline diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_color2.osl b/libraries/stdlib/genosl/mx_fractal3d_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_color2.osl rename to libraries/stdlib/genosl/mx_fractal3d_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_color3.osl b/libraries/stdlib/genosl/mx_fractal3d_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_color3.osl rename to libraries/stdlib/genosl/mx_fractal3d_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_color4.osl b/libraries/stdlib/genosl/mx_fractal3d_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_color4.osl rename to libraries/stdlib/genosl/mx_fractal3d_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_fa_color2.osl b/libraries/stdlib/genosl/mx_fractal3d_fa_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_fa_color2.osl rename to libraries/stdlib/genosl/mx_fractal3d_fa_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_fa_color3.osl b/libraries/stdlib/genosl/mx_fractal3d_fa_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_fa_color3.osl rename to libraries/stdlib/genosl/mx_fractal3d_fa_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_fa_color4.osl b/libraries/stdlib/genosl/mx_fractal3d_fa_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_fa_color4.osl rename to libraries/stdlib/genosl/mx_fractal3d_fa_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_fa_vector2.osl b/libraries/stdlib/genosl/mx_fractal3d_fa_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_fa_vector2.osl rename to libraries/stdlib/genosl/mx_fractal3d_fa_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_fa_vector3.osl b/libraries/stdlib/genosl/mx_fractal3d_fa_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_fa_vector3.osl rename to libraries/stdlib/genosl/mx_fractal3d_fa_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_fa_vector4.osl b/libraries/stdlib/genosl/mx_fractal3d_fa_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_fa_vector4.osl rename to libraries/stdlib/genosl/mx_fractal3d_fa_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_float.osl b/libraries/stdlib/genosl/mx_fractal3d_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_float.osl rename to libraries/stdlib/genosl/mx_fractal3d_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_vector2.osl b/libraries/stdlib/genosl/mx_fractal3d_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_vector2.osl rename to libraries/stdlib/genosl/mx_fractal3d_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_vector3.osl b/libraries/stdlib/genosl/mx_fractal3d_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_vector3.osl rename to libraries/stdlib/genosl/mx_fractal3d_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_fractal3d_vector4.osl b/libraries/stdlib/genosl/mx_fractal3d_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_fractal3d_vector4.osl rename to libraries/stdlib/genosl/mx_fractal3d_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_frame_float.osl b/libraries/stdlib/genosl/mx_frame_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_frame_float.osl rename to libraries/stdlib/genosl/mx_frame_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_gamma18_to_linear_color3.osl b/libraries/stdlib/genosl/mx_gamma18_to_linear_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_gamma18_to_linear_color3.osl rename to libraries/stdlib/genosl/mx_gamma18_to_linear_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_gamma18_to_linear_color4.osl b/libraries/stdlib/genosl/mx_gamma18_to_linear_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_gamma18_to_linear_color4.osl rename to libraries/stdlib/genosl/mx_gamma18_to_linear_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_gamma22_to_linear_color3.osl b/libraries/stdlib/genosl/mx_gamma22_to_linear_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_gamma22_to_linear_color3.osl rename to libraries/stdlib/genosl/mx_gamma22_to_linear_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_gamma22_to_linear_color4.osl b/libraries/stdlib/genosl/mx_gamma22_to_linear_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_gamma22_to_linear_color4.osl rename to libraries/stdlib/genosl/mx_gamma22_to_linear_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_gamma24_to_linear_color3.osl b/libraries/stdlib/genosl/mx_gamma24_to_linear_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_gamma24_to_linear_color3.osl rename to libraries/stdlib/genosl/mx_gamma24_to_linear_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_gamma24_to_linear_color4.osl b/libraries/stdlib/genosl/mx_gamma24_to_linear_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_gamma24_to_linear_color4.osl rename to libraries/stdlib/genosl/mx_gamma24_to_linear_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_boolean.osl b/libraries/stdlib/genosl/mx_geomattrvalue_boolean.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_boolean.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_boolean.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_color2.osl b/libraries/stdlib/genosl/mx_geomattrvalue_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_color2.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_color3.osl b/libraries/stdlib/genosl/mx_geomattrvalue_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_color3.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_color4.osl b/libraries/stdlib/genosl/mx_geomattrvalue_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_color4.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_float.osl b/libraries/stdlib/genosl/mx_geomattrvalue_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_float.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_integer.osl b/libraries/stdlib/genosl/mx_geomattrvalue_integer.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_integer.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_integer.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_string.osl b/libraries/stdlib/genosl/mx_geomattrvalue_string.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_string.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_string.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_vector2.osl b/libraries/stdlib/genosl/mx_geomattrvalue_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_vector2.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_vector3.osl b/libraries/stdlib/genosl/mx_geomattrvalue_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_vector3.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomattrvalue_vector4.osl b/libraries/stdlib/genosl/mx_geomattrvalue_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomattrvalue_vector4.osl rename to libraries/stdlib/genosl/mx_geomattrvalue_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomcolor_color2.osl b/libraries/stdlib/genosl/mx_geomcolor_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomcolor_color2.osl rename to libraries/stdlib/genosl/mx_geomcolor_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomcolor_color3.osl b/libraries/stdlib/genosl/mx_geomcolor_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomcolor_color3.osl rename to libraries/stdlib/genosl/mx_geomcolor_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomcolor_color4.osl b/libraries/stdlib/genosl/mx_geomcolor_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomcolor_color4.osl rename to libraries/stdlib/genosl/mx_geomcolor_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_geomcolor_float.osl b/libraries/stdlib/genosl/mx_geomcolor_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_geomcolor_float.osl rename to libraries/stdlib/genosl/mx_geomcolor_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_heighttonormal_vector3.osl b/libraries/stdlib/genosl/mx_heighttonormal_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_heighttonormal_vector3.osl rename to libraries/stdlib/genosl/mx_heighttonormal_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_hsvtorgb_color3.osl b/libraries/stdlib/genosl/mx_hsvtorgb_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_hsvtorgb_color3.osl rename to libraries/stdlib/genosl/mx_hsvtorgb_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_hsvtorgb_color4.osl b/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_hsvtorgb_color4.osl rename to libraries/stdlib/genosl/mx_hsvtorgb_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_image_color2.osl b/libraries/stdlib/genosl/mx_image_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_image_color2.osl rename to libraries/stdlib/genosl/mx_image_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_image_color3.osl b/libraries/stdlib/genosl/mx_image_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_image_color3.osl rename to libraries/stdlib/genosl/mx_image_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_image_color4.osl b/libraries/stdlib/genosl/mx_image_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_image_color4.osl rename to libraries/stdlib/genosl/mx_image_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_image_float.osl b/libraries/stdlib/genosl/mx_image_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_image_float.osl rename to libraries/stdlib/genosl/mx_image_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_image_vector2.osl b/libraries/stdlib/genosl/mx_image_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_image_vector2.osl rename to libraries/stdlib/genosl/mx_image_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_image_vector3.osl b/libraries/stdlib/genosl/mx_image_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_image_vector3.osl rename to libraries/stdlib/genosl/mx_image_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_image_vector4.osl b/libraries/stdlib/genosl/mx_image_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_image_vector4.osl rename to libraries/stdlib/genosl/mx_image_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_in.inline b/libraries/stdlib/genosl/mx_in.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_in.inline rename to libraries/stdlib/genosl/mx_in.inline diff --git a/documents/Libraries/stdlib/genosl/mx_inside.inline b/libraries/stdlib/genosl/mx_inside.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_inside.inline rename to libraries/stdlib/genosl/mx_inside.inline diff --git a/documents/Libraries/stdlib/genosl/mx_invert.inline b/libraries/stdlib/genosl/mx_invert.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_invert.inline rename to libraries/stdlib/genosl/mx_invert.inline diff --git a/documents/Libraries/stdlib/genosl/mx_invertM.inline b/libraries/stdlib/genosl/mx_invertM.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_invertM.inline rename to libraries/stdlib/genosl/mx_invertM.inline diff --git a/documents/Libraries/stdlib/genosl/mx_ln.inline b/libraries/stdlib/genosl/mx_ln.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ln.inline rename to libraries/stdlib/genosl/mx_ln.inline diff --git a/documents/Libraries/stdlib/genosl/mx_luminance_color3.osl b/libraries/stdlib/genosl/mx_luminance_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_luminance_color3.osl rename to libraries/stdlib/genosl/mx_luminance_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_luminance_color4.osl b/libraries/stdlib/genosl/mx_luminance_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_luminance_color4.osl rename to libraries/stdlib/genosl/mx_luminance_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_magnitude.inline b/libraries/stdlib/genosl/mx_magnitude.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_magnitude.inline rename to libraries/stdlib/genosl/mx_magnitude.inline diff --git a/documents/Libraries/stdlib/genosl/mx_mask.inline b/libraries/stdlib/genosl/mx_mask.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_mask.inline rename to libraries/stdlib/genosl/mx_mask.inline diff --git a/documents/Libraries/stdlib/genosl/mx_matte_color2.inline b/libraries/stdlib/genosl/mx_matte_color2.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_matte_color2.inline rename to libraries/stdlib/genosl/mx_matte_color2.inline diff --git a/documents/Libraries/stdlib/genosl/mx_matte_color4.inline b/libraries/stdlib/genosl/mx_matte_color4.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_matte_color4.inline rename to libraries/stdlib/genosl/mx_matte_color4.inline diff --git a/documents/Libraries/stdlib/genosl/mx_max.inline b/libraries/stdlib/genosl/mx_max.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_max.inline rename to libraries/stdlib/genosl/mx_max.inline diff --git a/documents/Libraries/stdlib/genosl/mx_min.inline b/libraries/stdlib/genosl/mx_min.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_min.inline rename to libraries/stdlib/genosl/mx_min.inline diff --git a/documents/Libraries/stdlib/genosl/mx_minus.inline b/libraries/stdlib/genosl/mx_minus.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_minus.inline rename to libraries/stdlib/genosl/mx_minus.inline diff --git a/libraries/stdlib/genosl/mx_mix.inline b/libraries/stdlib/genosl/mx_mix.inline new file mode 100644 index 0000000000..e06e87be5b --- /dev/null +++ b/libraries/stdlib/genosl/mx_mix.inline @@ -0,0 +1 @@ +mix({{bg}}, {{fg}}, {{mix}}) diff --git a/documents/Libraries/stdlib/genosl/mx_modulo.inline b/libraries/stdlib/genosl/mx_modulo.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_modulo.inline rename to libraries/stdlib/genosl/mx_modulo.inline diff --git a/documents/Libraries/stdlib/genosl/mx_modulo_color3FA.inline b/libraries/stdlib/genosl/mx_modulo_color3FA.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_modulo_color3FA.inline rename to libraries/stdlib/genosl/mx_modulo_color3FA.inline diff --git a/documents/Libraries/stdlib/genosl/mx_modulo_vector3FA.inline b/libraries/stdlib/genosl/mx_modulo_vector3FA.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_modulo_vector3FA.inline rename to libraries/stdlib/genosl/mx_modulo_vector3FA.inline diff --git a/libraries/stdlib/genosl/mx_multiply.inline b/libraries/stdlib/genosl/mx_multiply.inline new file mode 100644 index 0000000000..4c4799f44f --- /dev/null +++ b/libraries/stdlib/genosl/mx_multiply.inline @@ -0,0 +1 @@ +{{in1}} * {{in2}} diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_color2.osl b/libraries/stdlib/genosl/mx_noise2d_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_color2.osl rename to libraries/stdlib/genosl/mx_noise2d_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_color3.osl b/libraries/stdlib/genosl/mx_noise2d_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_color3.osl rename to libraries/stdlib/genosl/mx_noise2d_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_color4.osl b/libraries/stdlib/genosl/mx_noise2d_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_color4.osl rename to libraries/stdlib/genosl/mx_noise2d_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_fa_color2.osl b/libraries/stdlib/genosl/mx_noise2d_fa_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_fa_color2.osl rename to libraries/stdlib/genosl/mx_noise2d_fa_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_fa_color3.osl b/libraries/stdlib/genosl/mx_noise2d_fa_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_fa_color3.osl rename to libraries/stdlib/genosl/mx_noise2d_fa_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_fa_color4.osl b/libraries/stdlib/genosl/mx_noise2d_fa_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_fa_color4.osl rename to libraries/stdlib/genosl/mx_noise2d_fa_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_fa_vector2.osl b/libraries/stdlib/genosl/mx_noise2d_fa_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_fa_vector2.osl rename to libraries/stdlib/genosl/mx_noise2d_fa_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_fa_vector3.osl b/libraries/stdlib/genosl/mx_noise2d_fa_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_fa_vector3.osl rename to libraries/stdlib/genosl/mx_noise2d_fa_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_fa_vector4.osl b/libraries/stdlib/genosl/mx_noise2d_fa_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_fa_vector4.osl rename to libraries/stdlib/genosl/mx_noise2d_fa_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_float.osl b/libraries/stdlib/genosl/mx_noise2d_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_float.osl rename to libraries/stdlib/genosl/mx_noise2d_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_vector2.osl b/libraries/stdlib/genosl/mx_noise2d_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_vector2.osl rename to libraries/stdlib/genosl/mx_noise2d_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_vector3.osl b/libraries/stdlib/genosl/mx_noise2d_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_vector3.osl rename to libraries/stdlib/genosl/mx_noise2d_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise2d_vector4.osl b/libraries/stdlib/genosl/mx_noise2d_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise2d_vector4.osl rename to libraries/stdlib/genosl/mx_noise2d_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_color2.osl b/libraries/stdlib/genosl/mx_noise3d_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_color2.osl rename to libraries/stdlib/genosl/mx_noise3d_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_color3.osl b/libraries/stdlib/genosl/mx_noise3d_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_color3.osl rename to libraries/stdlib/genosl/mx_noise3d_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_color4.osl b/libraries/stdlib/genosl/mx_noise3d_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_color4.osl rename to libraries/stdlib/genosl/mx_noise3d_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_fa_color2.osl b/libraries/stdlib/genosl/mx_noise3d_fa_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_fa_color2.osl rename to libraries/stdlib/genosl/mx_noise3d_fa_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_fa_color3.osl b/libraries/stdlib/genosl/mx_noise3d_fa_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_fa_color3.osl rename to libraries/stdlib/genosl/mx_noise3d_fa_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_fa_color4.osl b/libraries/stdlib/genosl/mx_noise3d_fa_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_fa_color4.osl rename to libraries/stdlib/genosl/mx_noise3d_fa_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_fa_vector2.osl b/libraries/stdlib/genosl/mx_noise3d_fa_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_fa_vector2.osl rename to libraries/stdlib/genosl/mx_noise3d_fa_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_fa_vector3.osl b/libraries/stdlib/genosl/mx_noise3d_fa_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_fa_vector3.osl rename to libraries/stdlib/genosl/mx_noise3d_fa_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_fa_vector4.osl b/libraries/stdlib/genosl/mx_noise3d_fa_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_fa_vector4.osl rename to libraries/stdlib/genosl/mx_noise3d_fa_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_float.osl b/libraries/stdlib/genosl/mx_noise3d_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_float.osl rename to libraries/stdlib/genosl/mx_noise3d_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_vector2.osl b/libraries/stdlib/genosl/mx_noise3d_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_vector2.osl rename to libraries/stdlib/genosl/mx_noise3d_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_vector3.osl b/libraries/stdlib/genosl/mx_noise3d_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_vector3.osl rename to libraries/stdlib/genosl/mx_noise3d_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_noise3d_vector4.osl b/libraries/stdlib/genosl/mx_noise3d_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_noise3d_vector4.osl rename to libraries/stdlib/genosl/mx_noise3d_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_normal_vector3.inline b/libraries/stdlib/genosl/mx_normal_vector3.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_normal_vector3.inline rename to libraries/stdlib/genosl/mx_normal_vector3.inline diff --git a/documents/Libraries/stdlib/genosl/mx_normalize.inline b/libraries/stdlib/genosl/mx_normalize.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_normalize.inline rename to libraries/stdlib/genosl/mx_normalize.inline diff --git a/documents/Libraries/stdlib/genosl/mx_out.inline b/libraries/stdlib/genosl/mx_out.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_out.inline rename to libraries/stdlib/genosl/mx_out.inline diff --git a/documents/Libraries/stdlib/genosl/mx_outside.inline b/libraries/stdlib/genosl/mx_outside.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_outside.inline rename to libraries/stdlib/genosl/mx_outside.inline diff --git a/documents/Libraries/stdlib/genosl/mx_over.inline b/libraries/stdlib/genosl/mx_over.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_over.inline rename to libraries/stdlib/genosl/mx_over.inline diff --git a/documents/Libraries/stdlib/genosl/mx_overlay.inline b/libraries/stdlib/genosl/mx_overlay.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_overlay.inline rename to libraries/stdlib/genosl/mx_overlay.inline diff --git a/documents/Libraries/stdlib/genosl/mx_overlay_color2.osl b/libraries/stdlib/genosl/mx_overlay_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_overlay_color2.osl rename to libraries/stdlib/genosl/mx_overlay_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_overlay_color3.osl b/libraries/stdlib/genosl/mx_overlay_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_overlay_color3.osl rename to libraries/stdlib/genosl/mx_overlay_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_overlay_color4.osl b/libraries/stdlib/genosl/mx_overlay_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_overlay_color4.osl rename to libraries/stdlib/genosl/mx_overlay_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_plus.inline b/libraries/stdlib/genosl/mx_plus.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_plus.inline rename to libraries/stdlib/genosl/mx_plus.inline diff --git a/documents/Libraries/stdlib/genosl/mx_position_vector3.inline b/libraries/stdlib/genosl/mx_position_vector3.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_position_vector3.inline rename to libraries/stdlib/genosl/mx_position_vector3.inline diff --git a/documents/Libraries/stdlib/genosl/mx_power.inline b/libraries/stdlib/genosl/mx_power.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_power.inline rename to libraries/stdlib/genosl/mx_power.inline diff --git a/documents/Libraries/stdlib/genosl/mx_premult_color2.osl b/libraries/stdlib/genosl/mx_premult_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_premult_color2.osl rename to libraries/stdlib/genosl/mx_premult_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_premult_color3.osl b/libraries/stdlib/genosl/mx_premult_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_premult_color3.osl rename to libraries/stdlib/genosl/mx_premult_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_premult_color4.osl b/libraries/stdlib/genosl/mx_premult_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_premult_color4.osl rename to libraries/stdlib/genosl/mx_premult_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramp4_color2.osl b/libraries/stdlib/genosl/mx_ramp4_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramp4_color2.osl rename to libraries/stdlib/genosl/mx_ramp4_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramp4_color3.osl b/libraries/stdlib/genosl/mx_ramp4_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramp4_color3.osl rename to libraries/stdlib/genosl/mx_ramp4_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramp4_color4.osl b/libraries/stdlib/genosl/mx_ramp4_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramp4_color4.osl rename to libraries/stdlib/genosl/mx_ramp4_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramp4_float.osl b/libraries/stdlib/genosl/mx_ramp4_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramp4_float.osl rename to libraries/stdlib/genosl/mx_ramp4_float.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramp4_vector2.osl b/libraries/stdlib/genosl/mx_ramp4_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramp4_vector2.osl rename to libraries/stdlib/genosl/mx_ramp4_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramp4_vector3.osl b/libraries/stdlib/genosl/mx_ramp4_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramp4_vector3.osl rename to libraries/stdlib/genosl/mx_ramp4_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramp4_vector4.osl b/libraries/stdlib/genosl/mx_ramp4_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramp4_vector4.osl rename to libraries/stdlib/genosl/mx_ramp4_vector4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_ramplr.inline b/libraries/stdlib/genosl/mx_ramplr.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramplr.inline rename to libraries/stdlib/genosl/mx_ramplr.inline diff --git a/documents/Libraries/stdlib/genosl/mx_ramptb.inline b/libraries/stdlib/genosl/mx_ramptb.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_ramptb.inline rename to libraries/stdlib/genosl/mx_ramptb.inline diff --git a/documents/Libraries/stdlib/genosl/mx_remap.inline b/libraries/stdlib/genosl/mx_remap.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_remap.inline rename to libraries/stdlib/genosl/mx_remap.inline diff --git a/documents/Libraries/stdlib/genosl/mx_rgbtohsv_color3.osl b/libraries/stdlib/genosl/mx_rgbtohsv_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_rgbtohsv_color3.osl rename to libraries/stdlib/genosl/mx_rgbtohsv_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_rgbtohsv_color4.osl b/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_rgbtohsv_color4.osl rename to libraries/stdlib/genosl/mx_rgbtohsv_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_rotate_vector2.osl b/libraries/stdlib/genosl/mx_rotate_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_rotate_vector2.osl rename to libraries/stdlib/genosl/mx_rotate_vector2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_rotate_vector3.osl b/libraries/stdlib/genosl/mx_rotate_vector3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_rotate_vector3.osl rename to libraries/stdlib/genosl/mx_rotate_vector3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_saturate_color3.osl b/libraries/stdlib/genosl/mx_saturate_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_saturate_color3.osl rename to libraries/stdlib/genosl/mx_saturate_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_saturate_color4.osl b/libraries/stdlib/genosl/mx_saturate_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_saturate_color4.osl rename to libraries/stdlib/genosl/mx_saturate_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_screen.inline b/libraries/stdlib/genosl/mx_screen.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_screen.inline rename to libraries/stdlib/genosl/mx_screen.inline diff --git a/documents/Libraries/stdlib/genosl/mx_sign.inline b/libraries/stdlib/genosl/mx_sign.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_sign.inline rename to libraries/stdlib/genosl/mx_sign.inline diff --git a/documents/Libraries/stdlib/genosl/mx_sin.inline b/libraries/stdlib/genosl/mx_sin.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_sin.inline rename to libraries/stdlib/genosl/mx_sin.inline diff --git a/documents/Libraries/stdlib/genosl/mx_smoothstep.inline b/libraries/stdlib/genosl/mx_smoothstep.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_smoothstep.inline rename to libraries/stdlib/genosl/mx_smoothstep.inline diff --git a/documents/Libraries/stdlib/genosl/mx_splitlr.inline b/libraries/stdlib/genosl/mx_splitlr.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_splitlr.inline rename to libraries/stdlib/genosl/mx_splitlr.inline diff --git a/documents/Libraries/stdlib/genosl/mx_splittb.inline b/libraries/stdlib/genosl/mx_splittb.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_splittb.inline rename to libraries/stdlib/genosl/mx_splittb.inline diff --git a/documents/Libraries/stdlib/genosl/mx_sqrt.inline b/libraries/stdlib/genosl/mx_sqrt.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_sqrt.inline rename to libraries/stdlib/genosl/mx_sqrt.inline diff --git a/documents/Libraries/stdlib/genosl/mx_srgb_texture_to_linear_color3.osl b/libraries/stdlib/genosl/mx_srgb_texture_to_linear_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_srgb_texture_to_linear_color3.osl rename to libraries/stdlib/genosl/mx_srgb_texture_to_linear_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_srgb_texture_to_linear_color4.osl b/libraries/stdlib/genosl/mx_srgb_texture_to_linear_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_srgb_texture_to_linear_color4.osl rename to libraries/stdlib/genosl/mx_srgb_texture_to_linear_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_subtract.inline b/libraries/stdlib/genosl/mx_subtract.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_subtract.inline rename to libraries/stdlib/genosl/mx_subtract.inline diff --git a/documents/Libraries/stdlib/genosl/mx_tan.inline b/libraries/stdlib/genosl/mx_tan.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_tan.inline rename to libraries/stdlib/genosl/mx_tan.inline diff --git a/documents/Libraries/stdlib/genosl/mx_tangent_vector3.inline b/libraries/stdlib/genosl/mx_tangent_vector3.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_tangent_vector3.inline rename to libraries/stdlib/genosl/mx_tangent_vector3.inline diff --git a/documents/Libraries/stdlib/genosl/mx_texcoord_vector2.inline b/libraries/stdlib/genosl/mx_texcoord_vector2.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_texcoord_vector2.inline rename to libraries/stdlib/genosl/mx_texcoord_vector2.inline diff --git a/documents/Libraries/stdlib/genosl/mx_texcoord_vector3.inline b/libraries/stdlib/genosl/mx_texcoord_vector3.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_texcoord_vector3.inline rename to libraries/stdlib/genosl/mx_texcoord_vector3.inline diff --git a/documents/Libraries/stdlib/genosl/mx_time_float.osl b/libraries/stdlib/genosl/mx_time_float.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_time_float.osl rename to libraries/stdlib/genosl/mx_time_float.osl diff --git a/libraries/stdlib/genosl/mx_transformnormal.inline b/libraries/stdlib/genosl/mx_transformnormal.inline new file mode 100644 index 0000000000..816abd8e51 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformnormal.inline @@ -0,0 +1 @@ +transform({{fromspace}}, {{tospace}}, {{in}}) diff --git a/libraries/stdlib/genosl/mx_transformnormal3M.inline b/libraries/stdlib/genosl/mx_transformnormal3M.inline new file mode 100644 index 0000000000..962aa4f17e --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformnormal3M.inline @@ -0,0 +1 @@ +transform({{mat}}, (normal){{in}}) diff --git a/libraries/stdlib/genosl/mx_transformnormal4M.osl b/libraries/stdlib/genosl/mx_transformnormal4M.osl new file mode 100644 index 0000000000..6f27064757 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformnormal4M.osl @@ -0,0 +1,6 @@ +void mx_transformnormal4M(vector4 val, matrix mat, output vector4 out) +{ + normal _val = normal(val.x, val.y, val.z); + vector v = transform(mat, _val); + out = vector4(v[0], v[1], v[2], 1.000); +} diff --git a/libraries/stdlib/genosl/mx_transformpoint.inline b/libraries/stdlib/genosl/mx_transformpoint.inline new file mode 100644 index 0000000000..816abd8e51 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformpoint.inline @@ -0,0 +1 @@ +transform({{fromspace}}, {{tospace}}, {{in}}) diff --git a/libraries/stdlib/genosl/mx_transformpoint2_matrix33.osl b/libraries/stdlib/genosl/mx_transformpoint2_matrix33.osl new file mode 100644 index 0000000000..03b7ddacc5 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformpoint2_matrix33.osl @@ -0,0 +1,7 @@ +void mx_transformpoint2_matrix33(vector2 val, matrix m, output vector2 result) +{ + point _val = point(val.x, val.y, 1.0); + point res = transform(m, _val); + result.x = res[0]; + result.y = res[1]; +} diff --git a/libraries/stdlib/genosl/mx_transformpoint3_matrix44.osl b/libraries/stdlib/genosl/mx_transformpoint3_matrix44.osl new file mode 100644 index 0000000000..987277cd95 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformpoint3_matrix44.osl @@ -0,0 +1,4 @@ +void mx_transformpoint3_matrix44(point val, matrix m, output point result) +{ + result = transform(m, val); +} diff --git a/libraries/stdlib/genosl/mx_transformpoint4M.osl b/libraries/stdlib/genosl/mx_transformpoint4M.osl new file mode 100644 index 0000000000..52fa24e46b --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformpoint4M.osl @@ -0,0 +1,7 @@ +void mx_transformpoint4M(vector4 val, matrix mat, output vector4 out) +{ + point _val = point(val.x, val.y, val.z); + vector v = transform(mat, _val); + out = vector4(v[0], v[1], v[2], 1.000); +} + diff --git a/libraries/stdlib/genosl/mx_transformpointM.inline b/libraries/stdlib/genosl/mx_transformpointM.inline new file mode 100644 index 0000000000..371a2b97e9 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformpointM.inline @@ -0,0 +1 @@ +transform({{mat}}, (point){{in}}) diff --git a/libraries/stdlib/genosl/mx_transformvector.inline b/libraries/stdlib/genosl/mx_transformvector.inline new file mode 100644 index 0000000000..816abd8e51 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformvector.inline @@ -0,0 +1 @@ +transform({{fromspace}}, {{tospace}}, {{in}}) diff --git a/libraries/stdlib/genosl/mx_transformvector2_matrix33.osl b/libraries/stdlib/genosl/mx_transformvector2_matrix33.osl new file mode 100644 index 0000000000..286fe38821 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformvector2_matrix33.osl @@ -0,0 +1,7 @@ +void mx_transformvector2_matrix33(vector2 val, matrix m, output vector2 result) +{ + vector _val = vector(val.x, val.y, 0.0); + vector res = transform(m, _val); + result.x = res[0]; + result.y = res[1]; +} diff --git a/libraries/stdlib/genosl/mx_transformvector3_matrix44.osl b/libraries/stdlib/genosl/mx_transformvector3_matrix44.osl new file mode 100644 index 0000000000..e929759be1 --- /dev/null +++ b/libraries/stdlib/genosl/mx_transformvector3_matrix44.osl @@ -0,0 +1,4 @@ +void mx_transformvector3_matrix44(vector val, matrix m, output vector result) +{ + result = transform(m, val); +} diff --git a/documents/Libraries/stdlib/genosl/mx_transformvectorM.inline b/libraries/stdlib/genosl/mx_transformvectorM.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_transformvectorM.inline rename to libraries/stdlib/genosl/mx_transformvectorM.inline diff --git a/documents/Libraries/stdlib/genosl/mx_transpose.inline b/libraries/stdlib/genosl/mx_transpose.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_transpose.inline rename to libraries/stdlib/genosl/mx_transpose.inline diff --git a/documents/Libraries/stdlib/genosl/mx_unpremult_color2.osl b/libraries/stdlib/genosl/mx_unpremult_color2.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_unpremult_color2.osl rename to libraries/stdlib/genosl/mx_unpremult_color2.osl diff --git a/documents/Libraries/stdlib/genosl/mx_unpremult_color3.osl b/libraries/stdlib/genosl/mx_unpremult_color3.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_unpremult_color3.osl rename to libraries/stdlib/genosl/mx_unpremult_color3.osl diff --git a/documents/Libraries/stdlib/genosl/mx_unpremult_color4.osl b/libraries/stdlib/genosl/mx_unpremult_color4.osl similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_unpremult_color4.osl rename to libraries/stdlib/genosl/mx_unpremult_color4.osl diff --git a/documents/Libraries/stdlib/genosl/mx_viewdirection_vector3.inline b/libraries/stdlib/genosl/mx_viewdirection_vector3.inline similarity index 100% rename from documents/Libraries/stdlib/genosl/mx_viewdirection_vector3.inline rename to libraries/stdlib/genosl/mx_viewdirection_vector3.inline diff --git a/documents/Libraries/stdlib/genosl/stdlib_genosl_cm_impl.mtlx b/libraries/stdlib/genosl/stdlib_genosl_cm_impl.mtlx similarity index 100% rename from documents/Libraries/stdlib/genosl/stdlib_genosl_cm_impl.mtlx rename to libraries/stdlib/genosl/stdlib_genosl_cm_impl.mtlx diff --git a/documents/Libraries/stdlib/genosl/stdlib_genosl_impl.mtlx b/libraries/stdlib/genosl/stdlib_genosl_impl.mtlx similarity index 97% rename from documents/Libraries/stdlib/genosl/stdlib_genosl_impl.mtlx rename to libraries/stdlib/genosl/stdlib_genosl_impl.mtlx index 572b8aa063..f06427faee 100644 --- a/documents/Libraries/stdlib/genosl/stdlib_genosl_impl.mtlx +++ b/libraries/stdlib/genosl/stdlib_genosl_impl.mtlx @@ -458,20 +458,25 @@ + + - + + + - + - + + @@ -705,7 +710,11 @@ + + + + diff --git a/documents/Libraries/stdlib/osl/README.md b/libraries/stdlib/osl/README.md similarity index 100% rename from documents/Libraries/stdlib/osl/README.md rename to libraries/stdlib/osl/README.md diff --git a/documents/Libraries/stdlib/osl/color2.h b/libraries/stdlib/osl/color2.h similarity index 96% rename from documents/Libraries/stdlib/osl/color2.h rename to libraries/stdlib/osl/color2.h index 16b39660f6..951d6975eb 100644 --- a/documents/Libraries/stdlib/osl/color2.h +++ b/libraries/stdlib/osl/color2.h @@ -258,16 +258,6 @@ color2 fmod(color2 a, float b) return fmod(a, color2(b, b)); } -color2 pow(color2 base, color2 power) -{ - return color2(pow(base.r, power.r), pow(base.a, power.a)); -} - -color2 pow(color2 base, float power) -{ - return pow(base, color2(power, power)); -} - color2 sign(color2 a) { return color2(sign(a.r), diff --git a/documents/Libraries/stdlib/osl/color4.h b/libraries/stdlib/osl/color4.h similarity index 97% rename from documents/Libraries/stdlib/osl/color4.h rename to libraries/stdlib/osl/color4.h index 9373f0848d..08a76777f7 100644 --- a/documents/Libraries/stdlib/osl/color4.h +++ b/libraries/stdlib/osl/color4.h @@ -251,12 +251,14 @@ color4 fmod(color4 a, float b) color4 pow(color4 base, color4 power) { - return color4(pow(base.rgb, power.rgb), pow(base.a, power.a)); + return color4(pow(base.rgb, power.rgb), + pow(base.a, power.a)); } color4 pow(color4 base, float power) { - return pow(base, color4(color(power), power)); + return color4(pow(base.rgb, power), + pow(base.a, power)); } color4 sign(color4 a) diff --git a/documents/Libraries/stdlib/osl/matrix33.h b/libraries/stdlib/osl/matrix33.h similarity index 100% rename from documents/Libraries/stdlib/osl/matrix33.h rename to libraries/stdlib/osl/matrix33.h diff --git a/documents/Libraries/stdlib/osl/mx_absval_color.osl b/libraries/stdlib/osl/mx_absval_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_absval_color.osl rename to libraries/stdlib/osl/mx_absval_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_absval_color2.osl b/libraries/stdlib/osl/mx_absval_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_absval_color2.osl rename to libraries/stdlib/osl/mx_absval_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_absval_color4.osl b/libraries/stdlib/osl/mx_absval_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_absval_color4.osl rename to libraries/stdlib/osl/mx_absval_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_absval_float.osl b/libraries/stdlib/osl/mx_absval_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_absval_float.osl rename to libraries/stdlib/osl/mx_absval_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_absval_vector.osl b/libraries/stdlib/osl/mx_absval_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_absval_vector.osl rename to libraries/stdlib/osl/mx_absval_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_absval_vector2.osl b/libraries/stdlib/osl/mx_absval_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_absval_vector2.osl rename to libraries/stdlib/osl/mx_absval_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_absval_vector4.osl b/libraries/stdlib/osl/mx_absval_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_absval_vector4.osl rename to libraries/stdlib/osl/mx_absval_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_acos_color.osl b/libraries/stdlib/osl/mx_acos_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_acos_color.osl rename to libraries/stdlib/osl/mx_acos_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_acos_color2.osl b/libraries/stdlib/osl/mx_acos_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_acos_color2.osl rename to libraries/stdlib/osl/mx_acos_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_acos_color4.osl b/libraries/stdlib/osl/mx_acos_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_acos_color4.osl rename to libraries/stdlib/osl/mx_acos_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_acos_float.osl b/libraries/stdlib/osl/mx_acos_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_acos_float.osl rename to libraries/stdlib/osl/mx_acos_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_acos_vector.osl b/libraries/stdlib/osl/mx_acos_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_acos_vector.osl rename to libraries/stdlib/osl/mx_acos_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_acos_vector2.osl b/libraries/stdlib/osl/mx_acos_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_acos_vector2.osl rename to libraries/stdlib/osl/mx_acos_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_acos_vector4.osl b/libraries/stdlib/osl/mx_acos_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_acos_vector4.osl rename to libraries/stdlib/osl/mx_acos_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_color.osl b/libraries/stdlib/osl/mx_add_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_color.osl rename to libraries/stdlib/osl/mx_add_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_color2.osl b/libraries/stdlib/osl/mx_add_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_color2.osl rename to libraries/stdlib/osl/mx_add_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_color4.osl b/libraries/stdlib/osl/mx_add_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_color4.osl rename to libraries/stdlib/osl/mx_add_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float.osl b/libraries/stdlib/osl/mx_add_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float.osl rename to libraries/stdlib/osl/mx_add_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_color.osl b/libraries/stdlib/osl/mx_add_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_color.osl rename to libraries/stdlib/osl/mx_add_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_color2.osl b/libraries/stdlib/osl/mx_add_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_color2.osl rename to libraries/stdlib/osl/mx_add_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_color4.osl b/libraries/stdlib/osl/mx_add_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_color4.osl rename to libraries/stdlib/osl/mx_add_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_matrix33.osl b/libraries/stdlib/osl/mx_add_float_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_matrix33.osl rename to libraries/stdlib/osl/mx_add_float_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_matrix44.osl b/libraries/stdlib/osl/mx_add_float_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_matrix44.osl rename to libraries/stdlib/osl/mx_add_float_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_vector.osl b/libraries/stdlib/osl/mx_add_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_vector.osl rename to libraries/stdlib/osl/mx_add_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_vector2.osl b/libraries/stdlib/osl/mx_add_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_vector2.osl rename to libraries/stdlib/osl/mx_add_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_float_vector4.osl b/libraries/stdlib/osl/mx_add_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_float_vector4.osl rename to libraries/stdlib/osl/mx_add_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_matrix33.osl b/libraries/stdlib/osl/mx_add_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_matrix33.osl rename to libraries/stdlib/osl/mx_add_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_matrix44.osl b/libraries/stdlib/osl/mx_add_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_matrix44.osl rename to libraries/stdlib/osl/mx_add_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_surfaceshader.osl b/libraries/stdlib/osl/mx_add_surfaceshader.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_surfaceshader.osl rename to libraries/stdlib/osl/mx_add_surfaceshader.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_vector.osl b/libraries/stdlib/osl/mx_add_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_vector.osl rename to libraries/stdlib/osl/mx_add_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_vector2.osl b/libraries/stdlib/osl/mx_add_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_vector2.osl rename to libraries/stdlib/osl/mx_add_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_add_vector4.osl b/libraries/stdlib/osl/mx_add_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_add_vector4.osl rename to libraries/stdlib/osl/mx_add_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ambientocclusion_float.osl b/libraries/stdlib/osl/mx_ambientocclusion_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ambientocclusion_float.osl rename to libraries/stdlib/osl/mx_ambientocclusion_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_asin_color.osl b/libraries/stdlib/osl/mx_asin_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_asin_color.osl rename to libraries/stdlib/osl/mx_asin_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_asin_color2.osl b/libraries/stdlib/osl/mx_asin_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_asin_color2.osl rename to libraries/stdlib/osl/mx_asin_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_asin_color4.osl b/libraries/stdlib/osl/mx_asin_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_asin_color4.osl rename to libraries/stdlib/osl/mx_asin_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_asin_float.osl b/libraries/stdlib/osl/mx_asin_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_asin_float.osl rename to libraries/stdlib/osl/mx_asin_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_asin_vector.osl b/libraries/stdlib/osl/mx_asin_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_asin_vector.osl rename to libraries/stdlib/osl/mx_asin_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_asin_vector2.osl b/libraries/stdlib/osl/mx_asin_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_asin_vector2.osl rename to libraries/stdlib/osl/mx_asin_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_asin_vector4.osl b/libraries/stdlib/osl/mx_asin_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_asin_vector4.osl rename to libraries/stdlib/osl/mx_asin_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_color.osl b/libraries/stdlib/osl/mx_atan2_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_color.osl rename to libraries/stdlib/osl/mx_atan2_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_color2.osl b/libraries/stdlib/osl/mx_atan2_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_color2.osl rename to libraries/stdlib/osl/mx_atan2_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_color4.osl b/libraries/stdlib/osl/mx_atan2_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_color4.osl rename to libraries/stdlib/osl/mx_atan2_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_float.osl b/libraries/stdlib/osl/mx_atan2_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_float.osl rename to libraries/stdlib/osl/mx_atan2_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_float_color.osl b/libraries/stdlib/osl/mx_atan2_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_float_color.osl rename to libraries/stdlib/osl/mx_atan2_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_float_color2.osl b/libraries/stdlib/osl/mx_atan2_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_float_color2.osl rename to libraries/stdlib/osl/mx_atan2_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_float_color4.osl b/libraries/stdlib/osl/mx_atan2_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_float_color4.osl rename to libraries/stdlib/osl/mx_atan2_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_float_vector.osl b/libraries/stdlib/osl/mx_atan2_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_float_vector.osl rename to libraries/stdlib/osl/mx_atan2_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_float_vector2.osl b/libraries/stdlib/osl/mx_atan2_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_float_vector2.osl rename to libraries/stdlib/osl/mx_atan2_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_float_vector4.osl b/libraries/stdlib/osl/mx_atan2_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_float_vector4.osl rename to libraries/stdlib/osl/mx_atan2_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_vector.osl b/libraries/stdlib/osl/mx_atan2_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_vector.osl rename to libraries/stdlib/osl/mx_atan2_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_vector2.osl b/libraries/stdlib/osl/mx_atan2_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_vector2.osl rename to libraries/stdlib/osl/mx_atan2_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_atan2_vector4.osl b/libraries/stdlib/osl/mx_atan2_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_atan2_vector4.osl rename to libraries/stdlib/osl/mx_atan2_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_bitangent_vector.osl b/libraries/stdlib/osl/mx_bitangent_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_bitangent_vector.osl rename to libraries/stdlib/osl/mx_bitangent_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_blur_color.osl b/libraries/stdlib/osl/mx_blur_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_blur_color.osl rename to libraries/stdlib/osl/mx_blur_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_blur_color2.osl b/libraries/stdlib/osl/mx_blur_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_blur_color2.osl rename to libraries/stdlib/osl/mx_blur_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_blur_color4.osl b/libraries/stdlib/osl/mx_blur_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_blur_color4.osl rename to libraries/stdlib/osl/mx_blur_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_blur_float.osl b/libraries/stdlib/osl/mx_blur_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_blur_float.osl rename to libraries/stdlib/osl/mx_blur_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_blur_vector.osl b/libraries/stdlib/osl/mx_blur_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_blur_vector.osl rename to libraries/stdlib/osl/mx_blur_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_blur_vector2.osl b/libraries/stdlib/osl/mx_blur_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_blur_vector2.osl rename to libraries/stdlib/osl/mx_blur_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_blur_vector4.osl b/libraries/stdlib/osl/mx_blur_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_blur_vector4.osl rename to libraries/stdlib/osl/mx_blur_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_burn_color.osl b/libraries/stdlib/osl/mx_burn_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_burn_color.osl rename to libraries/stdlib/osl/mx_burn_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_burn_color2.osl b/libraries/stdlib/osl/mx_burn_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_burn_color2.osl rename to libraries/stdlib/osl/mx_burn_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_burn_color4.osl b/libraries/stdlib/osl/mx_burn_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_burn_color4.osl rename to libraries/stdlib/osl/mx_burn_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_burn_float.osl b/libraries/stdlib/osl/mx_burn_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_burn_float.osl rename to libraries/stdlib/osl/mx_burn_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_ceil_color.osl b/libraries/stdlib/osl/mx_ceil_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ceil_color.osl rename to libraries/stdlib/osl/mx_ceil_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_ceil_color2.osl b/libraries/stdlib/osl/mx_ceil_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ceil_color2.osl rename to libraries/stdlib/osl/mx_ceil_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ceil_color4.osl b/libraries/stdlib/osl/mx_ceil_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ceil_color4.osl rename to libraries/stdlib/osl/mx_ceil_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ceil_float.osl b/libraries/stdlib/osl/mx_ceil_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ceil_float.osl rename to libraries/stdlib/osl/mx_ceil_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_ceil_vector.osl b/libraries/stdlib/osl/mx_ceil_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ceil_vector.osl rename to libraries/stdlib/osl/mx_ceil_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_ceil_vector2.osl b/libraries/stdlib/osl/mx_ceil_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ceil_vector2.osl rename to libraries/stdlib/osl/mx_ceil_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ceil_vector4.osl b/libraries/stdlib/osl/mx_ceil_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ceil_vector4.osl rename to libraries/stdlib/osl/mx_ceil_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_cellnoise2d_float.osl b/libraries/stdlib/osl/mx_cellnoise2d_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cellnoise2d_float.osl rename to libraries/stdlib/osl/mx_cellnoise2d_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_cellnoise3d_float.osl b/libraries/stdlib/osl/mx_cellnoise3d_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cellnoise3d_float.osl rename to libraries/stdlib/osl/mx_cellnoise3d_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_color.osl b/libraries/stdlib/osl/mx_clamp_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_color.osl rename to libraries/stdlib/osl/mx_clamp_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_color2.osl b/libraries/stdlib/osl/mx_clamp_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_color2.osl rename to libraries/stdlib/osl/mx_clamp_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_color4.osl b/libraries/stdlib/osl/mx_clamp_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_color4.osl rename to libraries/stdlib/osl/mx_clamp_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_float.osl b/libraries/stdlib/osl/mx_clamp_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_float.osl rename to libraries/stdlib/osl/mx_clamp_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_float_color.osl b/libraries/stdlib/osl/mx_clamp_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_float_color.osl rename to libraries/stdlib/osl/mx_clamp_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_float_color2.osl b/libraries/stdlib/osl/mx_clamp_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_float_color2.osl rename to libraries/stdlib/osl/mx_clamp_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_float_color4.osl b/libraries/stdlib/osl/mx_clamp_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_float_color4.osl rename to libraries/stdlib/osl/mx_clamp_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_float_vector.osl b/libraries/stdlib/osl/mx_clamp_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_float_vector.osl rename to libraries/stdlib/osl/mx_clamp_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_float_vector2.osl b/libraries/stdlib/osl/mx_clamp_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_float_vector2.osl rename to libraries/stdlib/osl/mx_clamp_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_float_vector4.osl b/libraries/stdlib/osl/mx_clamp_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_float_vector4.osl rename to libraries/stdlib/osl/mx_clamp_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_vector.osl b/libraries/stdlib/osl/mx_clamp_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_vector.osl rename to libraries/stdlib/osl/mx_clamp_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_vector2.osl b/libraries/stdlib/osl/mx_clamp_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_vector2.osl rename to libraries/stdlib/osl/mx_clamp_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_clamp_vector4.osl b/libraries/stdlib/osl/mx_clamp_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_clamp_vector4.osl rename to libraries/stdlib/osl/mx_clamp_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine2_color2.osl b/libraries/stdlib/osl/mx_combine2_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine2_color2.osl rename to libraries/stdlib/osl/mx_combine2_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine2_vector2.osl b/libraries/stdlib/osl/mx_combine2_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine2_vector2.osl rename to libraries/stdlib/osl/mx_combine2_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine3_color.osl b/libraries/stdlib/osl/mx_combine3_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine3_color.osl rename to libraries/stdlib/osl/mx_combine3_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine3_vector.osl b/libraries/stdlib/osl/mx_combine3_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine3_vector.osl rename to libraries/stdlib/osl/mx_combine3_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine4_color4.osl b/libraries/stdlib/osl/mx_combine4_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine4_color4.osl rename to libraries/stdlib/osl/mx_combine4_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine4_vector4.osl b/libraries/stdlib/osl/mx_combine4_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine4_vector4.osl rename to libraries/stdlib/osl/mx_combine4_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine_cc_color4.osl b/libraries/stdlib/osl/mx_combine_cc_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine_cc_color4.osl rename to libraries/stdlib/osl/mx_combine_cc_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine_cf_color4.osl b/libraries/stdlib/osl/mx_combine_cf_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine_cf_color4.osl rename to libraries/stdlib/osl/mx_combine_cf_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine_vf_vector4.osl b/libraries/stdlib/osl/mx_combine_vf_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine_vf_vector4.osl rename to libraries/stdlib/osl/mx_combine_vf_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_combine_vv_vector4.osl b/libraries/stdlib/osl/mx_combine_vv_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_combine_vv_vector4.osl rename to libraries/stdlib/osl/mx_combine_vv_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_compare_color.osl b/libraries/stdlib/osl/mx_compare_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_compare_color.osl rename to libraries/stdlib/osl/mx_compare_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_compare_color2.osl b/libraries/stdlib/osl/mx_compare_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_compare_color2.osl rename to libraries/stdlib/osl/mx_compare_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_compare_color4.osl b/libraries/stdlib/osl/mx_compare_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_compare_color4.osl rename to libraries/stdlib/osl/mx_compare_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_compare_float.osl b/libraries/stdlib/osl/mx_compare_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_compare_float.osl rename to libraries/stdlib/osl/mx_compare_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_compare_vector.osl b/libraries/stdlib/osl/mx_compare_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_compare_vector.osl rename to libraries/stdlib/osl/mx_compare_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_compare_vector2.osl b/libraries/stdlib/osl/mx_compare_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_compare_vector2.osl rename to libraries/stdlib/osl/mx_compare_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_compare_vector4.osl b/libraries/stdlib/osl/mx_compare_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_compare_vector4.osl rename to libraries/stdlib/osl/mx_compare_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_bool.osl b/libraries/stdlib/osl/mx_constant_bool.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_bool.osl rename to libraries/stdlib/osl/mx_constant_bool.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_color.osl b/libraries/stdlib/osl/mx_constant_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_color.osl rename to libraries/stdlib/osl/mx_constant_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_color2.osl b/libraries/stdlib/osl/mx_constant_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_color2.osl rename to libraries/stdlib/osl/mx_constant_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_color4.osl b/libraries/stdlib/osl/mx_constant_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_color4.osl rename to libraries/stdlib/osl/mx_constant_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_filename.osl b/libraries/stdlib/osl/mx_constant_filename.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_filename.osl rename to libraries/stdlib/osl/mx_constant_filename.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_float.osl b/libraries/stdlib/osl/mx_constant_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_float.osl rename to libraries/stdlib/osl/mx_constant_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_int.osl b/libraries/stdlib/osl/mx_constant_int.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_int.osl rename to libraries/stdlib/osl/mx_constant_int.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_matrix33.osl b/libraries/stdlib/osl/mx_constant_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_matrix33.osl rename to libraries/stdlib/osl/mx_constant_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_matrix44.osl b/libraries/stdlib/osl/mx_constant_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_matrix44.osl rename to libraries/stdlib/osl/mx_constant_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_string.osl b/libraries/stdlib/osl/mx_constant_string.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_string.osl rename to libraries/stdlib/osl/mx_constant_string.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_vector.osl b/libraries/stdlib/osl/mx_constant_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_vector.osl rename to libraries/stdlib/osl/mx_constant_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_vector2.osl b/libraries/stdlib/osl/mx_constant_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_vector2.osl rename to libraries/stdlib/osl/mx_constant_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_constant_vector4.osl b/libraries/stdlib/osl/mx_constant_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_constant_vector4.osl rename to libraries/stdlib/osl/mx_constant_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_color.osl b/libraries/stdlib/osl/mx_contrast_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_color.osl rename to libraries/stdlib/osl/mx_contrast_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_color2.osl b/libraries/stdlib/osl/mx_contrast_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_color2.osl rename to libraries/stdlib/osl/mx_contrast_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_color4.osl b/libraries/stdlib/osl/mx_contrast_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_color4.osl rename to libraries/stdlib/osl/mx_contrast_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_float.osl b/libraries/stdlib/osl/mx_contrast_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_float.osl rename to libraries/stdlib/osl/mx_contrast_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_float_color.osl b/libraries/stdlib/osl/mx_contrast_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_float_color.osl rename to libraries/stdlib/osl/mx_contrast_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_float_color2.osl b/libraries/stdlib/osl/mx_contrast_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_float_color2.osl rename to libraries/stdlib/osl/mx_contrast_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_float_color4.osl b/libraries/stdlib/osl/mx_contrast_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_float_color4.osl rename to libraries/stdlib/osl/mx_contrast_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_float_vector.osl b/libraries/stdlib/osl/mx_contrast_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_float_vector.osl rename to libraries/stdlib/osl/mx_contrast_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_float_vector2.osl b/libraries/stdlib/osl/mx_contrast_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_float_vector2.osl rename to libraries/stdlib/osl/mx_contrast_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_float_vector4.osl b/libraries/stdlib/osl/mx_contrast_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_float_vector4.osl rename to libraries/stdlib/osl/mx_contrast_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_vector.osl b/libraries/stdlib/osl/mx_contrast_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_vector.osl rename to libraries/stdlib/osl/mx_contrast_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_vector2.osl b/libraries/stdlib/osl/mx_contrast_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_vector2.osl rename to libraries/stdlib/osl/mx_contrast_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_contrast_vector4.osl b/libraries/stdlib/osl/mx_contrast_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_contrast_vector4.osl rename to libraries/stdlib/osl/mx_contrast_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_cos_color.osl b/libraries/stdlib/osl/mx_cos_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cos_color.osl rename to libraries/stdlib/osl/mx_cos_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_cos_color2.osl b/libraries/stdlib/osl/mx_cos_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cos_color2.osl rename to libraries/stdlib/osl/mx_cos_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_cos_color4.osl b/libraries/stdlib/osl/mx_cos_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cos_color4.osl rename to libraries/stdlib/osl/mx_cos_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_cos_float.osl b/libraries/stdlib/osl/mx_cos_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cos_float.osl rename to libraries/stdlib/osl/mx_cos_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_cos_vector.osl b/libraries/stdlib/osl/mx_cos_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cos_vector.osl rename to libraries/stdlib/osl/mx_cos_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_cos_vector2.osl b/libraries/stdlib/osl/mx_cos_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cos_vector2.osl rename to libraries/stdlib/osl/mx_cos_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_cos_vector4.osl b/libraries/stdlib/osl/mx_cos_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_cos_vector4.osl rename to libraries/stdlib/osl/mx_cos_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_crossproduct_vector.osl b/libraries/stdlib/osl/mx_crossproduct_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_crossproduct_vector.osl rename to libraries/stdlib/osl/mx_crossproduct_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_determinant_matrix33.osl b/libraries/stdlib/osl/mx_determinant_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_determinant_matrix33.osl rename to libraries/stdlib/osl/mx_determinant_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_determinant_matrix44.osl b/libraries/stdlib/osl/mx_determinant_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_determinant_matrix44.osl rename to libraries/stdlib/osl/mx_determinant_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_disjointover_color2.osl b/libraries/stdlib/osl/mx_disjointover_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_disjointover_color2.osl rename to libraries/stdlib/osl/mx_disjointover_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_disjointover_color4.osl b/libraries/stdlib/osl/mx_disjointover_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_disjointover_color4.osl rename to libraries/stdlib/osl/mx_disjointover_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_color.osl b/libraries/stdlib/osl/mx_divide_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_color.osl rename to libraries/stdlib/osl/mx_divide_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_color2.osl b/libraries/stdlib/osl/mx_divide_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_color2.osl rename to libraries/stdlib/osl/mx_divide_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_color4.osl b/libraries/stdlib/osl/mx_divide_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_color4.osl rename to libraries/stdlib/osl/mx_divide_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float.osl b/libraries/stdlib/osl/mx_divide_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float.osl rename to libraries/stdlib/osl/mx_divide_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_color.osl b/libraries/stdlib/osl/mx_divide_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_color.osl rename to libraries/stdlib/osl/mx_divide_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_color2.osl b/libraries/stdlib/osl/mx_divide_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_color2.osl rename to libraries/stdlib/osl/mx_divide_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_color4.osl b/libraries/stdlib/osl/mx_divide_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_color4.osl rename to libraries/stdlib/osl/mx_divide_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_matrix33.osl b/libraries/stdlib/osl/mx_divide_float_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_matrix33.osl rename to libraries/stdlib/osl/mx_divide_float_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_matrix44.osl b/libraries/stdlib/osl/mx_divide_float_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_matrix44.osl rename to libraries/stdlib/osl/mx_divide_float_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_vector.osl b/libraries/stdlib/osl/mx_divide_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_vector.osl rename to libraries/stdlib/osl/mx_divide_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_vector2.osl b/libraries/stdlib/osl/mx_divide_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_vector2.osl rename to libraries/stdlib/osl/mx_divide_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_float_vector4.osl b/libraries/stdlib/osl/mx_divide_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_float_vector4.osl rename to libraries/stdlib/osl/mx_divide_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_matrix33.osl b/libraries/stdlib/osl/mx_divide_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_matrix33.osl rename to libraries/stdlib/osl/mx_divide_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_matrix44.osl b/libraries/stdlib/osl/mx_divide_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_matrix44.osl rename to libraries/stdlib/osl/mx_divide_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_vector.osl b/libraries/stdlib/osl/mx_divide_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_vector.osl rename to libraries/stdlib/osl/mx_divide_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_vector2.osl b/libraries/stdlib/osl/mx_divide_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_vector2.osl rename to libraries/stdlib/osl/mx_divide_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_divide_vector4.osl b/libraries/stdlib/osl/mx_divide_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_divide_vector4.osl rename to libraries/stdlib/osl/mx_divide_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_dodge_color.osl b/libraries/stdlib/osl/mx_dodge_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dodge_color.osl rename to libraries/stdlib/osl/mx_dodge_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_dodge_color2.osl b/libraries/stdlib/osl/mx_dodge_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dodge_color2.osl rename to libraries/stdlib/osl/mx_dodge_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_dodge_color4.osl b/libraries/stdlib/osl/mx_dodge_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dodge_color4.osl rename to libraries/stdlib/osl/mx_dodge_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_dodge_float.osl b/libraries/stdlib/osl/mx_dodge_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dodge_float.osl rename to libraries/stdlib/osl/mx_dodge_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_bool.osl b/libraries/stdlib/osl/mx_dot_bool.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_bool.osl rename to libraries/stdlib/osl/mx_dot_bool.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_color.osl b/libraries/stdlib/osl/mx_dot_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_color.osl rename to libraries/stdlib/osl/mx_dot_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_color2.osl b/libraries/stdlib/osl/mx_dot_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_color2.osl rename to libraries/stdlib/osl/mx_dot_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_color4.osl b/libraries/stdlib/osl/mx_dot_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_color4.osl rename to libraries/stdlib/osl/mx_dot_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_displacementshader.osl b/libraries/stdlib/osl/mx_dot_displacementshader.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_displacementshader.osl rename to libraries/stdlib/osl/mx_dot_displacementshader.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_filename.osl b/libraries/stdlib/osl/mx_dot_filename.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_filename.osl rename to libraries/stdlib/osl/mx_dot_filename.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_float.osl b/libraries/stdlib/osl/mx_dot_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_float.osl rename to libraries/stdlib/osl/mx_dot_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_int.osl b/libraries/stdlib/osl/mx_dot_int.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_int.osl rename to libraries/stdlib/osl/mx_dot_int.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_lightshader.osl b/libraries/stdlib/osl/mx_dot_lightshader.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_lightshader.osl rename to libraries/stdlib/osl/mx_dot_lightshader.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_matrix33.osl b/libraries/stdlib/osl/mx_dot_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_matrix33.osl rename to libraries/stdlib/osl/mx_dot_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_matrix44.osl b/libraries/stdlib/osl/mx_dot_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_matrix44.osl rename to libraries/stdlib/osl/mx_dot_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_string.osl b/libraries/stdlib/osl/mx_dot_string.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_string.osl rename to libraries/stdlib/osl/mx_dot_string.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_surfaceshader.osl b/libraries/stdlib/osl/mx_dot_surfaceshader.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_surfaceshader.osl rename to libraries/stdlib/osl/mx_dot_surfaceshader.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_vector.osl b/libraries/stdlib/osl/mx_dot_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_vector.osl rename to libraries/stdlib/osl/mx_dot_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_vector2.osl b/libraries/stdlib/osl/mx_dot_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_vector2.osl rename to libraries/stdlib/osl/mx_dot_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_vector4.osl b/libraries/stdlib/osl/mx_dot_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_vector4.osl rename to libraries/stdlib/osl/mx_dot_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_dot_volumeshader.osl b/libraries/stdlib/osl/mx_dot_volumeshader.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dot_volumeshader.osl rename to libraries/stdlib/osl/mx_dot_volumeshader.osl diff --git a/documents/Libraries/stdlib/osl/mx_dotproduct_vector.osl b/libraries/stdlib/osl/mx_dotproduct_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dotproduct_vector.osl rename to libraries/stdlib/osl/mx_dotproduct_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_dotproduct_vector2.osl b/libraries/stdlib/osl/mx_dotproduct_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dotproduct_vector2.osl rename to libraries/stdlib/osl/mx_dotproduct_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_dotproduct_vector4.osl b/libraries/stdlib/osl/mx_dotproduct_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_dotproduct_vector4.osl rename to libraries/stdlib/osl/mx_dotproduct_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_exp_color.osl b/libraries/stdlib/osl/mx_exp_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exp_color.osl rename to libraries/stdlib/osl/mx_exp_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_exp_color2.osl b/libraries/stdlib/osl/mx_exp_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exp_color2.osl rename to libraries/stdlib/osl/mx_exp_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_exp_color4.osl b/libraries/stdlib/osl/mx_exp_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exp_color4.osl rename to libraries/stdlib/osl/mx_exp_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_exp_float.osl b/libraries/stdlib/osl/mx_exp_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exp_float.osl rename to libraries/stdlib/osl/mx_exp_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_exp_vector.osl b/libraries/stdlib/osl/mx_exp_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exp_vector.osl rename to libraries/stdlib/osl/mx_exp_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_exp_vector2.osl b/libraries/stdlib/osl/mx_exp_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exp_vector2.osl rename to libraries/stdlib/osl/mx_exp_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_exp_vector4.osl b/libraries/stdlib/osl/mx_exp_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exp_vector4.osl rename to libraries/stdlib/osl/mx_exp_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_exponent_float.osl b/libraries/stdlib/osl/mx_exponent_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exponent_float.osl rename to libraries/stdlib/osl/mx_exponent_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_exponent_vector.osl b/libraries/stdlib/osl/mx_exponent_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exponent_vector.osl rename to libraries/stdlib/osl/mx_exponent_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_exponent_vector2.osl b/libraries/stdlib/osl/mx_exponent_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exponent_vector2.osl rename to libraries/stdlib/osl/mx_exponent_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_exponent_vector4.osl b/libraries/stdlib/osl/mx_exponent_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_exponent_vector4.osl rename to libraries/stdlib/osl/mx_exponent_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_extract_color.osl b/libraries/stdlib/osl/mx_extract_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_extract_color.osl rename to libraries/stdlib/osl/mx_extract_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_extract_color2.osl b/libraries/stdlib/osl/mx_extract_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_extract_color2.osl rename to libraries/stdlib/osl/mx_extract_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_extract_color4.osl b/libraries/stdlib/osl/mx_extract_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_extract_color4.osl rename to libraries/stdlib/osl/mx_extract_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_extract_vector.osl b/libraries/stdlib/osl/mx_extract_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_extract_vector.osl rename to libraries/stdlib/osl/mx_extract_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_extract_vector2.osl b/libraries/stdlib/osl/mx_extract_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_extract_vector2.osl rename to libraries/stdlib/osl/mx_extract_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_extract_vector4.osl b/libraries/stdlib/osl/mx_extract_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_extract_vector4.osl rename to libraries/stdlib/osl/mx_extract_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_floor_color.osl b/libraries/stdlib/osl/mx_floor_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_floor_color.osl rename to libraries/stdlib/osl/mx_floor_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_floor_color2.osl b/libraries/stdlib/osl/mx_floor_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_floor_color2.osl rename to libraries/stdlib/osl/mx_floor_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_floor_color4.osl b/libraries/stdlib/osl/mx_floor_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_floor_color4.osl rename to libraries/stdlib/osl/mx_floor_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_floor_float.osl b/libraries/stdlib/osl/mx_floor_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_floor_float.osl rename to libraries/stdlib/osl/mx_floor_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_floor_vector.osl b/libraries/stdlib/osl/mx_floor_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_floor_vector.osl rename to libraries/stdlib/osl/mx_floor_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_floor_vector2.osl b/libraries/stdlib/osl/mx_floor_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_floor_vector2.osl rename to libraries/stdlib/osl/mx_floor_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_floor_vector4.osl b/libraries/stdlib/osl/mx_floor_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_floor_vector4.osl rename to libraries/stdlib/osl/mx_floor_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_color.osl b/libraries/stdlib/osl/mx_fractal3d_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_color.osl rename to libraries/stdlib/osl/mx_fractal3d_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_color2.osl b/libraries/stdlib/osl/mx_fractal3d_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_color2.osl rename to libraries/stdlib/osl/mx_fractal3d_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_color4.osl b/libraries/stdlib/osl/mx_fractal3d_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_color4.osl rename to libraries/stdlib/osl/mx_fractal3d_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_fa_color.osl b/libraries/stdlib/osl/mx_fractal3d_fa_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_fa_color.osl rename to libraries/stdlib/osl/mx_fractal3d_fa_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_fa_color2.osl b/libraries/stdlib/osl/mx_fractal3d_fa_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_fa_color2.osl rename to libraries/stdlib/osl/mx_fractal3d_fa_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_fa_color4.osl b/libraries/stdlib/osl/mx_fractal3d_fa_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_fa_color4.osl rename to libraries/stdlib/osl/mx_fractal3d_fa_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_fa_vector.osl b/libraries/stdlib/osl/mx_fractal3d_fa_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_fa_vector.osl rename to libraries/stdlib/osl/mx_fractal3d_fa_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_fa_vector2.osl b/libraries/stdlib/osl/mx_fractal3d_fa_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_fa_vector2.osl rename to libraries/stdlib/osl/mx_fractal3d_fa_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_fa_vector4.osl b/libraries/stdlib/osl/mx_fractal3d_fa_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_fa_vector4.osl rename to libraries/stdlib/osl/mx_fractal3d_fa_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_float.osl b/libraries/stdlib/osl/mx_fractal3d_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_float.osl rename to libraries/stdlib/osl/mx_fractal3d_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_vector.osl b/libraries/stdlib/osl/mx_fractal3d_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_vector.osl rename to libraries/stdlib/osl/mx_fractal3d_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_vector2.osl b/libraries/stdlib/osl/mx_fractal3d_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_vector2.osl rename to libraries/stdlib/osl/mx_fractal3d_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_fractal3d_vector4.osl b/libraries/stdlib/osl/mx_fractal3d_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_fractal3d_vector4.osl rename to libraries/stdlib/osl/mx_fractal3d_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_frame_float.osl b/libraries/stdlib/osl/mx_frame_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_frame_float.osl rename to libraries/stdlib/osl/mx_frame_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_funcs.h b/libraries/stdlib/osl/mx_funcs.h similarity index 100% rename from documents/Libraries/stdlib/osl/mx_funcs.h rename to libraries/stdlib/osl/mx_funcs.h diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_bool.osl b/libraries/stdlib/osl/mx_geomattrvalue_bool.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_bool.osl rename to libraries/stdlib/osl/mx_geomattrvalue_bool.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_color.osl b/libraries/stdlib/osl/mx_geomattrvalue_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_color.osl rename to libraries/stdlib/osl/mx_geomattrvalue_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_color2.osl b/libraries/stdlib/osl/mx_geomattrvalue_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_color2.osl rename to libraries/stdlib/osl/mx_geomattrvalue_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_color4.osl b/libraries/stdlib/osl/mx_geomattrvalue_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_color4.osl rename to libraries/stdlib/osl/mx_geomattrvalue_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_float.osl b/libraries/stdlib/osl/mx_geomattrvalue_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_float.osl rename to libraries/stdlib/osl/mx_geomattrvalue_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_int.osl b/libraries/stdlib/osl/mx_geomattrvalue_int.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_int.osl rename to libraries/stdlib/osl/mx_geomattrvalue_int.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_string.osl b/libraries/stdlib/osl/mx_geomattrvalue_string.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_string.osl rename to libraries/stdlib/osl/mx_geomattrvalue_string.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_vector.osl b/libraries/stdlib/osl/mx_geomattrvalue_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_vector.osl rename to libraries/stdlib/osl/mx_geomattrvalue_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_vector2.osl b/libraries/stdlib/osl/mx_geomattrvalue_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_vector2.osl rename to libraries/stdlib/osl/mx_geomattrvalue_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomattrvalue_vector4.osl b/libraries/stdlib/osl/mx_geomattrvalue_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomattrvalue_vector4.osl rename to libraries/stdlib/osl/mx_geomattrvalue_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomcolor_color.osl b/libraries/stdlib/osl/mx_geomcolor_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomcolor_color.osl rename to libraries/stdlib/osl/mx_geomcolor_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomcolor_color2.osl b/libraries/stdlib/osl/mx_geomcolor_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomcolor_color2.osl rename to libraries/stdlib/osl/mx_geomcolor_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomcolor_color4.osl b/libraries/stdlib/osl/mx_geomcolor_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomcolor_color4.osl rename to libraries/stdlib/osl/mx_geomcolor_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_geomcolor_float.osl b/libraries/stdlib/osl/mx_geomcolor_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_geomcolor_float.osl rename to libraries/stdlib/osl/mx_geomcolor_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_heighttonormal_vector.osl b/libraries/stdlib/osl/mx_heighttonormal_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_heighttonormal_vector.osl rename to libraries/stdlib/osl/mx_heighttonormal_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_hsvadjust_color.osl b/libraries/stdlib/osl/mx_hsvadjust_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_hsvadjust_color.osl rename to libraries/stdlib/osl/mx_hsvadjust_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_hsvadjust_color4.osl b/libraries/stdlib/osl/mx_hsvadjust_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_hsvadjust_color4.osl rename to libraries/stdlib/osl/mx_hsvadjust_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_hsvtorgb_color.osl b/libraries/stdlib/osl/mx_hsvtorgb_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_hsvtorgb_color.osl rename to libraries/stdlib/osl/mx_hsvtorgb_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_hsvtorgb_color4.osl b/libraries/stdlib/osl/mx_hsvtorgb_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_hsvtorgb_color4.osl rename to libraries/stdlib/osl/mx_hsvtorgb_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_hueshift_color.osl b/libraries/stdlib/osl/mx_hueshift_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_hueshift_color.osl rename to libraries/stdlib/osl/mx_hueshift_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_hueshift_color4.osl b/libraries/stdlib/osl/mx_hueshift_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_hueshift_color4.osl rename to libraries/stdlib/osl/mx_hueshift_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_image_color.osl b/libraries/stdlib/osl/mx_image_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_image_color.osl rename to libraries/stdlib/osl/mx_image_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_image_color2.osl b/libraries/stdlib/osl/mx_image_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_image_color2.osl rename to libraries/stdlib/osl/mx_image_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_image_color4.osl b/libraries/stdlib/osl/mx_image_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_image_color4.osl rename to libraries/stdlib/osl/mx_image_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_image_float.osl b/libraries/stdlib/osl/mx_image_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_image_float.osl rename to libraries/stdlib/osl/mx_image_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_image_vector.osl b/libraries/stdlib/osl/mx_image_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_image_vector.osl rename to libraries/stdlib/osl/mx_image_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_image_vector2.osl b/libraries/stdlib/osl/mx_image_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_image_vector2.osl rename to libraries/stdlib/osl/mx_image_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_image_vector4.osl b/libraries/stdlib/osl/mx_image_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_image_vector4.osl rename to libraries/stdlib/osl/mx_image_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_in_color2.osl b/libraries/stdlib/osl/mx_in_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_in_color2.osl rename to libraries/stdlib/osl/mx_in_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_in_color4.osl b/libraries/stdlib/osl/mx_in_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_in_color4.osl rename to libraries/stdlib/osl/mx_in_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_inside_color.osl b/libraries/stdlib/osl/mx_inside_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_inside_color.osl rename to libraries/stdlib/osl/mx_inside_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_inside_color2.osl b/libraries/stdlib/osl/mx_inside_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_inside_color2.osl rename to libraries/stdlib/osl/mx_inside_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_inside_color4.osl b/libraries/stdlib/osl/mx_inside_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_inside_color4.osl rename to libraries/stdlib/osl/mx_inside_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_inside_float.osl b/libraries/stdlib/osl/mx_inside_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_inside_float.osl rename to libraries/stdlib/osl/mx_inside_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_color.osl b/libraries/stdlib/osl/mx_invert_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_color.osl rename to libraries/stdlib/osl/mx_invert_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_color2.osl b/libraries/stdlib/osl/mx_invert_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_color2.osl rename to libraries/stdlib/osl/mx_invert_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_color4.osl b/libraries/stdlib/osl/mx_invert_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_color4.osl rename to libraries/stdlib/osl/mx_invert_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_float.osl b/libraries/stdlib/osl/mx_invert_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_float.osl rename to libraries/stdlib/osl/mx_invert_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_float_color.osl b/libraries/stdlib/osl/mx_invert_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_float_color.osl rename to libraries/stdlib/osl/mx_invert_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_float_color2.osl b/libraries/stdlib/osl/mx_invert_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_float_color2.osl rename to libraries/stdlib/osl/mx_invert_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_float_color4.osl b/libraries/stdlib/osl/mx_invert_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_float_color4.osl rename to libraries/stdlib/osl/mx_invert_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_float_vector.osl b/libraries/stdlib/osl/mx_invert_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_float_vector.osl rename to libraries/stdlib/osl/mx_invert_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_float_vector2.osl b/libraries/stdlib/osl/mx_invert_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_float_vector2.osl rename to libraries/stdlib/osl/mx_invert_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_float_vector4.osl b/libraries/stdlib/osl/mx_invert_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_float_vector4.osl rename to libraries/stdlib/osl/mx_invert_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_vector.osl b/libraries/stdlib/osl/mx_invert_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_vector.osl rename to libraries/stdlib/osl/mx_invert_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_vector2.osl b/libraries/stdlib/osl/mx_invert_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_vector2.osl rename to libraries/stdlib/osl/mx_invert_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_invert_vector4.osl b/libraries/stdlib/osl/mx_invert_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_invert_vector4.osl rename to libraries/stdlib/osl/mx_invert_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ln_color.osl b/libraries/stdlib/osl/mx_ln_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ln_color.osl rename to libraries/stdlib/osl/mx_ln_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_ln_color2.osl b/libraries/stdlib/osl/mx_ln_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ln_color2.osl rename to libraries/stdlib/osl/mx_ln_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ln_color4.osl b/libraries/stdlib/osl/mx_ln_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ln_color4.osl rename to libraries/stdlib/osl/mx_ln_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ln_float.osl b/libraries/stdlib/osl/mx_ln_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ln_float.osl rename to libraries/stdlib/osl/mx_ln_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_ln_vector.osl b/libraries/stdlib/osl/mx_ln_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ln_vector.osl rename to libraries/stdlib/osl/mx_ln_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_ln_vector2.osl b/libraries/stdlib/osl/mx_ln_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ln_vector2.osl rename to libraries/stdlib/osl/mx_ln_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ln_vector4.osl b/libraries/stdlib/osl/mx_ln_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ln_vector4.osl rename to libraries/stdlib/osl/mx_ln_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_luminance_color.osl b/libraries/stdlib/osl/mx_luminance_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_luminance_color.osl rename to libraries/stdlib/osl/mx_luminance_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_luminance_color4.osl b/libraries/stdlib/osl/mx_luminance_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_luminance_color4.osl rename to libraries/stdlib/osl/mx_luminance_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_magnitude_vector.osl b/libraries/stdlib/osl/mx_magnitude_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_magnitude_vector.osl rename to libraries/stdlib/osl/mx_magnitude_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_magnitude_vector2.osl b/libraries/stdlib/osl/mx_magnitude_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_magnitude_vector2.osl rename to libraries/stdlib/osl/mx_magnitude_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_magnitude_vector4.osl b/libraries/stdlib/osl/mx_magnitude_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_magnitude_vector4.osl rename to libraries/stdlib/osl/mx_magnitude_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_mask_color2.osl b/libraries/stdlib/osl/mx_mask_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mask_color2.osl rename to libraries/stdlib/osl/mx_mask_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_mask_color4.osl b/libraries/stdlib/osl/mx_mask_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mask_color4.osl rename to libraries/stdlib/osl/mx_mask_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_matrix_invert_matrix33.osl b/libraries/stdlib/osl/mx_matrix_invert_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_matrix_invert_matrix33.osl rename to libraries/stdlib/osl/mx_matrix_invert_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_matrix_invert_matrix44.osl b/libraries/stdlib/osl/mx_matrix_invert_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_matrix_invert_matrix44.osl rename to libraries/stdlib/osl/mx_matrix_invert_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_matte_color2.osl b/libraries/stdlib/osl/mx_matte_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_matte_color2.osl rename to libraries/stdlib/osl/mx_matte_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_matte_color4.osl b/libraries/stdlib/osl/mx_matte_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_matte_color4.osl rename to libraries/stdlib/osl/mx_matte_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_color.osl b/libraries/stdlib/osl/mx_max_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_color.osl rename to libraries/stdlib/osl/mx_max_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_color2.osl b/libraries/stdlib/osl/mx_max_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_color2.osl rename to libraries/stdlib/osl/mx_max_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_color4.osl b/libraries/stdlib/osl/mx_max_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_color4.osl rename to libraries/stdlib/osl/mx_max_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_float.osl b/libraries/stdlib/osl/mx_max_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_float.osl rename to libraries/stdlib/osl/mx_max_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_float_color.osl b/libraries/stdlib/osl/mx_max_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_float_color.osl rename to libraries/stdlib/osl/mx_max_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_float_color2.osl b/libraries/stdlib/osl/mx_max_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_float_color2.osl rename to libraries/stdlib/osl/mx_max_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_float_color4.osl b/libraries/stdlib/osl/mx_max_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_float_color4.osl rename to libraries/stdlib/osl/mx_max_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_float_vector.osl b/libraries/stdlib/osl/mx_max_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_float_vector.osl rename to libraries/stdlib/osl/mx_max_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_float_vector2.osl b/libraries/stdlib/osl/mx_max_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_float_vector2.osl rename to libraries/stdlib/osl/mx_max_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_float_vector4.osl b/libraries/stdlib/osl/mx_max_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_float_vector4.osl rename to libraries/stdlib/osl/mx_max_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_vector.osl b/libraries/stdlib/osl/mx_max_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_vector.osl rename to libraries/stdlib/osl/mx_max_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_vector2.osl b/libraries/stdlib/osl/mx_max_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_vector2.osl rename to libraries/stdlib/osl/mx_max_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_max_vector4.osl b/libraries/stdlib/osl/mx_max_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_max_vector4.osl rename to libraries/stdlib/osl/mx_max_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_color.osl b/libraries/stdlib/osl/mx_min_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_color.osl rename to libraries/stdlib/osl/mx_min_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_color2.osl b/libraries/stdlib/osl/mx_min_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_color2.osl rename to libraries/stdlib/osl/mx_min_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_color4.osl b/libraries/stdlib/osl/mx_min_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_color4.osl rename to libraries/stdlib/osl/mx_min_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_float.osl b/libraries/stdlib/osl/mx_min_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_float.osl rename to libraries/stdlib/osl/mx_min_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_float_color.osl b/libraries/stdlib/osl/mx_min_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_float_color.osl rename to libraries/stdlib/osl/mx_min_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_float_color2.osl b/libraries/stdlib/osl/mx_min_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_float_color2.osl rename to libraries/stdlib/osl/mx_min_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_float_color4.osl b/libraries/stdlib/osl/mx_min_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_float_color4.osl rename to libraries/stdlib/osl/mx_min_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_float_vector.osl b/libraries/stdlib/osl/mx_min_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_float_vector.osl rename to libraries/stdlib/osl/mx_min_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_float_vector2.osl b/libraries/stdlib/osl/mx_min_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_float_vector2.osl rename to libraries/stdlib/osl/mx_min_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_float_vector4.osl b/libraries/stdlib/osl/mx_min_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_float_vector4.osl rename to libraries/stdlib/osl/mx_min_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_vector.osl b/libraries/stdlib/osl/mx_min_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_vector.osl rename to libraries/stdlib/osl/mx_min_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_vector2.osl b/libraries/stdlib/osl/mx_min_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_vector2.osl rename to libraries/stdlib/osl/mx_min_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_min_vector4.osl b/libraries/stdlib/osl/mx_min_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_min_vector4.osl rename to libraries/stdlib/osl/mx_min_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_color.osl b/libraries/stdlib/osl/mx_mix_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_color.osl rename to libraries/stdlib/osl/mx_mix_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_color2.osl b/libraries/stdlib/osl/mx_mix_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_color2.osl rename to libraries/stdlib/osl/mx_mix_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_color4.osl b/libraries/stdlib/osl/mx_mix_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_color4.osl rename to libraries/stdlib/osl/mx_mix_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_float.osl b/libraries/stdlib/osl/mx_mix_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_float.osl rename to libraries/stdlib/osl/mx_mix_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_surfaceshader.osl b/libraries/stdlib/osl/mx_mix_surfaceshader.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_surfaceshader.osl rename to libraries/stdlib/osl/mx_mix_surfaceshader.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_vector.osl b/libraries/stdlib/osl/mx_mix_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_vector.osl rename to libraries/stdlib/osl/mx_mix_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_vector2.osl b/libraries/stdlib/osl/mx_mix_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_vector2.osl rename to libraries/stdlib/osl/mx_mix_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_mix_vector4.osl b/libraries/stdlib/osl/mx_mix_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mix_vector4.osl rename to libraries/stdlib/osl/mx_mix_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_color.osl b/libraries/stdlib/osl/mx_modulo_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_color.osl rename to libraries/stdlib/osl/mx_modulo_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_color2.osl b/libraries/stdlib/osl/mx_modulo_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_color2.osl rename to libraries/stdlib/osl/mx_modulo_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_color4.osl b/libraries/stdlib/osl/mx_modulo_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_color4.osl rename to libraries/stdlib/osl/mx_modulo_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_float.osl b/libraries/stdlib/osl/mx_modulo_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_float.osl rename to libraries/stdlib/osl/mx_modulo_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_float_color.osl b/libraries/stdlib/osl/mx_modulo_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_float_color.osl rename to libraries/stdlib/osl/mx_modulo_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_float_color2.osl b/libraries/stdlib/osl/mx_modulo_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_float_color2.osl rename to libraries/stdlib/osl/mx_modulo_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_float_color4.osl b/libraries/stdlib/osl/mx_modulo_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_float_color4.osl rename to libraries/stdlib/osl/mx_modulo_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_float_vector.osl b/libraries/stdlib/osl/mx_modulo_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_float_vector.osl rename to libraries/stdlib/osl/mx_modulo_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_float_vector2.osl b/libraries/stdlib/osl/mx_modulo_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_float_vector2.osl rename to libraries/stdlib/osl/mx_modulo_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_float_vector4.osl b/libraries/stdlib/osl/mx_modulo_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_float_vector4.osl rename to libraries/stdlib/osl/mx_modulo_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_vector.osl b/libraries/stdlib/osl/mx_modulo_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_vector.osl rename to libraries/stdlib/osl/mx_modulo_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_vector2.osl b/libraries/stdlib/osl/mx_modulo_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_vector2.osl rename to libraries/stdlib/osl/mx_modulo_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_modulo_vector4.osl b/libraries/stdlib/osl/mx_modulo_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_modulo_vector4.osl rename to libraries/stdlib/osl/mx_modulo_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_mult_surfaceshader_color.osl b/libraries/stdlib/osl/mx_mult_surfaceshader_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mult_surfaceshader_color.osl rename to libraries/stdlib/osl/mx_mult_surfaceshader_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_mult_surfaceshader_float.osl b/libraries/stdlib/osl/mx_mult_surfaceshader_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_mult_surfaceshader_float.osl rename to libraries/stdlib/osl/mx_mult_surfaceshader_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_color.osl b/libraries/stdlib/osl/mx_multiply_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_color.osl rename to libraries/stdlib/osl/mx_multiply_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_color2.osl b/libraries/stdlib/osl/mx_multiply_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_color2.osl rename to libraries/stdlib/osl/mx_multiply_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_color4.osl b/libraries/stdlib/osl/mx_multiply_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_color4.osl rename to libraries/stdlib/osl/mx_multiply_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float.osl b/libraries/stdlib/osl/mx_multiply_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float.osl rename to libraries/stdlib/osl/mx_multiply_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_color.osl b/libraries/stdlib/osl/mx_multiply_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_color.osl rename to libraries/stdlib/osl/mx_multiply_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_color2.osl b/libraries/stdlib/osl/mx_multiply_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_color2.osl rename to libraries/stdlib/osl/mx_multiply_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_color4.osl b/libraries/stdlib/osl/mx_multiply_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_color4.osl rename to libraries/stdlib/osl/mx_multiply_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_matrix33.osl b/libraries/stdlib/osl/mx_multiply_float_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_matrix33.osl rename to libraries/stdlib/osl/mx_multiply_float_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_matrix44.osl b/libraries/stdlib/osl/mx_multiply_float_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_matrix44.osl rename to libraries/stdlib/osl/mx_multiply_float_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_vector.osl b/libraries/stdlib/osl/mx_multiply_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_vector.osl rename to libraries/stdlib/osl/mx_multiply_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_vector2.osl b/libraries/stdlib/osl/mx_multiply_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_vector2.osl rename to libraries/stdlib/osl/mx_multiply_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_float_vector4.osl b/libraries/stdlib/osl/mx_multiply_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_float_vector4.osl rename to libraries/stdlib/osl/mx_multiply_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_matrix33.osl b/libraries/stdlib/osl/mx_multiply_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_matrix33.osl rename to libraries/stdlib/osl/mx_multiply_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_matrix44.osl b/libraries/stdlib/osl/mx_multiply_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_matrix44.osl rename to libraries/stdlib/osl/mx_multiply_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_vector.osl b/libraries/stdlib/osl/mx_multiply_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_vector.osl rename to libraries/stdlib/osl/mx_multiply_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_vector2.osl b/libraries/stdlib/osl/mx_multiply_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_vector2.osl rename to libraries/stdlib/osl/mx_multiply_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_multiply_vector4.osl b/libraries/stdlib/osl/mx_multiply_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_multiply_vector4.osl rename to libraries/stdlib/osl/mx_multiply_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_color.osl b/libraries/stdlib/osl/mx_noise2d_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_color.osl rename to libraries/stdlib/osl/mx_noise2d_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_color2.osl b/libraries/stdlib/osl/mx_noise2d_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_color2.osl rename to libraries/stdlib/osl/mx_noise2d_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_color4.osl b/libraries/stdlib/osl/mx_noise2d_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_color4.osl rename to libraries/stdlib/osl/mx_noise2d_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_fa_color.osl b/libraries/stdlib/osl/mx_noise2d_fa_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_fa_color.osl rename to libraries/stdlib/osl/mx_noise2d_fa_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_fa_color2.osl b/libraries/stdlib/osl/mx_noise2d_fa_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_fa_color2.osl rename to libraries/stdlib/osl/mx_noise2d_fa_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_fa_color4.osl b/libraries/stdlib/osl/mx_noise2d_fa_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_fa_color4.osl rename to libraries/stdlib/osl/mx_noise2d_fa_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_fa_vector.osl b/libraries/stdlib/osl/mx_noise2d_fa_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_fa_vector.osl rename to libraries/stdlib/osl/mx_noise2d_fa_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_fa_vector2.osl b/libraries/stdlib/osl/mx_noise2d_fa_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_fa_vector2.osl rename to libraries/stdlib/osl/mx_noise2d_fa_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_fa_vector4.osl b/libraries/stdlib/osl/mx_noise2d_fa_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_fa_vector4.osl rename to libraries/stdlib/osl/mx_noise2d_fa_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_float.osl b/libraries/stdlib/osl/mx_noise2d_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_float.osl rename to libraries/stdlib/osl/mx_noise2d_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_vector.osl b/libraries/stdlib/osl/mx_noise2d_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_vector.osl rename to libraries/stdlib/osl/mx_noise2d_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_vector2.osl b/libraries/stdlib/osl/mx_noise2d_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_vector2.osl rename to libraries/stdlib/osl/mx_noise2d_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise2d_vector4.osl b/libraries/stdlib/osl/mx_noise2d_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise2d_vector4.osl rename to libraries/stdlib/osl/mx_noise2d_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_color.osl b/libraries/stdlib/osl/mx_noise3d_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_color.osl rename to libraries/stdlib/osl/mx_noise3d_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_color2.osl b/libraries/stdlib/osl/mx_noise3d_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_color2.osl rename to libraries/stdlib/osl/mx_noise3d_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_color4.osl b/libraries/stdlib/osl/mx_noise3d_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_color4.osl rename to libraries/stdlib/osl/mx_noise3d_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_fa_color.osl b/libraries/stdlib/osl/mx_noise3d_fa_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_fa_color.osl rename to libraries/stdlib/osl/mx_noise3d_fa_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_fa_color2.osl b/libraries/stdlib/osl/mx_noise3d_fa_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_fa_color2.osl rename to libraries/stdlib/osl/mx_noise3d_fa_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_fa_color4.osl b/libraries/stdlib/osl/mx_noise3d_fa_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_fa_color4.osl rename to libraries/stdlib/osl/mx_noise3d_fa_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_fa_vector.osl b/libraries/stdlib/osl/mx_noise3d_fa_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_fa_vector.osl rename to libraries/stdlib/osl/mx_noise3d_fa_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_fa_vector2.osl b/libraries/stdlib/osl/mx_noise3d_fa_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_fa_vector2.osl rename to libraries/stdlib/osl/mx_noise3d_fa_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_fa_vector4.osl b/libraries/stdlib/osl/mx_noise3d_fa_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_fa_vector4.osl rename to libraries/stdlib/osl/mx_noise3d_fa_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_float.osl b/libraries/stdlib/osl/mx_noise3d_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_float.osl rename to libraries/stdlib/osl/mx_noise3d_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_vector.osl b/libraries/stdlib/osl/mx_noise3d_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_vector.osl rename to libraries/stdlib/osl/mx_noise3d_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_vector2.osl b/libraries/stdlib/osl/mx_noise3d_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_vector2.osl rename to libraries/stdlib/osl/mx_noise3d_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_noise3d_vector4.osl b/libraries/stdlib/osl/mx_noise3d_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_noise3d_vector4.osl rename to libraries/stdlib/osl/mx_noise3d_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_normal_vector.osl b/libraries/stdlib/osl/mx_normal_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_normal_vector.osl rename to libraries/stdlib/osl/mx_normal_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_normalize_vector.osl b/libraries/stdlib/osl/mx_normalize_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_normalize_vector.osl rename to libraries/stdlib/osl/mx_normalize_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_normalize_vector2.osl b/libraries/stdlib/osl/mx_normalize_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_normalize_vector2.osl rename to libraries/stdlib/osl/mx_normalize_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_normalize_vector4.osl b/libraries/stdlib/osl/mx_normalize_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_normalize_vector4.osl rename to libraries/stdlib/osl/mx_normalize_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_out_color2.osl b/libraries/stdlib/osl/mx_out_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_out_color2.osl rename to libraries/stdlib/osl/mx_out_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_out_color4.osl b/libraries/stdlib/osl/mx_out_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_out_color4.osl rename to libraries/stdlib/osl/mx_out_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_outside_color.osl b/libraries/stdlib/osl/mx_outside_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_outside_color.osl rename to libraries/stdlib/osl/mx_outside_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_outside_color2.osl b/libraries/stdlib/osl/mx_outside_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_outside_color2.osl rename to libraries/stdlib/osl/mx_outside_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_outside_color4.osl b/libraries/stdlib/osl/mx_outside_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_outside_color4.osl rename to libraries/stdlib/osl/mx_outside_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_outside_float.osl b/libraries/stdlib/osl/mx_outside_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_outside_float.osl rename to libraries/stdlib/osl/mx_outside_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_over_color2.osl b/libraries/stdlib/osl/mx_over_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_over_color2.osl rename to libraries/stdlib/osl/mx_over_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_over_color4.osl b/libraries/stdlib/osl/mx_over_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_over_color4.osl rename to libraries/stdlib/osl/mx_over_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_overlay_color.osl b/libraries/stdlib/osl/mx_overlay_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_overlay_color.osl rename to libraries/stdlib/osl/mx_overlay_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_overlay_color2.osl b/libraries/stdlib/osl/mx_overlay_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_overlay_color2.osl rename to libraries/stdlib/osl/mx_overlay_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_overlay_color4.osl b/libraries/stdlib/osl/mx_overlay_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_overlay_color4.osl rename to libraries/stdlib/osl/mx_overlay_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_overlay_float.osl b/libraries/stdlib/osl/mx_overlay_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_overlay_float.osl rename to libraries/stdlib/osl/mx_overlay_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_position_vector.osl b/libraries/stdlib/osl/mx_position_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_position_vector.osl rename to libraries/stdlib/osl/mx_position_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_color.osl b/libraries/stdlib/osl/mx_power_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_color.osl rename to libraries/stdlib/osl/mx_power_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_color2.osl b/libraries/stdlib/osl/mx_power_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_color2.osl rename to libraries/stdlib/osl/mx_power_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_color4.osl b/libraries/stdlib/osl/mx_power_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_color4.osl rename to libraries/stdlib/osl/mx_power_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_float.osl b/libraries/stdlib/osl/mx_power_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_float.osl rename to libraries/stdlib/osl/mx_power_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_float_color.osl b/libraries/stdlib/osl/mx_power_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_float_color.osl rename to libraries/stdlib/osl/mx_power_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_float_color2.osl b/libraries/stdlib/osl/mx_power_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_float_color2.osl rename to libraries/stdlib/osl/mx_power_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_float_color4.osl b/libraries/stdlib/osl/mx_power_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_float_color4.osl rename to libraries/stdlib/osl/mx_power_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_float_vector.osl b/libraries/stdlib/osl/mx_power_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_float_vector.osl rename to libraries/stdlib/osl/mx_power_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_float_vector2.osl b/libraries/stdlib/osl/mx_power_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_float_vector2.osl rename to libraries/stdlib/osl/mx_power_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_float_vector4.osl b/libraries/stdlib/osl/mx_power_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_float_vector4.osl rename to libraries/stdlib/osl/mx_power_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_vector.osl b/libraries/stdlib/osl/mx_power_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_vector.osl rename to libraries/stdlib/osl/mx_power_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_vector2.osl b/libraries/stdlib/osl/mx_power_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_vector2.osl rename to libraries/stdlib/osl/mx_power_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_power_vector4.osl b/libraries/stdlib/osl/mx_power_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_power_vector4.osl rename to libraries/stdlib/osl/mx_power_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_premult_color.osl b/libraries/stdlib/osl/mx_premult_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_premult_color.osl rename to libraries/stdlib/osl/mx_premult_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_premult_color2.osl b/libraries/stdlib/osl/mx_premult_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_premult_color2.osl rename to libraries/stdlib/osl/mx_premult_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_premult_color4.osl b/libraries/stdlib/osl/mx_premult_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_premult_color4.osl rename to libraries/stdlib/osl/mx_premult_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramp4_color.osl b/libraries/stdlib/osl/mx_ramp4_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramp4_color.osl rename to libraries/stdlib/osl/mx_ramp4_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramp4_color2.osl b/libraries/stdlib/osl/mx_ramp4_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramp4_color2.osl rename to libraries/stdlib/osl/mx_ramp4_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramp4_color4.osl b/libraries/stdlib/osl/mx_ramp4_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramp4_color4.osl rename to libraries/stdlib/osl/mx_ramp4_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramp4_float.osl b/libraries/stdlib/osl/mx_ramp4_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramp4_float.osl rename to libraries/stdlib/osl/mx_ramp4_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramp4_vector.osl b/libraries/stdlib/osl/mx_ramp4_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramp4_vector.osl rename to libraries/stdlib/osl/mx_ramp4_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramp4_vector2.osl b/libraries/stdlib/osl/mx_ramp4_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramp4_vector2.osl rename to libraries/stdlib/osl/mx_ramp4_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramp4_vector4.osl b/libraries/stdlib/osl/mx_ramp4_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramp4_vector4.osl rename to libraries/stdlib/osl/mx_ramp4_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramplr_color.osl b/libraries/stdlib/osl/mx_ramplr_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramplr_color.osl rename to libraries/stdlib/osl/mx_ramplr_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramplr_color2.osl b/libraries/stdlib/osl/mx_ramplr_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramplr_color2.osl rename to libraries/stdlib/osl/mx_ramplr_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramplr_color4.osl b/libraries/stdlib/osl/mx_ramplr_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramplr_color4.osl rename to libraries/stdlib/osl/mx_ramplr_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramplr_float.osl b/libraries/stdlib/osl/mx_ramplr_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramplr_float.osl rename to libraries/stdlib/osl/mx_ramplr_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramplr_vector.osl b/libraries/stdlib/osl/mx_ramplr_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramplr_vector.osl rename to libraries/stdlib/osl/mx_ramplr_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramplr_vector2.osl b/libraries/stdlib/osl/mx_ramplr_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramplr_vector2.osl rename to libraries/stdlib/osl/mx_ramplr_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramplr_vector4.osl b/libraries/stdlib/osl/mx_ramplr_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramplr_vector4.osl rename to libraries/stdlib/osl/mx_ramplr_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramptb_color.osl b/libraries/stdlib/osl/mx_ramptb_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramptb_color.osl rename to libraries/stdlib/osl/mx_ramptb_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramptb_color2.osl b/libraries/stdlib/osl/mx_ramptb_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramptb_color2.osl rename to libraries/stdlib/osl/mx_ramptb_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramptb_color4.osl b/libraries/stdlib/osl/mx_ramptb_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramptb_color4.osl rename to libraries/stdlib/osl/mx_ramptb_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramptb_float.osl b/libraries/stdlib/osl/mx_ramptb_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramptb_float.osl rename to libraries/stdlib/osl/mx_ramptb_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramptb_vector.osl b/libraries/stdlib/osl/mx_ramptb_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramptb_vector.osl rename to libraries/stdlib/osl/mx_ramptb_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramptb_vector2.osl b/libraries/stdlib/osl/mx_ramptb_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramptb_vector2.osl rename to libraries/stdlib/osl/mx_ramptb_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_ramptb_vector4.osl b/libraries/stdlib/osl/mx_ramptb_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_ramptb_vector4.osl rename to libraries/stdlib/osl/mx_ramptb_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_color.osl b/libraries/stdlib/osl/mx_remap_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_color.osl rename to libraries/stdlib/osl/mx_remap_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_color2.osl b/libraries/stdlib/osl/mx_remap_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_color2.osl rename to libraries/stdlib/osl/mx_remap_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_color4.osl b/libraries/stdlib/osl/mx_remap_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_color4.osl rename to libraries/stdlib/osl/mx_remap_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_float.osl b/libraries/stdlib/osl/mx_remap_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_float.osl rename to libraries/stdlib/osl/mx_remap_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_float_color.osl b/libraries/stdlib/osl/mx_remap_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_float_color.osl rename to libraries/stdlib/osl/mx_remap_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_float_color2.osl b/libraries/stdlib/osl/mx_remap_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_float_color2.osl rename to libraries/stdlib/osl/mx_remap_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_float_color4.osl b/libraries/stdlib/osl/mx_remap_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_float_color4.osl rename to libraries/stdlib/osl/mx_remap_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_float_vector.osl b/libraries/stdlib/osl/mx_remap_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_float_vector.osl rename to libraries/stdlib/osl/mx_remap_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_float_vector2.osl b/libraries/stdlib/osl/mx_remap_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_float_vector2.osl rename to libraries/stdlib/osl/mx_remap_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_float_vector4.osl b/libraries/stdlib/osl/mx_remap_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_float_vector4.osl rename to libraries/stdlib/osl/mx_remap_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_vector.osl b/libraries/stdlib/osl/mx_remap_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_vector.osl rename to libraries/stdlib/osl/mx_remap_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_vector2.osl b/libraries/stdlib/osl/mx_remap_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_vector2.osl rename to libraries/stdlib/osl/mx_remap_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_remap_vector4.osl b/libraries/stdlib/osl/mx_remap_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_remap_vector4.osl rename to libraries/stdlib/osl/mx_remap_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_rgbtohsv_color.osl b/libraries/stdlib/osl/mx_rgbtohsv_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_rgbtohsv_color.osl rename to libraries/stdlib/osl/mx_rgbtohsv_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_rgbtohsv_color4.osl b/libraries/stdlib/osl/mx_rgbtohsv_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_rgbtohsv_color4.osl rename to libraries/stdlib/osl/mx_rgbtohsv_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_rotate2d_vector2.osl b/libraries/stdlib/osl/mx_rotate2d_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_rotate2d_vector2.osl rename to libraries/stdlib/osl/mx_rotate2d_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_rotate_vector.osl b/libraries/stdlib/osl/mx_rotate_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_rotate_vector.osl rename to libraries/stdlib/osl/mx_rotate_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_rotate_vector2.osl b/libraries/stdlib/osl/mx_rotate_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_rotate_vector2.osl rename to libraries/stdlib/osl/mx_rotate_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_saturate_color.osl b/libraries/stdlib/osl/mx_saturate_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_saturate_color.osl rename to libraries/stdlib/osl/mx_saturate_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_saturate_color4.osl b/libraries/stdlib/osl/mx_saturate_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_saturate_color4.osl rename to libraries/stdlib/osl/mx_saturate_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_scale_vector.osl b/libraries/stdlib/osl/mx_scale_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_scale_vector.osl rename to libraries/stdlib/osl/mx_scale_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_scale_vector2.osl b/libraries/stdlib/osl/mx_scale_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_scale_vector2.osl rename to libraries/stdlib/osl/mx_scale_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_screen_color.osl b/libraries/stdlib/osl/mx_screen_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_screen_color.osl rename to libraries/stdlib/osl/mx_screen_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_screen_color2.osl b/libraries/stdlib/osl/mx_screen_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_screen_color2.osl rename to libraries/stdlib/osl/mx_screen_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_screen_color4.osl b/libraries/stdlib/osl/mx_screen_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_screen_color4.osl rename to libraries/stdlib/osl/mx_screen_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_screen_float.osl b/libraries/stdlib/osl/mx_screen_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_screen_float.osl rename to libraries/stdlib/osl/mx_screen_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_separate_color.osl b/libraries/stdlib/osl/mx_separate_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_separate_color.osl rename to libraries/stdlib/osl/mx_separate_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_separate_color2.osl b/libraries/stdlib/osl/mx_separate_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_separate_color2.osl rename to libraries/stdlib/osl/mx_separate_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_separate_color4.osl b/libraries/stdlib/osl/mx_separate_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_separate_color4.osl rename to libraries/stdlib/osl/mx_separate_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_separate_vector.osl b/libraries/stdlib/osl/mx_separate_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_separate_vector.osl rename to libraries/stdlib/osl/mx_separate_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_separate_vector2.osl b/libraries/stdlib/osl/mx_separate_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_separate_vector2.osl rename to libraries/stdlib/osl/mx_separate_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_separate_vector4.osl b/libraries/stdlib/osl/mx_separate_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_separate_vector4.osl rename to libraries/stdlib/osl/mx_separate_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_sign_color.osl b/libraries/stdlib/osl/mx_sign_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sign_color.osl rename to libraries/stdlib/osl/mx_sign_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_sign_color2.osl b/libraries/stdlib/osl/mx_sign_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sign_color2.osl rename to libraries/stdlib/osl/mx_sign_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_sign_color4.osl b/libraries/stdlib/osl/mx_sign_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sign_color4.osl rename to libraries/stdlib/osl/mx_sign_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_sign_float.osl b/libraries/stdlib/osl/mx_sign_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sign_float.osl rename to libraries/stdlib/osl/mx_sign_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_sign_vector.osl b/libraries/stdlib/osl/mx_sign_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sign_vector.osl rename to libraries/stdlib/osl/mx_sign_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_sign_vector2.osl b/libraries/stdlib/osl/mx_sign_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sign_vector2.osl rename to libraries/stdlib/osl/mx_sign_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_sign_vector4.osl b/libraries/stdlib/osl/mx_sign_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sign_vector4.osl rename to libraries/stdlib/osl/mx_sign_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_sin_color.osl b/libraries/stdlib/osl/mx_sin_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sin_color.osl rename to libraries/stdlib/osl/mx_sin_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_sin_color2.osl b/libraries/stdlib/osl/mx_sin_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sin_color2.osl rename to libraries/stdlib/osl/mx_sin_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_sin_color4.osl b/libraries/stdlib/osl/mx_sin_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sin_color4.osl rename to libraries/stdlib/osl/mx_sin_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_sin_float.osl b/libraries/stdlib/osl/mx_sin_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sin_float.osl rename to libraries/stdlib/osl/mx_sin_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_sin_vector.osl b/libraries/stdlib/osl/mx_sin_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sin_vector.osl rename to libraries/stdlib/osl/mx_sin_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_sin_vector2.osl b/libraries/stdlib/osl/mx_sin_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sin_vector2.osl rename to libraries/stdlib/osl/mx_sin_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_sin_vector4.osl b/libraries/stdlib/osl/mx_sin_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sin_vector4.osl rename to libraries/stdlib/osl/mx_sin_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_color.osl b/libraries/stdlib/osl/mx_smoothstep_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_color.osl rename to libraries/stdlib/osl/mx_smoothstep_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_color2.osl b/libraries/stdlib/osl/mx_smoothstep_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_color2.osl rename to libraries/stdlib/osl/mx_smoothstep_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_color4.osl b/libraries/stdlib/osl/mx_smoothstep_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_color4.osl rename to libraries/stdlib/osl/mx_smoothstep_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_float.osl b/libraries/stdlib/osl/mx_smoothstep_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_float.osl rename to libraries/stdlib/osl/mx_smoothstep_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_float_color.osl b/libraries/stdlib/osl/mx_smoothstep_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_float_color.osl rename to libraries/stdlib/osl/mx_smoothstep_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_float_color2.osl b/libraries/stdlib/osl/mx_smoothstep_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_float_color2.osl rename to libraries/stdlib/osl/mx_smoothstep_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_float_color4.osl b/libraries/stdlib/osl/mx_smoothstep_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_float_color4.osl rename to libraries/stdlib/osl/mx_smoothstep_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_float_vector.osl b/libraries/stdlib/osl/mx_smoothstep_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_float_vector.osl rename to libraries/stdlib/osl/mx_smoothstep_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_float_vector2.osl b/libraries/stdlib/osl/mx_smoothstep_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_float_vector2.osl rename to libraries/stdlib/osl/mx_smoothstep_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_float_vector4.osl b/libraries/stdlib/osl/mx_smoothstep_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_float_vector4.osl rename to libraries/stdlib/osl/mx_smoothstep_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_vector.osl b/libraries/stdlib/osl/mx_smoothstep_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_vector.osl rename to libraries/stdlib/osl/mx_smoothstep_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_vector2.osl b/libraries/stdlib/osl/mx_smoothstep_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_vector2.osl rename to libraries/stdlib/osl/mx_smoothstep_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_smoothstep_vector4.osl b/libraries/stdlib/osl/mx_smoothstep_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_smoothstep_vector4.osl rename to libraries/stdlib/osl/mx_smoothstep_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_splitlr_color.osl b/libraries/stdlib/osl/mx_splitlr_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splitlr_color.osl rename to libraries/stdlib/osl/mx_splitlr_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_splitlr_color2.osl b/libraries/stdlib/osl/mx_splitlr_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splitlr_color2.osl rename to libraries/stdlib/osl/mx_splitlr_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_splitlr_color4.osl b/libraries/stdlib/osl/mx_splitlr_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splitlr_color4.osl rename to libraries/stdlib/osl/mx_splitlr_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_splitlr_float.osl b/libraries/stdlib/osl/mx_splitlr_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splitlr_float.osl rename to libraries/stdlib/osl/mx_splitlr_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_splitlr_vector.osl b/libraries/stdlib/osl/mx_splitlr_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splitlr_vector.osl rename to libraries/stdlib/osl/mx_splitlr_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_splitlr_vector2.osl b/libraries/stdlib/osl/mx_splitlr_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splitlr_vector2.osl rename to libraries/stdlib/osl/mx_splitlr_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_splitlr_vector4.osl b/libraries/stdlib/osl/mx_splitlr_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splitlr_vector4.osl rename to libraries/stdlib/osl/mx_splitlr_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_splittb_color.osl b/libraries/stdlib/osl/mx_splittb_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splittb_color.osl rename to libraries/stdlib/osl/mx_splittb_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_splittb_color2.osl b/libraries/stdlib/osl/mx_splittb_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splittb_color2.osl rename to libraries/stdlib/osl/mx_splittb_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_splittb_color4.osl b/libraries/stdlib/osl/mx_splittb_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splittb_color4.osl rename to libraries/stdlib/osl/mx_splittb_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_splittb_float.osl b/libraries/stdlib/osl/mx_splittb_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splittb_float.osl rename to libraries/stdlib/osl/mx_splittb_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_splittb_vector.osl b/libraries/stdlib/osl/mx_splittb_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splittb_vector.osl rename to libraries/stdlib/osl/mx_splittb_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_splittb_vector2.osl b/libraries/stdlib/osl/mx_splittb_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splittb_vector2.osl rename to libraries/stdlib/osl/mx_splittb_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_splittb_vector4.osl b/libraries/stdlib/osl/mx_splittb_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_splittb_vector4.osl rename to libraries/stdlib/osl/mx_splittb_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_sqrt_color.osl b/libraries/stdlib/osl/mx_sqrt_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sqrt_color.osl rename to libraries/stdlib/osl/mx_sqrt_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_sqrt_color2.osl b/libraries/stdlib/osl/mx_sqrt_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sqrt_color2.osl rename to libraries/stdlib/osl/mx_sqrt_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_sqrt_color4.osl b/libraries/stdlib/osl/mx_sqrt_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sqrt_color4.osl rename to libraries/stdlib/osl/mx_sqrt_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_sqrt_float.osl b/libraries/stdlib/osl/mx_sqrt_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sqrt_float.osl rename to libraries/stdlib/osl/mx_sqrt_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_sqrt_vector.osl b/libraries/stdlib/osl/mx_sqrt_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sqrt_vector.osl rename to libraries/stdlib/osl/mx_sqrt_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_sqrt_vector2.osl b/libraries/stdlib/osl/mx_sqrt_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sqrt_vector2.osl rename to libraries/stdlib/osl/mx_sqrt_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_sqrt_vector4.osl b/libraries/stdlib/osl/mx_sqrt_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_sqrt_vector4.osl rename to libraries/stdlib/osl/mx_sqrt_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_color.osl b/libraries/stdlib/osl/mx_subtract_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_color.osl rename to libraries/stdlib/osl/mx_subtract_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_color2.osl b/libraries/stdlib/osl/mx_subtract_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_color2.osl rename to libraries/stdlib/osl/mx_subtract_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_color4.osl b/libraries/stdlib/osl/mx_subtract_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_color4.osl rename to libraries/stdlib/osl/mx_subtract_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float.osl b/libraries/stdlib/osl/mx_subtract_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float.osl rename to libraries/stdlib/osl/mx_subtract_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_color.osl b/libraries/stdlib/osl/mx_subtract_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_color.osl rename to libraries/stdlib/osl/mx_subtract_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_color2.osl b/libraries/stdlib/osl/mx_subtract_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_color2.osl rename to libraries/stdlib/osl/mx_subtract_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_color4.osl b/libraries/stdlib/osl/mx_subtract_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_color4.osl rename to libraries/stdlib/osl/mx_subtract_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_matrix33.osl b/libraries/stdlib/osl/mx_subtract_float_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_matrix33.osl rename to libraries/stdlib/osl/mx_subtract_float_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_matrix44.osl b/libraries/stdlib/osl/mx_subtract_float_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_matrix44.osl rename to libraries/stdlib/osl/mx_subtract_float_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_vector.osl b/libraries/stdlib/osl/mx_subtract_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_vector.osl rename to libraries/stdlib/osl/mx_subtract_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_vector2.osl b/libraries/stdlib/osl/mx_subtract_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_vector2.osl rename to libraries/stdlib/osl/mx_subtract_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_float_vector4.osl b/libraries/stdlib/osl/mx_subtract_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_float_vector4.osl rename to libraries/stdlib/osl/mx_subtract_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_matrix33.osl b/libraries/stdlib/osl/mx_subtract_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_matrix33.osl rename to libraries/stdlib/osl/mx_subtract_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_matrix44.osl b/libraries/stdlib/osl/mx_subtract_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_matrix44.osl rename to libraries/stdlib/osl/mx_subtract_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_vector.osl b/libraries/stdlib/osl/mx_subtract_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_vector.osl rename to libraries/stdlib/osl/mx_subtract_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_vector2.osl b/libraries/stdlib/osl/mx_subtract_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_vector2.osl rename to libraries/stdlib/osl/mx_subtract_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_subtract_vector4.osl b/libraries/stdlib/osl/mx_subtract_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_subtract_vector4.osl rename to libraries/stdlib/osl/mx_subtract_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_switch_color.osl b/libraries/stdlib/osl/mx_switch_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_switch_color.osl rename to libraries/stdlib/osl/mx_switch_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_switch_color2.osl b/libraries/stdlib/osl/mx_switch_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_switch_color2.osl rename to libraries/stdlib/osl/mx_switch_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_switch_color4.osl b/libraries/stdlib/osl/mx_switch_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_switch_color4.osl rename to libraries/stdlib/osl/mx_switch_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_switch_float.osl b/libraries/stdlib/osl/mx_switch_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_switch_float.osl rename to libraries/stdlib/osl/mx_switch_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_switch_vector.osl b/libraries/stdlib/osl/mx_switch_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_switch_vector.osl rename to libraries/stdlib/osl/mx_switch_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_switch_vector2.osl b/libraries/stdlib/osl/mx_switch_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_switch_vector2.osl rename to libraries/stdlib/osl/mx_switch_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_switch_vector4.osl b/libraries/stdlib/osl/mx_switch_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_switch_vector4.osl rename to libraries/stdlib/osl/mx_switch_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color2_color.osl b/libraries/stdlib/osl/mx_swizzle_color2_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color2_color.osl rename to libraries/stdlib/osl/mx_swizzle_color2_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color2_color2.osl b/libraries/stdlib/osl/mx_swizzle_color2_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color2_color2.osl rename to libraries/stdlib/osl/mx_swizzle_color2_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color2_color4.osl b/libraries/stdlib/osl/mx_swizzle_color2_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color2_color4.osl rename to libraries/stdlib/osl/mx_swizzle_color2_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color2_float.osl b/libraries/stdlib/osl/mx_swizzle_color2_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color2_float.osl rename to libraries/stdlib/osl/mx_swizzle_color2_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color2_vector.osl b/libraries/stdlib/osl/mx_swizzle_color2_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color2_vector.osl rename to libraries/stdlib/osl/mx_swizzle_color2_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color2_vector2.osl b/libraries/stdlib/osl/mx_swizzle_color2_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color2_vector2.osl rename to libraries/stdlib/osl/mx_swizzle_color2_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color2_vector4.osl b/libraries/stdlib/osl/mx_swizzle_color2_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color2_vector4.osl rename to libraries/stdlib/osl/mx_swizzle_color2_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color4_color.osl b/libraries/stdlib/osl/mx_swizzle_color4_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color4_color.osl rename to libraries/stdlib/osl/mx_swizzle_color4_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color4_color2.osl b/libraries/stdlib/osl/mx_swizzle_color4_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color4_color2.osl rename to libraries/stdlib/osl/mx_swizzle_color4_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color4_color4.osl b/libraries/stdlib/osl/mx_swizzle_color4_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color4_color4.osl rename to libraries/stdlib/osl/mx_swizzle_color4_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color4_float.osl b/libraries/stdlib/osl/mx_swizzle_color4_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color4_float.osl rename to libraries/stdlib/osl/mx_swizzle_color4_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color4_vector.osl b/libraries/stdlib/osl/mx_swizzle_color4_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color4_vector.osl rename to libraries/stdlib/osl/mx_swizzle_color4_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color4_vector2.osl b/libraries/stdlib/osl/mx_swizzle_color4_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color4_vector2.osl rename to libraries/stdlib/osl/mx_swizzle_color4_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color4_vector4.osl b/libraries/stdlib/osl/mx_swizzle_color4_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color4_vector4.osl rename to libraries/stdlib/osl/mx_swizzle_color4_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color_color.osl b/libraries/stdlib/osl/mx_swizzle_color_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color_color.osl rename to libraries/stdlib/osl/mx_swizzle_color_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color_color2.osl b/libraries/stdlib/osl/mx_swizzle_color_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color_color2.osl rename to libraries/stdlib/osl/mx_swizzle_color_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color_color4.osl b/libraries/stdlib/osl/mx_swizzle_color_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color_color4.osl rename to libraries/stdlib/osl/mx_swizzle_color_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color_float.osl b/libraries/stdlib/osl/mx_swizzle_color_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color_float.osl rename to libraries/stdlib/osl/mx_swizzle_color_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color_vector.osl b/libraries/stdlib/osl/mx_swizzle_color_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color_vector.osl rename to libraries/stdlib/osl/mx_swizzle_color_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color_vector2.osl b/libraries/stdlib/osl/mx_swizzle_color_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color_vector2.osl rename to libraries/stdlib/osl/mx_swizzle_color_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_color_vector4.osl b/libraries/stdlib/osl/mx_swizzle_color_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_color_vector4.osl rename to libraries/stdlib/osl/mx_swizzle_color_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_float_color.osl b/libraries/stdlib/osl/mx_swizzle_float_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_float_color.osl rename to libraries/stdlib/osl/mx_swizzle_float_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_float_color2.osl b/libraries/stdlib/osl/mx_swizzle_float_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_float_color2.osl rename to libraries/stdlib/osl/mx_swizzle_float_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_float_color4.osl b/libraries/stdlib/osl/mx_swizzle_float_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_float_color4.osl rename to libraries/stdlib/osl/mx_swizzle_float_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_float_vector.osl b/libraries/stdlib/osl/mx_swizzle_float_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_float_vector.osl rename to libraries/stdlib/osl/mx_swizzle_float_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_float_vector2.osl b/libraries/stdlib/osl/mx_swizzle_float_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_float_vector2.osl rename to libraries/stdlib/osl/mx_swizzle_float_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_float_vector4.osl b/libraries/stdlib/osl/mx_swizzle_float_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_float_vector4.osl rename to libraries/stdlib/osl/mx_swizzle_float_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector2_color.osl b/libraries/stdlib/osl/mx_swizzle_vector2_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector2_color.osl rename to libraries/stdlib/osl/mx_swizzle_vector2_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector2_color2.osl b/libraries/stdlib/osl/mx_swizzle_vector2_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector2_color2.osl rename to libraries/stdlib/osl/mx_swizzle_vector2_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector2_color4.osl b/libraries/stdlib/osl/mx_swizzle_vector2_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector2_color4.osl rename to libraries/stdlib/osl/mx_swizzle_vector2_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector2_float.osl b/libraries/stdlib/osl/mx_swizzle_vector2_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector2_float.osl rename to libraries/stdlib/osl/mx_swizzle_vector2_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector2_vector.osl b/libraries/stdlib/osl/mx_swizzle_vector2_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector2_vector.osl rename to libraries/stdlib/osl/mx_swizzle_vector2_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector2_vector2.osl b/libraries/stdlib/osl/mx_swizzle_vector2_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector2_vector2.osl rename to libraries/stdlib/osl/mx_swizzle_vector2_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector2_vector4.osl b/libraries/stdlib/osl/mx_swizzle_vector2_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector2_vector4.osl rename to libraries/stdlib/osl/mx_swizzle_vector2_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector4_color.osl b/libraries/stdlib/osl/mx_swizzle_vector4_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector4_color.osl rename to libraries/stdlib/osl/mx_swizzle_vector4_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector4_color2.osl b/libraries/stdlib/osl/mx_swizzle_vector4_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector4_color2.osl rename to libraries/stdlib/osl/mx_swizzle_vector4_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector4_color4.osl b/libraries/stdlib/osl/mx_swizzle_vector4_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector4_color4.osl rename to libraries/stdlib/osl/mx_swizzle_vector4_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector4_float.osl b/libraries/stdlib/osl/mx_swizzle_vector4_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector4_float.osl rename to libraries/stdlib/osl/mx_swizzle_vector4_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector4_vector.osl b/libraries/stdlib/osl/mx_swizzle_vector4_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector4_vector.osl rename to libraries/stdlib/osl/mx_swizzle_vector4_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector4_vector2.osl b/libraries/stdlib/osl/mx_swizzle_vector4_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector4_vector2.osl rename to libraries/stdlib/osl/mx_swizzle_vector4_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector4_vector4.osl b/libraries/stdlib/osl/mx_swizzle_vector4_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector4_vector4.osl rename to libraries/stdlib/osl/mx_swizzle_vector4_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector_color.osl b/libraries/stdlib/osl/mx_swizzle_vector_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector_color.osl rename to libraries/stdlib/osl/mx_swizzle_vector_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector_color2.osl b/libraries/stdlib/osl/mx_swizzle_vector_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector_color2.osl rename to libraries/stdlib/osl/mx_swizzle_vector_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector_color4.osl b/libraries/stdlib/osl/mx_swizzle_vector_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector_color4.osl rename to libraries/stdlib/osl/mx_swizzle_vector_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector_float.osl b/libraries/stdlib/osl/mx_swizzle_vector_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector_float.osl rename to libraries/stdlib/osl/mx_swizzle_vector_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector_vector.osl b/libraries/stdlib/osl/mx_swizzle_vector_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector_vector.osl rename to libraries/stdlib/osl/mx_swizzle_vector_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector_vector2.osl b/libraries/stdlib/osl/mx_swizzle_vector_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector_vector2.osl rename to libraries/stdlib/osl/mx_swizzle_vector_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_swizzle_vector_vector4.osl b/libraries/stdlib/osl/mx_swizzle_vector_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_swizzle_vector_vector4.osl rename to libraries/stdlib/osl/mx_swizzle_vector_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_tan_color.osl b/libraries/stdlib/osl/mx_tan_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tan_color.osl rename to libraries/stdlib/osl/mx_tan_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_tan_color2.osl b/libraries/stdlib/osl/mx_tan_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tan_color2.osl rename to libraries/stdlib/osl/mx_tan_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_tan_color4.osl b/libraries/stdlib/osl/mx_tan_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tan_color4.osl rename to libraries/stdlib/osl/mx_tan_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_tan_float.osl b/libraries/stdlib/osl/mx_tan_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tan_float.osl rename to libraries/stdlib/osl/mx_tan_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_tan_vector.osl b/libraries/stdlib/osl/mx_tan_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tan_vector.osl rename to libraries/stdlib/osl/mx_tan_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_tan_vector2.osl b/libraries/stdlib/osl/mx_tan_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tan_vector2.osl rename to libraries/stdlib/osl/mx_tan_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_tan_vector4.osl b/libraries/stdlib/osl/mx_tan_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tan_vector4.osl rename to libraries/stdlib/osl/mx_tan_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_tangent_vector.osl b/libraries/stdlib/osl/mx_tangent_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tangent_vector.osl rename to libraries/stdlib/osl/mx_tangent_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_texcoord_vector.osl b/libraries/stdlib/osl/mx_texcoord_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_texcoord_vector.osl rename to libraries/stdlib/osl/mx_texcoord_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_texcoord_vector2.osl b/libraries/stdlib/osl/mx_texcoord_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_texcoord_vector2.osl rename to libraries/stdlib/osl/mx_texcoord_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_tiledimage_color.osl b/libraries/stdlib/osl/mx_tiledimage_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tiledimage_color.osl rename to libraries/stdlib/osl/mx_tiledimage_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_tiledimage_color2.osl b/libraries/stdlib/osl/mx_tiledimage_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tiledimage_color2.osl rename to libraries/stdlib/osl/mx_tiledimage_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_tiledimage_color4.osl b/libraries/stdlib/osl/mx_tiledimage_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tiledimage_color4.osl rename to libraries/stdlib/osl/mx_tiledimage_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_tiledimage_float.osl b/libraries/stdlib/osl/mx_tiledimage_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tiledimage_float.osl rename to libraries/stdlib/osl/mx_tiledimage_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_tiledimage_vector.osl b/libraries/stdlib/osl/mx_tiledimage_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tiledimage_vector.osl rename to libraries/stdlib/osl/mx_tiledimage_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_tiledimage_vector2.osl b/libraries/stdlib/osl/mx_tiledimage_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tiledimage_vector2.osl rename to libraries/stdlib/osl/mx_tiledimage_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_tiledimage_vector4.osl b/libraries/stdlib/osl/mx_tiledimage_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_tiledimage_vector4.osl rename to libraries/stdlib/osl/mx_tiledimage_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_time_float.osl b/libraries/stdlib/osl/mx_time_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_time_float.osl rename to libraries/stdlib/osl/mx_time_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_transformnormal_vector.osl b/libraries/stdlib/osl/mx_transformnormal_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transformnormal_vector.osl rename to libraries/stdlib/osl/mx_transformnormal_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_transformnormal_vector4.osl b/libraries/stdlib/osl/mx_transformnormal_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transformnormal_vector4.osl rename to libraries/stdlib/osl/mx_transformnormal_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_transformpoint_vector.osl b/libraries/stdlib/osl/mx_transformpoint_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transformpoint_vector.osl rename to libraries/stdlib/osl/mx_transformpoint_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_transformpoint_vector4.osl b/libraries/stdlib/osl/mx_transformpoint_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transformpoint_vector4.osl rename to libraries/stdlib/osl/mx_transformpoint_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_transformvector_vector.osl b/libraries/stdlib/osl/mx_transformvector_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transformvector_vector.osl rename to libraries/stdlib/osl/mx_transformvector_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_transformvector_vector4.osl b/libraries/stdlib/osl/mx_transformvector_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transformvector_vector4.osl rename to libraries/stdlib/osl/mx_transformvector_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_transpose_matrix33.osl b/libraries/stdlib/osl/mx_transpose_matrix33.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transpose_matrix33.osl rename to libraries/stdlib/osl/mx_transpose_matrix33.osl diff --git a/documents/Libraries/stdlib/osl/mx_transpose_matrix44.osl b/libraries/stdlib/osl/mx_transpose_matrix44.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_transpose_matrix44.osl rename to libraries/stdlib/osl/mx_transpose_matrix44.osl diff --git a/documents/Libraries/stdlib/osl/mx_triplanarprojection_color.osl b/libraries/stdlib/osl/mx_triplanarprojection_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_triplanarprojection_color.osl rename to libraries/stdlib/osl/mx_triplanarprojection_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_triplanarprojection_color2.osl b/libraries/stdlib/osl/mx_triplanarprojection_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_triplanarprojection_color2.osl rename to libraries/stdlib/osl/mx_triplanarprojection_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_triplanarprojection_color4.osl b/libraries/stdlib/osl/mx_triplanarprojection_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_triplanarprojection_color4.osl rename to libraries/stdlib/osl/mx_triplanarprojection_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_triplanarprojection_float.osl b/libraries/stdlib/osl/mx_triplanarprojection_float.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_triplanarprojection_float.osl rename to libraries/stdlib/osl/mx_triplanarprojection_float.osl diff --git a/documents/Libraries/stdlib/osl/mx_triplanarprojection_vector.osl b/libraries/stdlib/osl/mx_triplanarprojection_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_triplanarprojection_vector.osl rename to libraries/stdlib/osl/mx_triplanarprojection_vector.osl diff --git a/documents/Libraries/stdlib/osl/mx_triplanarprojection_vector2.osl b/libraries/stdlib/osl/mx_triplanarprojection_vector2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_triplanarprojection_vector2.osl rename to libraries/stdlib/osl/mx_triplanarprojection_vector2.osl diff --git a/documents/Libraries/stdlib/osl/mx_triplanarprojection_vector4.osl b/libraries/stdlib/osl/mx_triplanarprojection_vector4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_triplanarprojection_vector4.osl rename to libraries/stdlib/osl/mx_triplanarprojection_vector4.osl diff --git a/documents/Libraries/stdlib/osl/mx_unpremult_color.osl b/libraries/stdlib/osl/mx_unpremult_color.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_unpremult_color.osl rename to libraries/stdlib/osl/mx_unpremult_color.osl diff --git a/documents/Libraries/stdlib/osl/mx_unpremult_color2.osl b/libraries/stdlib/osl/mx_unpremult_color2.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_unpremult_color2.osl rename to libraries/stdlib/osl/mx_unpremult_color2.osl diff --git a/documents/Libraries/stdlib/osl/mx_unpremult_color4.osl b/libraries/stdlib/osl/mx_unpremult_color4.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_unpremult_color4.osl rename to libraries/stdlib/osl/mx_unpremult_color4.osl diff --git a/documents/Libraries/stdlib/osl/mx_viewdirection_vector.osl b/libraries/stdlib/osl/mx_viewdirection_vector.osl similarity index 100% rename from documents/Libraries/stdlib/osl/mx_viewdirection_vector.osl rename to libraries/stdlib/osl/mx_viewdirection_vector.osl diff --git a/documents/Libraries/stdlib/osl/oslutil.h b/libraries/stdlib/osl/oslutil.h similarity index 100% rename from documents/Libraries/stdlib/osl/oslutil.h rename to libraries/stdlib/osl/oslutil.h diff --git a/documents/Libraries/stdlib/osl/stdlib_osl_impl.mtlx b/libraries/stdlib/osl/stdlib_osl_impl.mtlx similarity index 100% rename from documents/Libraries/stdlib/osl/stdlib_osl_impl.mtlx rename to libraries/stdlib/osl/stdlib_osl_impl.mtlx diff --git a/documents/Libraries/stdlib/osl/stdosl.h b/libraries/stdlib/osl/stdosl.h similarity index 100% rename from documents/Libraries/stdlib/osl/stdosl.h rename to libraries/stdlib/osl/stdosl.h diff --git a/documents/Libraries/stdlib/osl/vector2.h b/libraries/stdlib/osl/vector2.h similarity index 95% rename from documents/Libraries/stdlib/osl/vector2.h rename to libraries/stdlib/osl/vector2.h index 23ad57163a..bcfea92c9a 100644 --- a/documents/Libraries/stdlib/osl/vector2.h +++ b/libraries/stdlib/osl/vector2.h @@ -252,14 +252,16 @@ vector2 fmod(vector2 a, float b) return fmod(a, vector2(b, b)); } -vector2 pow (vector2 in, vector2 amount) +vector2 pow(vector2 in, vector2 amount) { - return vector2 (pow(in.x, amount.x), pow(in.y, amount.y)); + return vector2(pow(in.x, amount.x), + pow(in.y, amount.y)); } -vector2 pow (vector2 in, float amount) +vector2 pow(vector2 in, float amount) { - return pow(in, vector2(amount, amount)); + return vector2(pow(in.x, amount), + pow(in.y, amount)); } vector2 sign(vector2 a) diff --git a/documents/Libraries/stdlib/osl/vector4.h b/libraries/stdlib/osl/vector4.h similarity index 100% rename from documents/Libraries/stdlib/osl/vector4.h rename to libraries/stdlib/osl/vector4.h diff --git a/documents/Libraries/stdlib/stdlib_defs.mtlx b/libraries/stdlib/stdlib_defs.mtlx similarity index 98% rename from documents/Libraries/stdlib/stdlib_defs.mtlx rename to libraries/stdlib/stdlib_defs.mtlx index f2a95814da..56144dc7fd 100644 --- a/documents/Libraries/stdlib/stdlib_defs.mtlx +++ b/libraries/stdlib/stdlib_defs.mtlx @@ -47,13 +47,13 @@ - - - - - - - + + + + + + + @@ -1915,7 +1915,11 @@ - + + + + + @@ -1924,7 +1928,11 @@ - + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 4de9173d9d..17b6de8a69 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -6,15 +6,15 @@ configure_file(${SETUP_PY_IN} ${SETUP_PY}) add_custom_command(OUTPUT ${SETUP_PY} COMMAND ${PYTHON} ${SETUP_PY} build) -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/MaterialX" DESTINATION "${CMAKE_INSTALL_PREFIX}/python") +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/MaterialX" DESTINATION "${CMAKE_INSTALL_PREFIX}/python" MESSAGE_NEVER) if(MATERIALX_PYTHON_OCIO_DIR) if(NOT EXISTS "${MATERIALX_PYTHON_OCIO_DIR}/config.ocio") message(WARNING "No file named config.ocio was found in the given OCIO directory.") endif() - install(DIRECTORY "${MATERIALX_PYTHON_OCIO_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/python/MaterialX/config/") + install(DIRECTORY "${MATERIALX_PYTHON_OCIO_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/python/MaterialX/config/" MESSAGE_NEVER) endif() if(MATERIALX_INSTALL_PYTHON AND PYTHON_EXECUTABLE) - install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install)") + install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install)" MESSAGE_NEVER) endif() diff --git a/python/MaterialX/colorspace.py b/python/MaterialX/colorspace.py index 0eb18cebea..68ca3e8f8a 100644 --- a/python/MaterialX/colorspace.py +++ b/python/MaterialX/colorspace.py @@ -1,15 +1,13 @@ import os -from .PyMaterialX import * - -""" -Native Python wrappers for PyMaterialX and PyOpenColorIO, providing helper -functions for transforming MaterialX colors between OpenColorIO color spaces. - -By default, the OpenColorIO configuration packaged with MaterialX Python will -be used, but clients may instead pass their own custom configurations to these -methods. -""" +from .PyMaterialXCore import * + +# Native Python wrappers for PyMaterialX and PyOpenColorIO, providing helper +# functions for transforming MaterialX colors between OpenColorIO color spaces. +# +# By default, the OpenColorIO configuration packaged with MaterialX Python will +# be used, but clients may instead pass their own custom configurations to these +# methods. #-------------------------------------------------------------------------------- diff --git a/python/MaterialX/datatype.py b/python/MaterialX/datatype.py index f052eb73eb..02fe0460fc 100644 --- a/python/MaterialX/datatype.py +++ b/python/MaterialX/datatype.py @@ -1,12 +1,8 @@ -import re import sys -from .PyMaterialX import * - -""" -Native Python helper functions for MaterialX data types. -""" +from .PyMaterialXCore import * +# Native Python helper functions for MaterialX data types. #-------------------------------------------------------------------------------- _nameToType = { 'integer' : int, diff --git a/python/MaterialX/main.py b/python/MaterialX/main.py index 1faa4a1455..1789044132 100644 --- a/python/MaterialX/main.py +++ b/python/MaterialX/main.py @@ -1,6 +1,7 @@ import warnings -from .PyMaterialX import * +from .PyMaterialXCore import * +from .PyMaterialXFormat import * from .datatype import * """ @@ -66,7 +67,7 @@ def _setValue(self, value, typeString = ''): "Set the typed value of an element." method = getattr(self.__class__, "_setValue" + typeToName(value.__class__)) method(self, value, typeString) - + def _getValue(self): "Return the typed value of an element." value = self._getValue() @@ -256,7 +257,6 @@ def _applyStringSubstitutions(self, filename, geom = '/'): def _generateRequireString(self): """(Deprecated) Generate the require string for a document.""" warnings.warn("Require strings are no longer supported in MaterialX.", DeprecationWarning, stacklevel = 2) - pass Document.applyStringSubstitutions = _applyStringSubstitutions Document.generateRequireString = _generateRequireString diff --git a/python/MaterialXTest/shaderx.py b/python/MaterialXTest/genshader.py similarity index 62% rename from python/MaterialXTest/shaderx.py rename to python/MaterialXTest/genshader.py index fb4118b679..d33793f1f6 100644 --- a/python/MaterialXTest/shaderx.py +++ b/python/MaterialXTest/genshader.py @@ -1,9 +1,10 @@ -import math import os import unittest import MaterialX as mx +from MaterialX.PyMaterialXGenShader import * +from MaterialX.PyMaterialXGenOsl import OslShaderGenerator, OSL_UNIFORMS, OSL_OUTPUTS _fileDir = os.path.dirname(os.path.abspath(__file__)) def _getSubDirectories(libraryPath): @@ -15,9 +16,11 @@ def _getMTLXFilesInDirectory(path): if file.endswith(".mtlx"): yield file +_readFromXmlFile = mx.readFromXmlFileBase + def _loadLibrary(file, doc): libDoc = mx.createDocument() - mx.readFromXmlFile(libDoc, file) + _readFromXmlFile(libDoc, file) libDoc.setSourceUri(file) copyOptions = mx.CopyOptions() copyOptions.skipDuplicateElements = True; @@ -32,15 +35,13 @@ def _loadLibraries(doc, searchPath, libraryPath): filePath = os.path.join(libraryPath, os.path.join(path, filename)) _loadLibrary(filePath, doc) -""" -Unit tests for ShaderX Python. -""" -class TestShaderX(unittest.TestCase): +# Unit tests for GenShader (Python). +class TestGenShader(unittest.TestCase): def test_ShaderInterface(self): doc = mx.createDocument() - searchPath = os.path.join(_fileDir, "../../documents/Libraries") + searchPath = os.path.join(_fileDir, "../../libraries") libraryPath = os.path.join(searchPath, "stdlib") _loadLibraries(doc, searchPath, libraryPath) @@ -67,52 +68,54 @@ def test_ShaderInterface(self): in2.setInterfaceName(fooInputB.getName()) output.setConnectedNode(mult1) - foo = doc.addNode("foo", "foo1", "color3") + doc.addNode("foo", "foo1", "color3") output = doc.addOutput("foo_test", "color3"); output.setNodeName("foo1"); output.setAttribute("output", "o"); - options = mx.GenOptions() - - shadergen = mx.ArnoldShaderGenerator.create() + shadergen = OslShaderGenerator.create() + context = GenContext(shadergen) # Add path to find all source code snippets - shadergen.registerSourceCodeSearchPath(mx.FilePath(searchPath)) + context.registerSourceCodeSearchPath(mx.FilePath(searchPath)) # Add path to find OSL include files - shadergen.registerSourceCodeSearchPath(mx.FilePath(os.path.join(searchPath, "stdlib/osl"))) + context.registerSourceCodeSearchPath(mx.FilePath(os.path.join(searchPath, "stdlib/osl"))) # Test complete mode - options.shaderInterfaceType = mx.ShaderInterfaceType.SHADER_INTERFACE_COMPLETE; - shader = shadergen.generate(exampleName, output, options); + context.getOptions().shaderInterfaceType = int(ShaderInterfaceType.SHADER_INTERFACE_COMPLETE); + shader = shadergen.generate(exampleName, output, context); self.assertTrue(shader) - self.assertTrue(len(shader.getSourceCode(mx.Shader.PIXEL_STAGE)) > 0) + self.assertTrue(len(shader.getSourceCode(PIXEL_STAGE)) > 0) - uniforms = shader.getUniformBlock(mx.Shader.PIXEL_STAGE, mx.Shader.PUBLIC_UNIFORMS) + ps = shader.getStage(PIXEL_STAGE); + uniforms = ps.getUniformBlock(OSL_UNIFORMS) self.assertTrue(uniforms.size() == 2) - outputs = shader.getOutputBlock() + outputs = ps.getOutputBlock(OSL_OUTPUTS) self.assertTrue(outputs.size() == 1) - self.assertTrue(outputs[0].name == output.getName()) + self.assertTrue(outputs[0].getName() == output.getName()) file = open(shader.getName() + "_complete.osl", "w+") - file.write(shader.getSourceCode(mx.Shader.PIXEL_STAGE)) + file.write(shader.getSourceCode(PIXEL_STAGE)) file.close() + os.remove(shader.getName() + "_complete.osl"); - # Test reduced mode - options.shaderInterfaceType = mx.ShaderInterfaceType.SHADER_INTERFACE_REDUCED; - shader = shadergen.generate(exampleName, output, options); + context.getOptions().shaderInterfaceType = int(ShaderInterfaceType.SHADER_INTERFACE_REDUCED); + shader = shadergen.generate(exampleName, output, context); self.assertTrue(shader) - self.assertTrue(len(shader.getSourceCode(mx.Shader.PIXEL_STAGE)) > 0) + self.assertTrue(len(shader.getSourceCode(PIXEL_STAGE)) > 0) - uniforms = shader.getUniformBlock(mx.Shader.PIXEL_STAGE, mx.Shader.PUBLIC_UNIFORMS) + ps = shader.getStage(PIXEL_STAGE); + uniforms = ps.getUniformBlock(OSL_UNIFORMS) self.assertTrue(uniforms.size() == 0) - outputs = shader.getOutputBlock() + outputs = ps.getOutputBlock(OSL_OUTPUTS) self.assertTrue(outputs.size() == 1) - self.assertTrue(outputs[0].name == output.getName()) + self.assertTrue(outputs[0].getName() == output.getName()) file = open(shader.getName() + "_reduced.osl", "w+") - file.write(shader.getSourceCode(mx.Shader.PIXEL_STAGE)) + file.write(shader.getSourceCode(PIXEL_STAGE)) file.close() + os.remove(shader.getName() + "_reduced.osl"); if __name__ == '__main__': unittest.main() diff --git a/python/MaterialXTest/main.py b/python/MaterialXTest/main.py index bf7265bc70..da757dc4cd 100644 --- a/python/MaterialXTest/main.py +++ b/python/MaterialXTest/main.py @@ -4,10 +4,7 @@ import MaterialX as mx -""" -Unit tests for MaterialX Python. -""" - +# Unit tests for MaterialX Python. #-------------------------------------------------------------------------------- _testValues = (1, @@ -24,9 +21,9 @@ 'value') _fileDir = os.path.dirname(os.path.abspath(__file__)) -_libraryDir = os.path.join(_fileDir, '../../documents/Libraries/stdlib/') -_exampleDir = os.path.join(_fileDir, '../../documents/Examples/') -_searchPath = _libraryDir + ';' + _exampleDir +_libraryDir = os.path.join(_fileDir, '../../libraries/stdlib/') +_exampleDir = os.path.join(_fileDir, '../../resources/Materials/Examples/') +_searchPath = _libraryDir + mx.PATH_LIST_SEPARATOR + _exampleDir _libraryFilenames = ('stdlib_defs.mtlx', 'stdlib_ng.mtlx', @@ -38,14 +35,10 @@ 'NodeGraphs.mtlx', 'PaintMaterials.mtlx', 'PostShaderComposite.mtlx', - 'PreShaderComposite.mtlx', - 'BxDF/alSurface.mtlx', - 'BxDF/Disney_BRDF_2012.mtlx', - 'BxDF/Disney_BSDF_2015.mtlx') + 'PreShaderComposite.mtlx') _epsilon = 1e-4 - #-------------------------------------------------------------------------------- class TestMaterialX(unittest.TestCase): def test_DataTypes(self): @@ -315,8 +308,8 @@ def test_BuildDocument(self): # Create a variant set. variantSet = doc.addVariantSet() - original = variantSet.addVariant("original") - damaged = variantSet.addVariant("damaged") + variantSet.addVariant("original") + variantSet.addVariant("damaged") self.assertTrue(len(variantSet.getVariants()) == 2) # Disconnect outputs from sources. @@ -332,7 +325,7 @@ def test_TraverseGraph(self): # Create a node graph with the following structure: # # [image1] [constant] [image2] - # \ / | + # \ / | # [multiply] [contrast] [noise3d] # \____________ | ____________/ # [mix] @@ -453,7 +446,6 @@ def test_ReadXml(self): mx.readFromXmlFile(lib, filename, _searchPath) self.assertTrue(lib.validate()[0]) libs.append(lib) - # Read and validate each example document. for filename in _exampleFilenames: doc = mx.createDocument() @@ -480,13 +472,13 @@ def test_ReadXml(self): for param in material.getPrimaryShaderParameters(): boundValue = param.getBoundValue(material) self.assertTrue(boundValue is not None) - for edge in param.traverseGraph(material): + for _ in param.traverseGraph(material): edgeCount += 1 - for input in material.getPrimaryShaderInputs(): - boundValue = input.getBoundValue(material) - upstreamElement = input.getUpstreamElement(material) + for shaderInput in material.getPrimaryShaderInputs(): + boundValue = shaderInput.getBoundValue(material) + upstreamElement = shaderInput.getUpstreamElement(material) self.assertTrue(boundValue is not None or upstreamElement is not None) - for edge in input.traverseGraph(material): + for _ in shaderInput.traverseGraph(material): edgeCount += 1 self.assertTrue(edgeCount > 0) @@ -515,7 +507,6 @@ def test_ReadXml(self): mx.readFromXmlFile(doc, filename, _searchPath, readOptions) self.assertTrue(doc.validate()[0]) - #-------------------------------------------------------------------------------- if __name__ == '__main__': unittest.main() diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt new file mode 100644 index 0000000000..76b12e9e4d --- /dev/null +++ b/resources/CMakeLists.txt @@ -0,0 +1,2 @@ +install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources/ + DESTINATION "${CMAKE_INSTALL_PREFIX}/resources" MESSAGE_NEVER) diff --git a/documents/TestSuite/Geometry/plane.obj b/resources/Geometry/plane.obj similarity index 100% rename from documents/TestSuite/Geometry/plane.obj rename to resources/Geometry/plane.obj diff --git a/documents/TestSuite/Geometry/shaderball.obj b/resources/Geometry/shaderball.obj similarity index 100% rename from documents/TestSuite/Geometry/shaderball.obj rename to resources/Geometry/shaderball.obj diff --git a/documents/TestSuite/Geometry/sphere.obj b/resources/Geometry/sphere.obj similarity index 100% rename from documents/TestSuite/Geometry/sphere.obj rename to resources/Geometry/sphere.obj diff --git a/documents/TestSuite/Geometry/teapot.obj b/resources/Geometry/teapot.obj similarity index 100% rename from documents/TestSuite/Geometry/teapot.obj rename to resources/Geometry/teapot.obj diff --git a/documents/TestSuite/Images/Interior1_Color.hdr b/resources/Images/Interior1_Color.hdr similarity index 100% rename from documents/TestSuite/Images/Interior1_Color.hdr rename to resources/Images/Interior1_Color.hdr diff --git a/documents/TestSuite/Images/Interior1_Color_diffuse.hdr b/resources/Images/Interior1_Color_diffuse.hdr similarity index 100% rename from documents/TestSuite/Images/Interior1_Color_diffuse.hdr rename to resources/Images/Interior1_Color_diffuse.hdr diff --git a/documents/Images/MaterialXLogo.png b/resources/Images/MaterialXLogo.png similarity index 100% rename from documents/Images/MaterialXLogo.png rename to resources/Images/MaterialXLogo.png diff --git a/documents/TestSuite/Images/cloth.bmp b/resources/Images/cloth.bmp similarity index 100% rename from documents/TestSuite/Images/cloth.bmp rename to resources/Images/cloth.bmp diff --git a/documents/TestSuite/Images/cloth.exr b/resources/Images/cloth.exr similarity index 100% rename from documents/TestSuite/Images/cloth.exr rename to resources/Images/cloth.exr diff --git a/documents/TestSuite/Images/cloth.gif b/resources/Images/cloth.gif similarity index 100% rename from documents/TestSuite/Images/cloth.gif rename to resources/Images/cloth.gif diff --git a/documents/TestSuite/Images/cloth.jpg b/resources/Images/cloth.jpg similarity index 100% rename from documents/TestSuite/Images/cloth.jpg rename to resources/Images/cloth.jpg diff --git a/documents/TestSuite/Images/cloth.png b/resources/Images/cloth.png similarity index 100% rename from documents/TestSuite/Images/cloth.png rename to resources/Images/cloth.png diff --git a/documents/TestSuite/Images/cloth.tga b/resources/Images/cloth.tga similarity index 100% rename from documents/TestSuite/Images/cloth.tga rename to resources/Images/cloth.tga diff --git a/documents/TestSuite/Images/marble.png b/resources/Images/marble.png similarity index 100% rename from documents/TestSuite/Images/marble.png rename to resources/Images/marble.png diff --git a/documents/TestSuite/Images/san_giuseppe_bridge.hdr b/resources/Images/san_giuseppe_bridge.hdr similarity index 100% rename from documents/TestSuite/Images/san_giuseppe_bridge.hdr rename to resources/Images/san_giuseppe_bridge.hdr diff --git a/documents/TestSuite/Images/san_giuseppe_bridge_diffuse.hdr b/resources/Images/san_giuseppe_bridge_diffuse.hdr similarity index 100% rename from documents/TestSuite/Images/san_giuseppe_bridge_diffuse.hdr rename to resources/Images/san_giuseppe_bridge_diffuse.hdr diff --git a/resources/Images/shadergen.png b/resources/Images/shadergen.png new file mode 100644 index 0000000000..1f1a57dcac Binary files /dev/null and b/resources/Images/shadergen.png differ diff --git a/documents/Images/shaderx.png b/resources/Images/shaderx.png similarity index 100% rename from documents/Images/shaderx.png rename to resources/Images/shaderx.png diff --git a/documents/TestSuite/Images/wood_baseColor.png b/resources/Images/wood_baseColor.png similarity index 100% rename from documents/TestSuite/Images/wood_baseColor.png rename to resources/Images/wood_baseColor.png diff --git a/documents/TestSuite/Images/wood_height.png b/resources/Images/wood_height.png similarity index 100% rename from documents/TestSuite/Images/wood_height.png rename to resources/Images/wood_height.png diff --git a/documents/TestSuite/Images/wood_normal.png b/resources/Images/wood_normal.png similarity index 100% rename from documents/TestSuite/Images/wood_normal.png rename to resources/Images/wood_normal.png diff --git a/documents/TestSuite/Images/wood_roughness.png b/resources/Images/wood_roughness.png similarity index 100% rename from documents/TestSuite/Images/wood_roughness.png rename to resources/Images/wood_roughness.png diff --git a/documents/Examples/CustomNode.mtlx b/resources/Materials/Examples/CustomNode.mtlx similarity index 100% rename from documents/Examples/CustomNode.mtlx rename to resources/Materials/Examples/CustomNode.mtlx diff --git a/documents/Examples/GeomInfos.mtlx b/resources/Materials/Examples/GeomInfos.mtlx similarity index 100% rename from documents/Examples/GeomInfos.mtlx rename to resources/Materials/Examples/GeomInfos.mtlx diff --git a/documents/Examples/Looks.mtlx b/resources/Materials/Examples/Looks.mtlx similarity index 100% rename from documents/Examples/Looks.mtlx rename to resources/Materials/Examples/Looks.mtlx diff --git a/documents/Examples/MaterialBasic.mtlx b/resources/Materials/Examples/MaterialBasic.mtlx similarity index 100% rename from documents/Examples/MaterialBasic.mtlx rename to resources/Materials/Examples/MaterialBasic.mtlx diff --git a/documents/Examples/MultiOutput.mtlx b/resources/Materials/Examples/MultiOutput.mtlx similarity index 100% rename from documents/Examples/MultiOutput.mtlx rename to resources/Materials/Examples/MultiOutput.mtlx diff --git a/documents/Examples/NodeGraphs.mtlx b/resources/Materials/Examples/NodeGraphs.mtlx similarity index 100% rename from documents/Examples/NodeGraphs.mtlx rename to resources/Materials/Examples/NodeGraphs.mtlx diff --git a/documents/Examples/PaintMaterials.mtlx b/resources/Materials/Examples/PaintMaterials.mtlx similarity index 100% rename from documents/Examples/PaintMaterials.mtlx rename to resources/Materials/Examples/PaintMaterials.mtlx diff --git a/documents/Examples/PostShaderComposite.mtlx b/resources/Materials/Examples/PostShaderComposite.mtlx similarity index 75% rename from documents/Examples/PostShaderComposite.mtlx rename to resources/Materials/Examples/PostShaderComposite.mtlx index 721c179517..2328dd6e0f 100644 --- a/documents/Examples/PostShaderComposite.mtlx +++ b/resources/Materials/Examples/PostShaderComposite.mtlx @@ -1,10 +1,6 @@ - - - - - + @@ -40,19 +36,19 @@ - - - - - - - - - - + + + + + + + + + + - - + + diff --git a/documents/Examples/PreShaderComposite.mtlx b/resources/Materials/Examples/PreShaderComposite.mtlx similarity index 100% rename from documents/Examples/PreShaderComposite.mtlx rename to resources/Materials/Examples/PreShaderComposite.mtlx diff --git a/documents/Examples/SimpleSrf.mtlx b/resources/Materials/Examples/SimpleSrf.mtlx similarity index 84% rename from documents/Examples/SimpleSrf.mtlx rename to resources/Materials/Examples/SimpleSrf.mtlx index 3c8fab8b48..7851b9b7d3 100644 --- a/documents/Examples/SimpleSrf.mtlx +++ b/resources/Materials/Examples/SimpleSrf.mtlx @@ -5,4 +5,5 @@ + diff --git a/documents/Examples/SubGraphs.mtlx b/resources/Materials/Examples/SubGraphs.mtlx similarity index 96% rename from documents/Examples/SubGraphs.mtlx rename to resources/Materials/Examples/SubGraphs.mtlx index 73c7e25d96..40e8f15328 100644 --- a/documents/Examples/SubGraphs.mtlx +++ b/resources/Materials/Examples/SubGraphs.mtlx @@ -97,17 +97,17 @@ - + - - + + - - + + - + @@ -126,9 +126,9 @@ - + - + diff --git a/documents/TestSuite/README.md b/resources/Materials/TestSuite/README.md similarity index 100% rename from documents/TestSuite/README.md rename to resources/Materials/TestSuite/README.md diff --git a/documents/TestSuite/Utilities/Lights/light_rig.mtlx b/resources/Materials/TestSuite/Utilities/Lights/light_rig.mtlx similarity index 69% rename from documents/TestSuite/Utilities/Lights/light_rig.mtlx rename to resources/Materials/TestSuite/Utilities/Lights/light_rig.mtlx index f23b805902..d940c44426 100644 --- a/documents/TestSuite/Utilities/Lights/light_rig.mtlx +++ b/resources/Materials/TestSuite/Utilities/Lights/light_rig.mtlx @@ -1,52 +1,52 @@ - + - - + + - - + + - - + + - - + + - - + + - + - + - - - + + + - - - - + + + + diff --git a/documents/TestSuite/Utilities/Lights/lightcompoundtest.mtlx b/resources/Materials/TestSuite/Utilities/Lights/lightcompoundtest.mtlx similarity index 100% rename from documents/TestSuite/Utilities/Lights/lightcompoundtest.mtlx rename to resources/Materials/TestSuite/Utilities/Lights/lightcompoundtest.mtlx diff --git a/documents/TestSuite/Utilities/Lights/lightcompoundtest_ng.mtlx b/resources/Materials/TestSuite/Utilities/Lights/lightcompoundtest_ng.mtlx similarity index 88% rename from documents/TestSuite/Utilities/Lights/lightcompoundtest_ng.mtlx rename to resources/Materials/TestSuite/Utilities/Lights/lightcompoundtest_ng.mtlx index e0c5925444..66e64c1a49 100644 --- a/documents/TestSuite/Utilities/Lights/lightcompoundtest_ng.mtlx +++ b/resources/Materials/TestSuite/Utilities/Lights/lightcompoundtest_ng.mtlx @@ -1,9 +1,9 @@ - + - + diff --git a/documents/TestSuite/Utilities/closure_color_scene.xml b/resources/Materials/TestSuite/Utilities/closure_color_scene.xml similarity index 87% rename from documents/TestSuite/Utilities/closure_color_scene.xml rename to resources/Materials/TestSuite/Utilities/closure_color_scene.xml index fb8ccc60b2..0995a048ba 100644 --- a/documents/TestSuite/Utilities/closure_color_scene.xml +++ b/resources/Materials/TestSuite/Utilities/closure_color_scene.xml @@ -13,7 +13,7 @@ --> - string filename "documents/TestSuite/Images/san_giuseppe_bridge.hdr"; + string filename "resources/Images/san_giuseppe_bridge.hdr"; shader envmap layer1; @@ -26,12 +26,14 @@ + %input_shader_parameter_overrides%; shader %input_shader_type% inputShader; shader %output_shader_type% outputShader; connect inputShader.%input_shader_output% outputShader.%output_shader_input%; diff --git a/documents/TestSuite/Utilities/closure_passthrough.osl b/resources/Materials/TestSuite/Utilities/closure_passthrough.osl similarity index 100% rename from documents/TestSuite/Utilities/closure_passthrough.osl rename to resources/Materials/TestSuite/Utilities/closure_passthrough.osl diff --git a/documents/TestSuite/Utilities/constant_color.osl b/resources/Materials/TestSuite/Utilities/constant_color.osl similarity index 100% rename from documents/TestSuite/Utilities/constant_color.osl rename to resources/Materials/TestSuite/Utilities/constant_color.osl diff --git a/documents/TestSuite/Utilities/constant_color2.osl b/resources/Materials/TestSuite/Utilities/constant_color2.osl similarity index 100% rename from documents/TestSuite/Utilities/constant_color2.osl rename to resources/Materials/TestSuite/Utilities/constant_color2.osl diff --git a/documents/TestSuite/Utilities/constant_color4.osl b/resources/Materials/TestSuite/Utilities/constant_color4.osl similarity index 100% rename from documents/TestSuite/Utilities/constant_color4.osl rename to resources/Materials/TestSuite/Utilities/constant_color4.osl diff --git a/documents/TestSuite/Utilities/constant_color_background.osl b/resources/Materials/TestSuite/Utilities/constant_color_background.osl similarity index 100% rename from documents/TestSuite/Utilities/constant_color_background.osl rename to resources/Materials/TestSuite/Utilities/constant_color_background.osl diff --git a/documents/TestSuite/Utilities/constant_color_scene.xml b/resources/Materials/TestSuite/Utilities/constant_color_scene.xml similarity index 89% rename from documents/TestSuite/Utilities/constant_color_scene.xml rename to resources/Materials/TestSuite/Utilities/constant_color_scene.xml index 17c982a286..cd693fe116 100644 --- a/documents/TestSuite/Utilities/constant_color_scene.xml +++ b/resources/Materials/TestSuite/Utilities/constant_color_scene.xml @@ -13,12 +13,14 @@ --> + %input_shader_parameter_overrides% shader %input_shader_type% inputShader; shader %output_shader_type% outputShader; connect inputShader.%input_shader_output% outputShader.%output_shader_input%; diff --git a/documents/TestSuite/Utilities/constant_vector2.osl b/resources/Materials/TestSuite/Utilities/constant_vector2.osl similarity index 100% rename from documents/TestSuite/Utilities/constant_vector2.osl rename to resources/Materials/TestSuite/Utilities/constant_vector2.osl diff --git a/documents/TestSuite/Utilities/constant_vector4.osl b/resources/Materials/TestSuite/Utilities/constant_vector4.osl similarity index 100% rename from documents/TestSuite/Utilities/constant_vector4.osl rename to resources/Materials/TestSuite/Utilities/constant_vector4.osl diff --git a/documents/TestSuite/Utilities/emitter.osl b/resources/Materials/TestSuite/Utilities/emitter.osl similarity index 100% rename from documents/TestSuite/Utilities/emitter.osl rename to resources/Materials/TestSuite/Utilities/emitter.osl diff --git a/documents/TestSuite/Utilities/envmap.osl b/resources/Materials/TestSuite/Utilities/envmap.osl similarity index 100% rename from documents/TestSuite/Utilities/envmap.osl rename to resources/Materials/TestSuite/Utilities/envmap.osl diff --git a/documents/TestSuite/_options.mtlx b/resources/Materials/TestSuite/_options.mtlx similarity index 89% rename from documents/TestSuite/_options.mtlx rename to resources/Materials/TestSuite/_options.mtlx index ef7d0fa518..11264cfba6 100644 --- a/documents/TestSuite/_options.mtlx +++ b/resources/Materials/TestSuite/_options.mtlx @@ -8,9 +8,6 @@ - - - @@ -58,17 +55,17 @@ + A relative path specifier is relative to the folder "/resources/Geometry/" --> - + - + diff --git a/documents/TestSuite/sxpbrlib/bsdf/addbsdf.mtlx b/resources/Materials/TestSuite/pbrlib/bsdf/add_bsdf.mtlx similarity index 74% rename from documents/TestSuite/sxpbrlib/bsdf/addbsdf.mtlx rename to resources/Materials/TestSuite/pbrlib/bsdf/add_bsdf.mtlx index 55030bc60c..93964537ea 100644 --- a/documents/TestSuite/sxpbrlib/bsdf/addbsdf.mtlx +++ b/resources/Materials/TestSuite/pbrlib/bsdf/add_bsdf.mtlx @@ -1,6 +1,6 @@ - + @@ -13,23 +13,23 @@ - + - - + + - - - - - + + + + + - + diff --git a/documents/TestSuite/pbrlib/bsdf/bsdf_graph.mtlx b/resources/Materials/TestSuite/pbrlib/bsdf/bsdf_graph.mtlx similarity index 80% rename from documents/TestSuite/pbrlib/bsdf/bsdf_graph.mtlx rename to resources/Materials/TestSuite/pbrlib/bsdf/bsdf_graph.mtlx index a1ca685a56..0b6a66bb68 100644 --- a/documents/TestSuite/pbrlib/bsdf/bsdf_graph.mtlx +++ b/resources/Materials/TestSuite/pbrlib/bsdf/bsdf_graph.mtlx @@ -11,7 +11,7 @@ - + @@ -19,19 +19,19 @@ - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/Materials/TestSuite/stdlib/channel/convert.mtlx b/resources/Materials/TestSuite/stdlib/channel/convert.mtlx new file mode 100644 index 0000000000..ab45b8a92b --- /dev/null +++ b/resources/Materials/TestSuite/stdlib/channel/convert.mtlx @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/TestSuite/stdlib/channel/channel.mtlx b/resources/Materials/TestSuite/stdlib/channel/swizzle.mtlx similarity index 51% rename from documents/TestSuite/stdlib/channel/channel.mtlx rename to resources/Materials/TestSuite/stdlib/channel/swizzle.mtlx index b82ec8dd89..1cc99cb79e 100644 --- a/documents/TestSuite/stdlib/channel/channel.mtlx +++ b/resources/Materials/TestSuite/stdlib/channel/swizzle.mtlx @@ -1,160 +1,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -491,188 +340,4 @@ Basic channel function tests each test is in a separate graph for each variation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documents/TestSuite/stdlib/color_management/color_management.mtlx b/resources/Materials/TestSuite/stdlib/color_management/color_management.mtlx similarity index 87% rename from documents/TestSuite/stdlib/color_management/color_management.mtlx rename to resources/Materials/TestSuite/stdlib/color_management/color_management.mtlx index 9dbb54202a..372d6bcf2d 100644 --- a/documents/TestSuite/stdlib/color_management/color_management.mtlx +++ b/resources/Materials/TestSuite/stdlib/color_management/color_management.mtlx @@ -11,7 +11,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -20,7 +20,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -28,7 +28,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -37,7 +37,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -45,7 +45,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -54,7 +54,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -62,7 +62,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -71,7 +71,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -79,7 +79,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -88,7 +88,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -96,7 +96,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -105,7 +105,7 @@ Basic image unit test with one image node for each variation in input type. - + diff --git a/documents/TestSuite/stdlib/compositing/compositing.mtlx b/resources/Materials/TestSuite/stdlib/compositing/compositing.mtlx similarity index 100% rename from documents/TestSuite/stdlib/compositing/compositing.mtlx rename to resources/Materials/TestSuite/stdlib/compositing/compositing.mtlx diff --git a/documents/TestSuite/stdlib/conditional/conditional.mtlx b/resources/Materials/TestSuite/stdlib/conditional/conditional.mtlx similarity index 100% rename from documents/TestSuite/stdlib/conditional/conditional.mtlx rename to resources/Materials/TestSuite/stdlib/conditional/conditional.mtlx diff --git a/documents/TestSuite/stdlib/convolution/blur.mtlx b/resources/Materials/TestSuite/stdlib/convolution/blur.mtlx similarity index 93% rename from documents/TestSuite/stdlib/convolution/blur.mtlx rename to resources/Materials/TestSuite/stdlib/convolution/blur.mtlx index 7e960a4520..c77cecf9a0 100644 --- a/documents/TestSuite/stdlib/convolution/blur.mtlx +++ b/resources/Materials/TestSuite/stdlib/convolution/blur.mtlx @@ -5,7 +5,7 @@ - + @@ -18,7 +18,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -151,7 +151,7 @@ - + diff --git a/documents/TestSuite/stdlib/convolution/heighttonormal.mtlx b/resources/Materials/TestSuite/stdlib/convolution/heighttonormal.mtlx similarity index 94% rename from documents/TestSuite/stdlib/convolution/heighttonormal.mtlx rename to resources/Materials/TestSuite/stdlib/convolution/heighttonormal.mtlx index 12842c80bc..eb2a2869b9 100644 --- a/documents/TestSuite/stdlib/convolution/heighttonormal.mtlx +++ b/resources/Materials/TestSuite/stdlib/convolution/heighttonormal.mtlx @@ -22,7 +22,7 @@ Basic test of heighttonormal node - + diff --git a/documents/TestSuite/stdlib/geometric/geomattrvalue.mtlx b/resources/Materials/TestSuite/stdlib/geometric/geomattrvalue.mtlx similarity index 100% rename from documents/TestSuite/stdlib/geometric/geomattrvalue.mtlx rename to resources/Materials/TestSuite/stdlib/geometric/geomattrvalue.mtlx diff --git a/documents/TestSuite/stdlib/geometric/streams.mtlx b/resources/Materials/TestSuite/stdlib/geometric/streams.mtlx similarity index 100% rename from documents/TestSuite/stdlib/geometric/streams.mtlx rename to resources/Materials/TestSuite/stdlib/geometric/streams.mtlx diff --git a/documents/TestSuite/stdlib/math/math.mtlx b/resources/Materials/TestSuite/stdlib/math/math.mtlx similarity index 99% rename from documents/TestSuite/stdlib/math/math.mtlx rename to resources/Materials/TestSuite/stdlib/math/math.mtlx index c3deb2970e..6b4bb5e77b 100644 --- a/documents/TestSuite/stdlib/math/math.mtlx +++ b/resources/Materials/TestSuite/stdlib/math/math.mtlx @@ -680,7 +680,6 @@ graph per math function for each variation in input type. - diff --git a/documents/TestSuite/stdlib/math/math_operators.mtlx b/resources/Materials/TestSuite/stdlib/math/math_operators.mtlx similarity index 99% rename from documents/TestSuite/stdlib/math/math_operators.mtlx rename to resources/Materials/TestSuite/stdlib/math/math_operators.mtlx index 03722c026c..b294277e30 100644 --- a/documents/TestSuite/stdlib/math/math_operators.mtlx +++ b/resources/Materials/TestSuite/stdlib/math/math_operators.mtlx @@ -558,7 +558,6 @@ Basic math operator function tests each test is in a separate graph for each var - @@ -582,7 +580,6 @@ Basic math operator function tests each test is in a separate graph for each var - @@ -606,7 +602,6 @@ Basic math operator function tests each test is in a separate graph for each var - @@ -630,7 +624,6 @@ Basic math operator function tests each test is in a separate graph for each var - @@ -654,7 +646,6 @@ Basic math operator function tests each test is in a separate graph for each var - @@ -678,7 +668,6 @@ Basic math operator function tests each test is in a separate graph for each var - diff --git a/resources/Materials/TestSuite/stdlib/math/transform.mtlx b/resources/Materials/TestSuite/stdlib/math/transform.mtlx new file mode 100644 index 0000000000..74e6e3e5bf --- /dev/null +++ b/resources/Materials/TestSuite/stdlib/math/transform.mtlx @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/TestSuite/stdlib/math/trig.mtlx b/resources/Materials/TestSuite/stdlib/math/trig.mtlx similarity index 100% rename from documents/TestSuite/stdlib/math/trig.mtlx rename to resources/Materials/TestSuite/stdlib/math/trig.mtlx diff --git a/documents/TestSuite/stdlib/math/vector_math.mtlx b/resources/Materials/TestSuite/stdlib/math/vector_math.mtlx similarity index 99% rename from documents/TestSuite/stdlib/math/vector_math.mtlx rename to resources/Materials/TestSuite/stdlib/math/vector_math.mtlx index 15170e115d..2979a769eb 100644 --- a/documents/TestSuite/stdlib/math/vector_math.mtlx +++ b/resources/Materials/TestSuite/stdlib/math/vector_math.mtlx @@ -102,21 +102,18 @@ Basic vector math function tests each test is in a separate graph for each varia - - diff --git a/documents/TestSuite/stdlib/noise/procedural.mtlx b/resources/Materials/TestSuite/stdlib/noise/procedural.mtlx similarity index 100% rename from documents/TestSuite/stdlib/noise/procedural.mtlx rename to resources/Materials/TestSuite/stdlib/noise/procedural.mtlx diff --git a/resources/Materials/TestSuite/stdlib/noise/shared_function.mtlx b/resources/Materials/TestSuite/stdlib/noise/shared_function.mtlx new file mode 100644 index 0000000000..60a1f33e50 --- /dev/null +++ b/resources/Materials/TestSuite/stdlib/noise/shared_function.mtlx @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/TestSuite/stdlib/organization/organization.mtlx b/resources/Materials/TestSuite/stdlib/organization/organization.mtlx similarity index 100% rename from documents/TestSuite/stdlib/organization/organization.mtlx rename to resources/Materials/TestSuite/stdlib/organization/organization.mtlx diff --git a/documents/TestSuite/stdlib/texture/image.mtlx b/resources/Materials/TestSuite/stdlib/texture/image.mtlx similarity index 81% rename from documents/TestSuite/stdlib/texture/image.mtlx rename to resources/Materials/TestSuite/stdlib/texture/image.mtlx index 6346ca2c91..752b0b01c9 100644 --- a/documents/TestSuite/stdlib/texture/image.mtlx +++ b/resources/Materials/TestSuite/stdlib/texture/image.mtlx @@ -7,7 +7,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -16,7 +16,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -25,7 +25,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -34,7 +34,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -43,7 +43,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -52,7 +52,7 @@ Basic image unit test with one image node for each variation in input type. - + @@ -61,7 +61,7 @@ Basic image unit test with one image node for each variation in input type. - + diff --git a/documents/TestSuite/stdlib/texture/image_codecs.mtlx b/resources/Materials/TestSuite/stdlib/texture/image_codecs.mtlx similarity index 82% rename from documents/TestSuite/stdlib/texture/image_codecs.mtlx rename to resources/Materials/TestSuite/stdlib/texture/image_codecs.mtlx index 8e9b4d8d3f..b795335183 100644 --- a/documents/TestSuite/stdlib/texture/image_codecs.mtlx +++ b/resources/Materials/TestSuite/stdlib/texture/image_codecs.mtlx @@ -2,7 +2,7 @@ - + @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -34,7 +34,7 @@ - + @@ -42,7 +42,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -66,7 +66,7 @@ - + diff --git a/documents/TestSuite/stdlib/texture/noise.mtlx b/resources/Materials/TestSuite/stdlib/texture/noise.mtlx similarity index 100% rename from documents/TestSuite/stdlib/texture/noise.mtlx rename to resources/Materials/TestSuite/stdlib/texture/noise.mtlx diff --git a/documents/TestSuite/stdlib/texture/ramp.mtlx b/resources/Materials/TestSuite/stdlib/texture/ramp.mtlx similarity index 100% rename from documents/TestSuite/stdlib/texture/ramp.mtlx rename to resources/Materials/TestSuite/stdlib/texture/ramp.mtlx diff --git a/documents/TestSuite/stdlib/texture/split.mtlx b/resources/Materials/TestSuite/stdlib/texture/split.mtlx similarity index 100% rename from documents/TestSuite/stdlib/texture/split.mtlx rename to resources/Materials/TestSuite/stdlib/texture/split.mtlx diff --git a/documents/TestSuite/stdlib/texture/tiledimage.mtlx b/resources/Materials/TestSuite/stdlib/texture/tiledimage.mtlx similarity index 82% rename from documents/TestSuite/stdlib/texture/tiledimage.mtlx rename to resources/Materials/TestSuite/stdlib/texture/tiledimage.mtlx index 9818ed9281..745d5afb0f 100644 --- a/documents/TestSuite/stdlib/texture/tiledimage.mtlx +++ b/resources/Materials/TestSuite/stdlib/texture/tiledimage.mtlx @@ -9,7 +9,7 @@ used to lookup each image - + @@ -18,7 +18,7 @@ used to lookup each image - + @@ -27,7 +27,7 @@ used to lookup each image - + @@ -36,7 +36,7 @@ used to lookup each image - + @@ -45,7 +45,7 @@ used to lookup each image - + @@ -54,7 +54,7 @@ used to lookup each image - + @@ -63,7 +63,7 @@ used to lookup each image - + diff --git a/documents/TestSuite/stdlib/texture/triplanarprojection.mtlx b/resources/Materials/TestSuite/stdlib/texture/triplanarprojection.mtlx similarity index 54% rename from documents/TestSuite/stdlib/texture/triplanarprojection.mtlx rename to resources/Materials/TestSuite/stdlib/texture/triplanarprojection.mtlx index aaee2b0870..f5a46af5d3 100644 --- a/documents/TestSuite/stdlib/texture/triplanarprojection.mtlx +++ b/resources/Materials/TestSuite/stdlib/texture/triplanarprojection.mtlx @@ -7,63 +7,63 @@ Basic triplanar mapping unit test. - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/resources/README.md b/resources/README.md new file mode 100644 index 0000000000..6b353e0200 --- /dev/null +++ b/resources/README.md @@ -0,0 +1,5 @@ +# Resources + +- [Geometry](Geometry): Sample geometry files. Includes files used by test suite. +- [Images](Images): Sample image files. Includes files used by test suite. +- [Materials](Materials) : Set of MaterialX documents. Includes [test suite files](Materials/TestSuite). diff --git a/source/MaterialXContrib/Handlers/TinyEXRImageLoader.cpp b/source/MaterialXContrib/Handlers/TinyEXRImageLoader.cpp index 2d55e10d76..6003df2268 100644 --- a/source/MaterialXContrib/Handlers/TinyEXRImageLoader.cpp +++ b/source/MaterialXContrib/Handlers/TinyEXRImageLoader.cpp @@ -1,4 +1,9 @@ -#include +// +// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd. +// All rights reserved. See LICENSE.txt for license. +// + +#include #if defined(OSWin_) && defined(_WIN64) #define TINYEXR_USABLE @@ -20,7 +25,7 @@ #undef max #endif #include -#ifdef max_cache +#ifdef max_cache #define max max_cache #endif #endif @@ -38,7 +43,7 @@ bool TinyEXRImageLoader::saveImage(const std::string& fileName, // Fail with any type other than exr. std::string extension = (fileName.substr(fileName.find_last_of(".") + 1)); if (extension == EXR_EXTENSION) - { + { returnValue = SaveEXR(static_cast(imageDesc.resourceBuffer), static_cast(imageDesc.width), static_cast(imageDesc.height), imageDesc.channelCount, 1 /* save as 16 bit float format */, fileName.c_str()); } return (returnValue == 0); @@ -84,7 +89,7 @@ bool TinyEXRImageLoader::saveImage(const std::string& /*fileName*/, } bool TinyEXRImageLoader::acquireImage(const std::string& /*fileName*/, - ImageDesc& /*imageDesc*/, + ImageDesc& /*imageDesc*/, bool /*generateMipMaps*/) { return false; @@ -92,5 +97,3 @@ bool TinyEXRImageLoader::acquireImage(const std::string& /*fileName*/, #endif } - - diff --git a/source/MaterialXContrib/Handlers/TinyEXRImageLoader.h b/source/MaterialXContrib/Handlers/TinyEXRImageLoader.h index 661c95280d..234a2ec618 100644 --- a/source/MaterialXContrib/Handlers/TinyEXRImageLoader.h +++ b/source/MaterialXContrib/Handlers/TinyEXRImageLoader.h @@ -1,3 +1,8 @@ +// +// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd. +// All rights reserved. See LICENSE.txt for license. +// + #ifndef MATERIALX_TINYEXRIMAGELOADER_H #define MATERIALX_TINYEXRIMAGELOADER_H diff --git a/source/MaterialXCore/Document.cpp b/source/MaterialXCore/Document.cpp index 8aa8dc7117..98f618b908 100644 --- a/source/MaterialXCore/Document.cpp +++ b/source/MaterialXCore/Document.cpp @@ -540,20 +540,23 @@ void Document::upgradeVersion() for (ShaderRefPtr shaderRef : material->getShaderRefs()) { NodeDefPtr nodeDef = shaderRef->getNodeDef(); - for (ValueElementPtr activeValue : nodeDef->getActiveValueElements()) + if (nodeDef) { - if (activeValue->getAttribute("publicname") == child->getName() && - !shaderRef->getChild(child->getName())) + for (ValueElementPtr activeValue : nodeDef->getActiveValueElements()) { - if (activeValue->isA()) + if (activeValue->getAttribute("publicname") == child->getName() && + !shaderRef->getChild(child->getName())) { - BindParamPtr bindParam = shaderRef->addBindParam(activeValue->getName(), activeValue->getType()); - bindParam->setValueString(child->getAttribute("value")); - } - else if (activeValue->isA()) - { - BindInputPtr bindInput = shaderRef->addBindInput(activeValue->getName(), activeValue->getType()); - bindInput->setValueString(child->getAttribute("value")); + if (activeValue->isA()) + { + BindParamPtr bindParam = shaderRef->addBindParam(activeValue->getName(), activeValue->getType()); + bindParam->setValueString(child->getAttribute("value")); + } + else if (activeValue->isA()) + { + BindInputPtr bindInput = shaderRef->addBindInput(activeValue->getName(), activeValue->getType()); + bindInput->setValueString(child->getAttribute("value")); + } } } } diff --git a/source/MaterialXCore/Document.h b/source/MaterialXCore/Document.h index 9e710c7544..af28c11070 100644 --- a/source/MaterialXCore/Document.h +++ b/source/MaterialXCore/Document.h @@ -49,7 +49,7 @@ class Document : public GraphElement virtual void initialize(); /// Create a deep copy of the document. - virtual DocumentPtr copy() + virtual DocumentPtr copy() const { DocumentPtr doc = createDocument(); doc->copyContentFrom(getSelf()); @@ -178,13 +178,13 @@ class Document : public GraphElement /// Add a GeomPropDef to the document. /// @param name The name of the new GeomPropDef. - /// @param node The geometric node to use for the GeomPropDef. + /// @param geomprop The geometric property to use for the GeomPropDef. /// @return A shared pointer to the new GeomPropDef. - GeomPropDefPtr addGeomPropDef(const string& name, const string& node) + GeomPropDefPtr addGeomPropDef(const string& name, const string& geomprop) { - GeomPropDefPtr geomProp = addChild(name); - geomProp->setNode(node); - return geomProp; + GeomPropDefPtr geomPropDef = addChild(name); + geomPropDef->setGeomProp(geomprop); + return geomPropDef; } /// Return the GeomPropDef, if any, with the given name. @@ -203,7 +203,7 @@ class Document : public GraphElement void removeGeomPropDef(const string& name) { removeChildOfType(name); - } + } /// @} /// @name Look Elements diff --git a/source/MaterialXCore/Geom.cpp b/source/MaterialXCore/Geom.cpp index 4c9549ec3e..1eb23f97e6 100644 --- a/source/MaterialXCore/Geom.cpp +++ b/source/MaterialXCore/Geom.cpp @@ -17,7 +17,7 @@ const string UV_TILE_TOKEN = ""; const string GeomElement::GEOM_ATTRIBUTE = "geom"; const string GeomElement::COLLECTION_ATTRIBUTE = "collection"; -const string GeomPropDef::NODE_ATTRIBUTE = "node"; +const string GeomPropDef::GEOM_PROP_ATTRIBUTE = "geomprop"; const string GeomPropDef::SPACE_ATTRIBUTE = "space"; const string GeomPropDef::INDEX_ATTRIBUTE = "index"; const string GeomPropDef::ATTR_NAME_ATTRIBUTE = "attrname"; diff --git a/source/MaterialXCore/Geom.h b/source/MaterialXCore/Geom.h index 73143b7134..09fcb6af03 100644 --- a/source/MaterialXCore/Geom.h +++ b/source/MaterialXCore/Geom.h @@ -368,25 +368,25 @@ class GeomPropDef : public Element } virtual ~GeomPropDef() { } - /// @name Geometric Node + /// @name Geometric Property /// @{ - /// Set the geometric node string of this element. - void setNode(const string& node) + /// Set the geomprop string of this element. + void setGeomProp(const string& node) { - setAttribute(NODE_ATTRIBUTE, node); + setAttribute(GEOM_PROP_ATTRIBUTE, node); } - /// Return true if this element has a geometric node string. - bool hasNode() const + /// Return true if this element has a geomprop string. + bool hasGeomProp() const { - return hasAttribute(NODE_ATTRIBUTE); + return hasAttribute(GEOM_PROP_ATTRIBUTE); } - /// Return the geometric node string of this element. - const string& getNode() const + /// Return the geomprop string of this element. + const string& getGeomProp() const { - return getAttribute(NODE_ATTRIBUTE); + return getAttribute(GEOM_PROP_ATTRIBUTE); } /// @} @@ -459,7 +459,7 @@ class GeomPropDef : public Element public: static const string CATEGORY; - static const string NODE_ATTRIBUTE; + static const string GEOM_PROP_ATTRIBUTE; static const string SPACE_ATTRIBUTE; static const string INDEX_ATTRIBUTE; static const string ATTR_NAME_ATTRIBUTE; diff --git a/source/MaterialXCore/Observer.h b/source/MaterialXCore/Observer.h index 9b82f81113..ab1c3d0991 100644 --- a/source/MaterialXCore/Observer.h +++ b/source/MaterialXCore/Observer.h @@ -137,7 +137,7 @@ class ObservedDocument : public Document _updateScope = 0; } - DocumentPtr copy() override + DocumentPtr copy() const override { DocumentPtr doc = createDocument(); doc->copyContentFrom(getSelf()); diff --git a/source/MaterialXCore/Util.cpp b/source/MaterialXCore/Util.cpp index 4a4181a7e4..69113c5803 100644 --- a/source/MaterialXCore/Util.cpp +++ b/source/MaterialXCore/Util.cpp @@ -108,7 +108,7 @@ string replaceSubstrings(string str, const StringMap& stringMap) return str; } -string prettyPrint(ElementPtr elem) +string prettyPrint(ConstElementPtr elem) { string text; for (TreeIterator it = elem->traverseTree().begin(); it != TreeIterator::end(); ++it) diff --git a/source/MaterialXCore/Util.h b/source/MaterialXCore/Util.h index 8de1b1fabc..4e08d69533 100644 --- a/source/MaterialXCore/Util.h +++ b/source/MaterialXCore/Util.h @@ -19,6 +19,7 @@ extern const string EMPTY_STRING; class Element; using ElementPtr = shared_ptr; +using ConstElementPtr = shared_ptr; /// Return the version of the MaterialX library as a string. string getVersionString(); @@ -45,7 +46,7 @@ string replaceSubstrings(string str, const StringMap& stringMap); /// Pretty print the given element tree, calling asString recursively on each /// element in depth-first order. -string prettyPrint(ElementPtr elem); +string prettyPrint(ConstElementPtr elem); } // namespace MaterialX diff --git a/source/MaterialXCore/Value.cpp b/source/MaterialXCore/Value.cpp index 6e588e6957..4c82a76d07 100644 --- a/source/MaterialXCore/Value.cpp +++ b/source/MaterialXCore/Value.cpp @@ -234,7 +234,7 @@ template bool Value::isA() const return dynamic_cast*>(this) != nullptr; } -template T Value::asA() const +template const T& Value::asA() const { const TypedValue* typedVal = dynamic_cast*>(this); if (!typedVal) @@ -286,7 +286,7 @@ using FloatVec = vector; #define INSTANTIATE_TYPE(T, name) \ template <> const string TypedValue::TYPE = name; \ template bool Value::isA() const; \ -template T Value::asA() const; \ +template const T& Value::asA() const; \ template const string& getTypeString(); \ template string toValueString(const T& data); \ template T fromValueString(const string& value); \ diff --git a/source/MaterialXCore/Value.h b/source/MaterialXCore/Value.h index 5298f3979b..0227b6e2a0 100644 --- a/source/MaterialXCore/Value.h +++ b/source/MaterialXCore/Value.h @@ -67,7 +67,7 @@ class Value /// Return our underlying data as an object of the given type. /// If the given type doesn't match our own data type, then an /// exception is thrown. - template T asA() const; + template const T& asA() const; /// Return the type string for this value. virtual const string& getTypeString() const = 0; @@ -159,7 +159,7 @@ template class TypedValue : public Value } /// Return stored data object. - T getData() const + const T& getData() const { return _data; } diff --git a/source/MaterialXFormat/Environ.cpp b/source/MaterialXFormat/Environ.cpp new file mode 100644 index 0000000000..4a9ef04d05 --- /dev/null +++ b/source/MaterialXFormat/Environ.cpp @@ -0,0 +1,54 @@ +// +// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd. +// All rights reserved. See LICENSE.txt for license. +// + +#include + +#include + +#if defined(_WIN32) +#define WIN32_LEAN_AND_MEAN +#include +#endif + +namespace MaterialX +{ + +string getEnviron(const string& name) +{ +#if defined(_WIN32) + if (uint32_t size = GetEnvironmentVariable(name.c_str(), nullptr, 0)) + { + vector buffer(size); + GetEnvironmentVariable(name.c_str(), buffer.data(), size); + return string(buffer.data()); + } +#else + if (const char* const result = getenv(name.c_str())) + { + return string(result); + } +#endif + return EMPTY_STRING; +} + +bool setEnviron(const string& name, const string& value) +{ +#if defined(_WIN32) + return SetEnvironmentVariable(name.c_str(), value.c_str()) != 0; +#else + return setenv(name.c_str(), value.c_str(), true); +#endif +} + +bool removeEnviron(const string& name) +{ +#if defined(_WIN32) + return SetEnvironmentVariable(name.c_str(), nullptr) != 0; +#else + return unsetenv(name.c_str()) == 0; +#endif +} + +} // namespace MaterialX diff --git a/source/MaterialXFormat/Environ.h b/source/MaterialXFormat/Environ.h new file mode 100644 index 0000000000..ecd0d165be --- /dev/null +++ b/source/MaterialXFormat/Environ.h @@ -0,0 +1,28 @@ +// +// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd. +// All rights reserved. See LICENSE.txt for license. +// + +#ifndef MATERIALX_ENVIRON_H +#define MATERIALX_ENVIRON_H + +/// @file +/// Cross-platform environment variable functionality + +#include + +namespace MaterialX +{ + +/// Return the value of an environment variable by name +string getEnviron(const string& name); + +/// Set an environment variable to a specified value +bool setEnviron(const string& name, const string& value); + +/// Remove an environment variable by name +bool removeEnviron(const string& name); + +} // namespace MaterialX + +#endif // MATERIALX_ENVIRON_H diff --git a/source/MaterialXFormat/File.cpp b/source/MaterialXFormat/File.cpp index 5b07af6fd5..e8ad0fec8e 100644 --- a/source/MaterialXFormat/File.cpp +++ b/source/MaterialXFormat/File.cpp @@ -5,6 +5,8 @@ #include +#include + #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN #include @@ -27,6 +29,13 @@ const string VALID_SEPARATORS_POSIX = "/"; const char PREFERRED_SEPARATOR_WINDOWS = '\\'; const char PREFERRED_SEPARATOR_POSIX = '/'; +#if defined(_WIN32) +const string PATH_LIST_SEPARATOR = ";"; +#else +const string PATH_LIST_SEPARATOR = ":"; +#endif +const string MATERIALX_SEARCH_PATH_ENV_VAR = "MATERIALX_SEARCH_PATH"; + // // FilePath methods // @@ -140,4 +149,10 @@ FilePath FilePath::getCurrentPath() #endif } +FileSearchPath getEnvironmentPath(const string& sep) +{ + string searchPathEnv = getEnviron(MATERIALX_SEARCH_PATH_ENV_VAR); + return FileSearchPath(searchPathEnv, sep); +} + } // namespace MaterialX diff --git a/source/MaterialXFormat/File.h b/source/MaterialXFormat/File.h index 3db2190fb8..38dcbac44d 100644 --- a/source/MaterialXFormat/File.h +++ b/source/MaterialXFormat/File.h @@ -14,6 +14,9 @@ namespace MaterialX { +extern const string PATH_LIST_SEPARATOR; +extern const string MATERIALX_SEARCH_PATH_ENV_VAR; + /// @class FilePath /// A generic file path, supporting both syntactic and file system operations. class FilePath @@ -139,12 +142,26 @@ class FileSearchPath /// by separator characters. /// @param sep The set of separator characters used in the search path. /// Defaults to the semicolon character. - FileSearchPath(const string& searchPath, const string& sep = ";") : + FileSearchPath(const string& searchPath, const string& sep = PATH_LIST_SEPARATOR) : FileSearchPath() { + parse(searchPath, sep); + } + + /// Parse a given path and append to the sequence + void parse(const string& searchPath, const string& sep = PATH_LIST_SEPARATOR) + { + if (searchPath.empty()) + { + return; + } + for (const string& path : splitString(searchPath, sep)) { - append(path); + if (!path.empty()) + { + append(FilePath(path)); + } } } @@ -154,6 +171,21 @@ class FileSearchPath _paths.push_back(path); } + /// Append the given search path to the sequence. + void append(const FileSearchPath& searchPath) + { + for (const FilePath& path : searchPath.paths()) + { + _paths.push_back(path); + } + } + + /// Get list of paths in the search path. + const vector& paths() const + { + return _paths; + } + /// Prepend the given path to the sequence. void prepend(const FilePath& path) { @@ -184,6 +216,10 @@ class FileSearchPath /// filename is returned unmodified. FilePath find(const FilePath& filename) const { + if (_paths.empty()) + { + return filename; + } if (!filename.isAbsolute()) { for (const FilePath& path : _paths) @@ -202,6 +238,9 @@ class FileSearchPath vector _paths; }; +/// Return a FileSearchPath object from search path environment variable. +FileSearchPath getEnvironmentPath(const string& sep = PATH_LIST_SEPARATOR); + } // namespace MaterialX #endif diff --git a/source/MaterialXFormat/PugiXML/pugixml.cpp b/source/MaterialXFormat/PugiXML/pugixml.cpp index 2afff09dd7..e61cf592ee 100644 --- a/source/MaterialXFormat/PugiXML/pugixml.cpp +++ b/source/MaterialXFormat/PugiXML/pugixml.cpp @@ -3922,11 +3922,13 @@ PUGI__NS_BEGIN ++s; break; case '<': - writer.write('&', 'l', 't', ';'); + // MaterialX: Allow angle brackets in MTLX serialization. + writer.write(*s); ++s; break; case '>': - writer.write('&', 'g', 't', ';'); + // MaterialX: Allow angle brackets in MTLX serialization. + writer.write(*s); ++s; break; case '"': diff --git a/source/MaterialXFormat/XmlIo.cpp b/source/MaterialXFormat/XmlIo.cpp index 0a6c528ae2..986a5068ce 100644 --- a/source/MaterialXFormat/XmlIo.cpp +++ b/source/MaterialXFormat/XmlIo.cpp @@ -117,10 +117,10 @@ void elementToXml(ConstElementPtr elem, xml_node& xmlNode, const XmlWriteOptions void xmlDocumentFromFile(xml_document& xmlDoc, string filename, const string& searchPath) { - if (!searchPath.empty()) - { - filename = FileSearchPath(searchPath).find(filename); - } + FileSearchPath fileSearchPath = FileSearchPath(searchPath); + fileSearchPath.append(getEnvironmentPath()); + + filename = fileSearchPath.find(filename); xml_parse_result result = xmlDoc.load_file(filename.c_str()); if (!result) diff --git a/source/MaterialXGenOsl/ArnoldShaderGenerator.cpp b/source/MaterialXGenArnold/ArnoldShaderGenerator.cpp similarity index 58% rename from source/MaterialXGenOsl/ArnoldShaderGenerator.cpp rename to source/MaterialXGenArnold/ArnoldShaderGenerator.cpp index d710383f96..ef9844ded6 100644 --- a/source/MaterialXGenOsl/ArnoldShaderGenerator.cpp +++ b/source/MaterialXGenArnold/ArnoldShaderGenerator.cpp @@ -1,4 +1,9 @@ -#include +// +// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd. +// All rights reserved. See LICENSE.txt for license. +// + +#include namespace MaterialX { @@ -6,8 +11,8 @@ namespace MaterialX const string ArnoldShaderGenerator::TARGET = "arnold"; -ArnoldShaderGenerator::ArnoldShaderGenerator() - : OslShaderGenerator() +ArnoldShaderGenerator::ArnoldShaderGenerator() + : OslShaderGenerator() { const StringSet restrictedNames = { "translucent", "empirical_bssrdf", "randomwalk_bssrdf", "volume_absorption", "volume_emission", "volume_henyey_greenstein", "volume_matte" }; diff --git a/source/MaterialXGenOsl/ArnoldShaderGenerator.h b/source/MaterialXGenArnold/ArnoldShaderGenerator.h similarity index 77% rename from source/MaterialXGenOsl/ArnoldShaderGenerator.h rename to source/MaterialXGenArnold/ArnoldShaderGenerator.h index 8547ee7de5..e2ba9277f3 100644 --- a/source/MaterialXGenOsl/ArnoldShaderGenerator.h +++ b/source/MaterialXGenArnold/ArnoldShaderGenerator.h @@ -1,6 +1,14 @@ +// +// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd. +// All rights reserved. See LICENSE.txt for license. +// + #ifndef MATERIALX_ARNOLDSHADERGENERATOR_H #define MATERIALX_ARNOLDSHADERGENERATOR_H +/// @file +/// Arnold OSL shader generator + #include namespace MaterialX @@ -8,6 +16,7 @@ namespace MaterialX using ArnoldShaderGeneratorPtr = shared_ptr; +/// @class ArnoldShaderGenerator /// An OSL shader generator targeting the Arnold renderer class ArnoldShaderGenerator : public OslShaderGenerator { diff --git a/source/MaterialXGenArnold/CMakeLists.txt b/source/MaterialXGenArnold/CMakeLists.txt new file mode 100644 index 0000000000..a1d9730f20 --- /dev/null +++ b/source/MaterialXGenArnold/CMakeLists.txt @@ -0,0 +1,53 @@ +include_directories( + ${EXTERNAL_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR}/../ +) + +file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp") +file(GLOB_RECURSE materialx_header "${CMAKE_CURRENT_SOURCE_DIR}/*.h") + +function(assign_source_group prefix) + foreach(_source IN ITEMS ${ARGN}) + if (IS_ABSOLUTE "${_source}") + file(RELATIVE_PATH _source_rel "${CMAKE_CURRENT_SOURCE_DIR}" "${_source}") + else() + set(_source_rel "${_source}") + endif() + get_filename_component(_source_path "${_source_rel}" PATH) + string(REPLACE "/" "\\" _source_path_msvc "${_source_path}") + source_group("${prefix}\\${_source_path_msvc}" FILES "${_source}") + endforeach() +endfunction(assign_source_group) + +assign_source_group("Header Files" ${materialx_header}) +assign_source_group("Source Files" ${materialx_source}) + +add_library(MaterialXGenArnold STATIC + ${materialx_source} + ${materialx_header} +) + +set_target_properties( + MaterialXGenArnold PROPERTIES + OUTPUT_NAME MaterialXGenArnold + COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS}" + LINK_FLAGS "${EXTERNAL_LINK_FLAGS}" + VERSION "${MATERIALX_LIBRARY_VERSION}" + SOVERSION "${MATERIALX_MAJOR_VERSION}") + +target_link_libraries( + MaterialXGenArnold + MaterialXGenOsl + MaterialXCore + ${CMAKE_DL_LIBS}) + +install(TARGETS MaterialXGenArnold + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/ +) + +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MaterialXGenArnold/ MESSAGE_NEVER + FILES_MATCHING PATTERN "*.h*") + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/MaterialXGenArnold.pdb" + DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/" OPTIONAL) diff --git a/source/MaterialXGenGlsl/CMakeLists.txt b/source/MaterialXGenGlsl/CMakeLists.txt index eb6b76aaa2..95ddbec801 100644 --- a/source/MaterialXGenGlsl/CMakeLists.txt +++ b/source/MaterialXGenGlsl/CMakeLists.txt @@ -46,7 +46,7 @@ install(TARGETS MaterialXGenGlsl ) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" - DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MaterialXGenGlsl/ + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MaterialXGenGlsl/ MESSAGE_NEVER FILES_MATCHING PATTERN "*.h*") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/MaterialXGenGlsl.pdb" diff --git a/source/MaterialXGenGlsl/GlslShaderGenerator.cpp b/source/MaterialXGenGlsl/GlslShaderGenerator.cpp index c92b740c5d..2debccc2db 100644 --- a/source/MaterialXGenGlsl/GlslShaderGenerator.cpp +++ b/source/MaterialXGenGlsl/GlslShaderGenerator.cpp @@ -1,4 +1,10 @@ +// +// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd. +// All rights reserved. See LICENSE.txt for license. +// + #include + #include #include #include @@ -16,6 +22,9 @@ #include #include #include +#include +#include +#include #include #include @@ -27,44 +36,18 @@ namespace MaterialX { + const string GlslShaderGenerator::LANGUAGE = "genglsl"; const string GlslShaderGenerator::TARGET = "glsl400"; const string GlslShaderGenerator::VERSION = "400"; -const string GlslShaderGenerator::LIGHT_DIR = "L"; -const string GlslShaderGenerator::VIEW_DIR = "V"; -const string GlslShaderGenerator::INCIDENT = "incident"; -const string GlslShaderGenerator::OUTGOING = "outgoing"; -const string GlslShaderGenerator::NORMAL = "normal"; -const string GlslShaderGenerator::EVAL = "eval"; - -GlslShaderGenerator::GlslShaderGenerator() - : ParentClass(GlslSyntax::create()) -{ - // - // Create the node contexts used by this generator - // - // BSDF reflection context - GenContextPtr ctxBsdfReflection = createContext(CONTEXT_BSDF_REFLECTION); - ctxBsdfReflection->addArgument(Argument("vec3", INCIDENT)); - ctxBsdfReflection->addArgument(Argument("vec3", OUTGOING)); - ctxBsdfReflection->setFunctionSuffix("_reflection"); - - // BSDF transmission context - GenContextPtr ctxBsdfTransmission = createContext(CONTEXT_BSDF_TRANSMISSION); - ctxBsdfTransmission->addArgument(Argument("vec3", OUTGOING)); - ctxBsdfTransmission->setFunctionSuffix("_transmission"); - - // BSDF indirect context - GenContextPtr ctxBsdfIndirect = createContext(CONTEXT_BSDF_INDIRECT); - ctxBsdfIndirect->addArgument(Argument("vec3", OUTGOING)); - ctxBsdfIndirect->setFunctionSuffix("_indirect"); - - // EDF emission context - GenContextPtr ctxEdf = createContext(CONTEXT_EDF); - ctxEdf->addArgument(Argument("vec3", NORMAL)); - ctxEdf->addArgument(Argument("vec3", EVAL)); +// +// GlslShaderGenerator methods +// +GlslShaderGenerator::GlslShaderGenerator() : + HwShaderGenerator(GlslSyntax::create()) +{ // // Register all custom node implementation classes // @@ -169,7 +152,11 @@ GlslShaderGenerator::GlslShaderGenerator() registerImplementation("IM_convert_float_vector3_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); registerImplementation("IM_convert_float_vector4_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); registerImplementation("IM_convert_vector2_color2_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); + registerImplementation("IM_convert_vector2_vector3_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); + registerImplementation("IM_convert_vector3_vector2_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); registerImplementation("IM_convert_vector3_color3_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); + registerImplementation("IM_convert_vector3_vector4_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); + registerImplementation("IM_convert_vector4_vector3_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); registerImplementation("IM_convert_vector4_color4_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); registerImplementation("IM_convert_color2_vector2_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); registerImplementation("IM_convert_color3_vector3_" + GlslShaderGenerator::LANGUAGE, ConvertNode::create); @@ -231,12 +218,12 @@ GlslShaderGenerator::GlslShaderGenerator() // registerImplementation("IM_light_" + GlslShaderGenerator::LANGUAGE, LightNodeGlsl::create); - // - registerImplementation("IM_pointlight_" + GlslShaderGenerator::LANGUAGE, LightShaderNodeGlsl::create); - // - registerImplementation("IM_directionallight_" + GlslShaderGenerator::LANGUAGE, LightShaderNodeGlsl::create); - // - registerImplementation("IM_spotlight_" + GlslShaderGenerator::LANGUAGE, LightShaderNodeGlsl::create); + // + registerImplementation("IM_point_light_" + GlslShaderGenerator::LANGUAGE, LightShaderNodeGlsl::create); + // + registerImplementation("IM_directional_light_" + GlslShaderGenerator::LANGUAGE, LightShaderNodeGlsl::create); + // + registerImplementation("IM_spot_light_" + GlslShaderGenerator::LANGUAGE, LightShaderNodeGlsl::create); // registerImplementation("IM_heighttonormal_vector3_" + GlslShaderGenerator::LANGUAGE, HeightToNormalNodeGlsl::create); @@ -249,492 +236,343 @@ GlslShaderGenerator::GlslShaderGenerator() registerImplementation("IM_blur_vector2_" + GlslShaderGenerator::LANGUAGE, BlurNode::create); registerImplementation("IM_blur_vector3_" + GlslShaderGenerator::LANGUAGE, BlurNode::create); registerImplementation("IM_blur_vector4_" + GlslShaderGenerator::LANGUAGE, BlurNode::create); + + //