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 #50

Merged
merged 27 commits into from
Jan 30, 2024
Merged

Merge #50

merged 27 commits into from
Jan 30, 2024

Conversation

kwokcb
Copy link
Owner

@kwokcb kwokcb commented Jan 30, 2024

No description provided.

kwokcb and others added 27 commits January 6, 2024 13:23
- Add colouring to items and folders which can be set vis CSS. This makes it easier to tell what areas are under what folders.
- Fix string disable setting (was using old API).
- Fix parenting of enum widgets to be under current folder instead of top level.
This changelist adds an intermediate HwImplementation class, allowing the sharing of common features between node implementations in hardware shading languages.
This changelist merges the implementations of geometry nodes across hardware shading languages, allowing a greater degree of code sharing.
This changelist merges the implementations of application and NPR nodes across hardware shading languages, allowing a greater degree of code sharing.
The materialx specification defines the scale attribute of the normalmap to be either a float or a vector2 but the vector2 variant was missing from the implementation. This PR adds it.
- Adds in proper parsing of renderable elements vs always just picking the first surface shader found.
  - The test suite files which have (multiple) nodegraph outputs and top level outputs will now load properly.
- Adds in UI to mark folders as renderable (using a shaderball icon) 
- Adds in "soloing" capability to allow picking a renderable and have it show up on all geometry. When nothing is solo'ed the default material assignment is used.
- Includes fixes for:
  - Dag path assignment matching .
  - Missing exposure of NodeGraph::getDownStreamPorts() in JS.
  - Addressing the big performance hit when binding materials to geometry in ThreeJS. The code by default is some quite slow code for reflection / debugging purposes which is now turned off. Chess set load is seconds vs minutes. This affects the 'solo'ing workflow significantly as each switch is a geometry re-bind. If the material is not already cached then slow code will be hit which can cause seconds to pass when selecting a new material -- which appears like a "hang" from a user perspective.
This changelist fixes a regression to environment irradiance generation in MaterialXView, caused by a change to image caching logic for GLSL rendering in MaterialX 1.38.8.  This fix restores the ability to render environment maps that are missing their pre-generated irradiance data, with irradiance being generated on the fly via spherical harmonics.
…#1646)

UsdPreviewSurface allows useSpecularWorkflow to be 0 or 1. Normals should have values between -1 to 1, inclusive. This PR puts these limits into place.
This changelist merges two sets of noise unit tests into a single document, and aligns their implementations for clarity.
This changelist addresses a handful of static analysis optimizations flagged by PVS-Studio and cppcheck, including the following:

- Pass immutable std::string, FilePath, and FileSearchPath arguments by const reference.
- Mark immutable ShaderGenerator references as const.
- Prefer std::string::empty over comparison against an empty string.
- Remove unused private methods Graph::findLinkId, Graph::findInput, and Graph::selectMaterial.
- Remove variable assignments with no impact on code behavior.
- Leverage node graphs to share the conversion aspects of noise implementations across languages.
- Simplify noise unit tests to cover only unique implementations.
This changelist fixes a handful of minor typos in shader generation, introduced in #1355 and #1553.
Add frame capture code to trigger on 'f' key. This is the same key as used for the desktop viewer.
This changelist applies the mxformat.py script to the libraries and resources folders in the repository, updating formatting for a handful of documents.
This changelist adds two new sections to the Developer Guide, describing the categories of changes to the MaterialX API and data libraries that are allowed in version upgrades.
- The globals presets defined for TypeDesc are pointers which may not be shared between shared modules. This occurs for instance in Python where the pointers are declared locally for each module.
- Any pointer comparison between the same TypeDesc preset can thus result in a failure status.
- Leverage node graphs to share the conversion aspects of smoothstep implementations across languages.
- Simplify smoothstep unit tests to cover only unique implementations.
This changelist updates the comments in stdlib_ng, aligning them with the conventions for nodegraph definitions in the data libraries.
This PR introduces fixes related to the removal of orphaned links when deleting a node in the Graph Editor:
- remove the attribute `INTERFACE_NAME_ATTRIBUTE` of input pins that were connected to the deleted node
(Fixes #1577) 
- iterate over all of the output pins instead of only handling the first one.
(Fixes #1666)
This changelist adds a `facingratio` node to the NPR data library, providing an additional intermediate node for building NPR graphs.
- Add support to recognize dropping of individual geometry (glb) files.
- Minor cleanup to stop if no MTLX or GLB files loaded.
This changelist applies automated formatting to the MaterialX JavaScript codebase, aligning it with the 4-space indentation and Allman braces used in MaterialX C++.
ShaderNodes.cpp had missing classification information for Volume Shaders. This PR is a simple addition of that classification.
The node exists in the standard library code, but is missing from the specification.
- Fix syntax of input default values.
- Use the invert node in facingratio for compactness.
- Clarify the edge brighten example material.
Currently the embedded glfw build for MaterialXGraphEditor inherits the value of BUILD_SHARED_LIBS from MATERIALX_BUILD_SHARED_LIBS, but we're not installing libglfw, per #1245 the intention was to statically link.
@kwokcb kwokcb merged commit 9a0d7f0 into kwokcb:multi_stream Jan 30, 2024
15 of 16 checks passed
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.

7 participants