Version 1.2.1 - Bifrost 2.8
[1.2.1] - 2023-11-15
Build
- BIFROST-9103 - Replace pxr by PXR_NS
- BIFROST-9093 - Uses cpp2json executable instead of the deprecated amino_cpp2json_foreach one.
- BIFROST-8182 - Remove -Wno-unused-macros on Windows targets
- BIFROST-8182 - Clang-tidy support: Add the cmake target "bifrost_usd_clang_tidy" to the build.
Feature
-
BIFROST-8077 - Add support for half and matrix attribute types
-
BIFROST-8574 - Add anchor_path parameter on add_reference_prim and add_payload_prim
By specifying an "anchor_path", the identifier of the referenced layer will not include such anchor path in the reference list.
-
BIFROST-8424 - Add slider and color picker on ops
-
BIFROST-9008 - Add set_layer_permission node
To be used for the very specific scenario when you need to reference a layer
that needs to be modified by an other runtime than Bifrost.For example, if a stage generated by Bifrost references a "file based" layer
storing some USD materials who should be authored in the LookdevX Editor,
it would not work by default. This is because in order to keep the referenced layer
"file based", the "read only" mode would need to be enabled in the open_layer node.
If not in read only mode, the opened layer ("file based" layer) would be automatically
copied into an anonymous layer by Bifrost USD (to avoid side effects) and so would not
be editable in LookdevX in a persistent way (as the layer identifier would change at
every execution of the graph).The node graph to open a layer in Bifrost and let it be editable outside should look as following:
open_layer (with read_only "on") -> set_layer_permission (with read_only "off") -> add_reference_primThe open_layer node will call the BifrostUsd::Layer constructor that is "opening or finding" the USD layer
using the file path as an identifier (and will not create an anonymous layer, because of the read only mode).
The set_layer_permission will allow the layer to be editable and will not output an anonymous layer. -
BIFROST-8788 - Use for_each in define_usd_mesh
-
BIFROST-7769 - use getEnv*() functions from public Executor SDK
-
BIFROST-8199 - Use ConfigEnv instead of Object to get config from environment
-
BIFROST-3401 - Use new API for FileUtils::getRelativePath.
Bugfix
-
BIFROST-9067 - Fix connection order when creating an add_to_stage node 'on the fly'
-
BIFROST-8826 - fix random test failures on Windows
- Layer::exportToFile() now uses SdfLayer::New() instead of CreateNew().
This prevents a temporary and default file to be created on the disk
before the final exported file is actually written. On Windows, when
Pixar USD is writing an initial file and almost immediately attempts
to replace its content by renaming another file to such initial file,
an "access denied" error can occasionally occur; eliminating the
temporary file on the first place by not calling CreateNew() avoids
this error. - Each unit test file now outputs its exported files into its own unique
folder, avoiding completely the possibility that two concurrent tests
from different test files would attempt to export to the same file.
These unique output folders are deleted as a first phase for each test
file, allowing tests to assume and check that an output file is not
already on disk before it is being exported. - Some tests were previously just lucky to succeed, as they were
exporting a root layer and sublayer to disk, but the sublayer was
actually exported into the default output folder, not into the expected
folder, and since the sublayer file was already saved to disk by
another test case, the test assumed that everything went fine. Such
test cases are now fixed or were removed (if not fixable). - Tests do not export initial files first, then replacing these by final
file content, and finally checking the final file for some expected
content. This was also occasionally causing "access denied" errors, as
described above. - add README.md in test folder
- Layer::exportToFile() now uses SdfLayer::New() instead of CreateNew().