Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main to dev #1384

Merged
merged 694 commits into from
Apr 28, 2022
Merged

Merge main to dev #1384

merged 694 commits into from
Apr 28, 2022

Conversation

ashwinbhat
Copy link
Collaborator

@ashwinbhat ashwinbhat commented Apr 21, 2022

Merging main at 37ccbc5 to dev

jstone-lucasfilm and others added 30 commits February 13, 2021 11:17
- Upgrade all documents in the libraries/bxdf folder to v1.38.
- Adjust uniform attributes in shading model interfaces to match their specifications.
- Rename a node in the implementation of standard_surface to avoid a collision with its interface.
- Deprecation of nodes: `backfacing`, `fresnel`, `viewdirection`
- Get MDL unit tests to work with 1.38 changes
- Updates for TextureBaker:
  - restore code to prevent unoptimized path from failing.
  - fix `normalmap` node creation code to only copy over contents if the root of the subgraph being baked is also a `normalmap`. (the root may be a downstream node with a normalmap upstream of it).
- Fix for logic to GLSL implementation of `heighttonormal` node to prevent artifacts due to math exceptions. Render test case has been updated to test more configurations.
- Minor fix to image path flattening to prevent empty paths from adding search paths.
- Upgrade all documents in the libraries/pbrlib folder to v1.38.
- Adjust uniform attributes in node interfaces to match the specification.
- Upgrade all documents in the libraries/stdlib folder to v1.38.
- Adjust uniform attributes in node interfaces to match the specification.
This changelist adds support for comment elements, allowing document comments to be directly generated through the MaterialX API and preserved when loading and saving content.  The mxupdate.py script has been updated to preserve MTLX comments in document upgrades.
- Upgrade all documents in the resources/Materials/TestSuite folder to v1.38.
- Update comments and formatting for consistency.
- Merge output accessors for Input and PortElement for simplicity.
- Simplify the implementation of Input::getConnectedNode.
- Rename Input::getConnectedInterface to Input::getInterfaceInput for clarity.
- Add default arguments to the Python binding for MaterialX::getShaderNodes.
- Add Python bindings for MATERIAL_TYPE_STRING, SURFACE_MATERIAL_NODE_STRING, and VOLUME_MATERIAL_NODE_STRING.
- Add shader node logic to mxvalidate.py, making this common Python pattern part of the test suite.
- Add missing deprecation warnings for ShaderRef methods.
- Add specification documents for v1.38.
- Minor changelog revisions for v1.38.0.
- Adjust global Doxygen settings for clarity.
- Fix a Doxygen comment in ShaderStage.h.
This changelist updates the transparency detection heuristic in MaterialXGenShader/Util.cpp for v1.38 shader nodes.  There's still plenty of room for future improvement, but this implementation generates correct results for all examples in the MaterialX repository.
- In the Viewer and TextureBaker, respect input search paths for shader code as well as documents and images, applying the necessary modifications to match the expectations of the code generator.
- Move the getDefaultSearchPath helper function from MaterialXGenShader to MaterialXView, since its assumptions are specific to that application.
- Remove library and resource copies for viewer builds, as they tend to slow down shader development.
- Simplify the logic for viewer search paths, making it more robust in production contexts.
- Align parameter-to-input conversion with the specification, now that the standard libraries have been upgraded to v1.38.
- Remove legacy shader nodedefs from v1.36 documents, since they can interfere with code generation.
- Update repository links to match a rename of the default branch from 'master' to 'main' (https://github.com/github/renaming).
- Add support for workflow dispatch jobs in GitHub Actions.
### Changes
- Refinement to optional arguments on loading libraries and documents
- TextureBaker: auto-resizing output image and hashing output file names options.
### Unit Tests
[mar1_unit_tests.pdf](https://github.com/materialx/MaterialX/files/6066037/mar1_unit_tests.pdf)
- Final updates for the v1.38 specification.
- Minor update to MaterialXTest documentation.
9197ee9 re-introduced linking via -lnanogui , which is redundant with the CMake variable NANOGUI_LIBRARIES for a local nano-gui build, and causes errors with an external NanoGUI install. 76a30db is the original merge where it was removed.
- Simplify ImageHandler::acquireImage, making it non-virtual and removing an unused parameter.
- Add protected helper method ImageHandler::loadImage.
- Streamline the implementation of MaterialX::createImageStrip.
Issues Addressed
- Fixes erroneous generation of a texture_2d() reference with "/" as an argument when no value is specified.
- Make texture_2d() lookups input arguments as opposed to always inlined.
This changelist adds support for 16-bit unsigned-integer images in MaterialXRender, allowing 16-bit TIFF files to be loaded and viewed when MaterialX is built with OpenImageIO enabled.

Also:
- Make ImageHandler::clearImageCache a public method.
- Add missing Python bindings for the ImageHandler class.
- Simplify Python bindings for the ImageLoader class.
These changes allow MaterialX to be built under Windows with MATERIALX_BUILD_SHARED_LIBS set to true. New "MX__API" symbols exist for each library to allow classes and functions to be explicitly exported from the resulting DLLs.
- Upgrade Ubuntu version for GCC 10 builds.
- Add test for shared libraries on Windows.
This changelist implements improvements to the viewer property editor, updating its display of shading models and ungrouped inputs to v1.38 conventions.
This changelist contains the initial draft and discussion for a set of new OSL closures to represent the MaterialX PBS library.

Discussion and development on this project continues in the OSL repository at AcademySoftwareFoundation/OpenShadingLanguage#1371.
Attribution: These images have been scanned by Autodesk and contributed to the MaterialX project.
This changelist removes a legacy texture that was referenced only in unit tests, replacing it with the standard grid texture.
ashwinbhat and others added 16 commits April 11, 2022 10:27
* Create Viewer, Editor, Material and Scene classes to organize functionality
* Change material and geometry changes to not reload the entire page causing everything to be re-initialized. Instead perform incremental updates.
* Small fix to get any UI names if looking up an interface input
This changelist fixes the issue with flattenSubgraphs described in #865.
The environment material used for 3d preview was not being recompiled when changing the environment.
Hence the scene was rendering using the new environment, but the preview was not.
- Add utilities UnitConverterRegistry::convertToUnit and MaterialX::joinStrings.
- Use C Locale for string stream operations (#1183).
- Add tests for unit and locale content.
- Align screen background colors between MaterialXView, MaterialXRenderGlsl, and MaterialXRenderOsl.
- Add helper methods to transform colors between linear RGB and the sRGB encoding.
As per discussions on MaterialX slack channel, this implements...
- the "fallback" parameter in IMP_UsdPrimvarReader
- also makes the default parameter in ND_geompropvalue_integer non-uniform
This include changes to utf8 and flatten graphs
- Restore the original locale after unit tests are complete, so that render tests are unaffected by the change.
- Simplify locale unit tests, removing steps that aren't required.
kwokcb and others added 6 commits April 21, 2022 10:08
An interior test plane was left inside the sphere geometry.
Removing it as it affects transparent objects as well as environment preview in MaterialXView.
This changelist introduces a rough approximation of refraction in GLSL, allowing transmissive materials such as glass to respond visually to changes in specular_IOR, specular_roughness, and transmission_color.

Because this initial approximation is limited to a single render pass, only the environment radiance map is currently visible in refractions, and opaque objects behind transmissive surfaces are not yet visible.
This changelist updates the generator search path used in MaterialX JavaScript, aligning it with other generators in the MaterialX codebase.
This changelist simplifies Python bindings for the base ShaderGenerator class, making it concrete rather than abstract, and removing the PyShaderGenerator trampoline class.
@ashwinbhat ashwinbhat closed this Apr 28, 2022
@ashwinbhat ashwinbhat reopened this Apr 28, 2022
@ashwinbhat ashwinbhat merged commit a748c07 into adsk_contrib/dev Apr 28, 2022
@ashwinbhat ashwinbhat deleted the adsk_contrib/main_to_dev branch April 28, 2022 23:57
ashwinbhat pushed a commit that referenced this pull request Mar 12, 2024
…ftwareFoundation#1413)

This change list simplifies the way thin-film iridescence is specified in the PBR library, as discussed in issue #1384.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet