Syoyo Fujita
de47bc8f07
Merge branch 'anim-mtlx-phase2' of github.com:lighttransport/tinyusdz into anim-mtlx-phase2
2025-11-30 04:26:18 +09:00
Syoyo Fujita
4b506dc780
Add LTE SpectralAPI unit test USDA files
...
17 test files covering spectral data parsing:
Reflectance tests:
- spectral-reflectance-001.usda: Basic wavelength:reflectance
- spectral-reflectance-002.usda: With linear interpolation metadata
- spectral-reflectance-003.usda: With cubic interpolation
IOR tests:
- spectral-ior-001.usda: Basic wavelength:ior
- spectral-ior-002.usda: With linear interpolation
- spectral-ior-sellmeier-001.usda: Fused silica Sellmeier coefficients
- spectral-ior-sellmeier-002.usda: BK7 glass Sellmeier coefficients
Emission tests:
- spectral-emission-001.usda: Basic wavelength:emission
- spectral-emission-002.usda: With interpolation metadata
- spectral-emission-preset-*.usda: D65, D50, A, F2 illuminant presets
Other tests:
- spectral-stage-metadata-*.usda: Stage-level unitForWavelength
- spectral-held-interp-001.usda: Held interpolation
- spectral-material-binding-001.usda: Complete material with binding
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-30 03:41:58 +09:00
Syoyo Fujita
ab0ef8900c
Add comprehensive UsdLux parsing and conversion system with test suite
...
Implements complete UsdLux light parsing and conversion pipeline:
Core Infrastructure:
- RenderLight data structure supporting 6 UsdLux light types (Point/Sphere, Directional, Rect, Disk, Cylinder, Dome)
- MeshLightAPI support for emissive geometry lights
- Full property extraction: color, intensity, exposure, shadows, shaping, IES profiles
- Color temperature support with Kelvin-based specification
JSON Serialization:
- Complete light data serialization in material-serializer.cc
- Geometry light mesh references with geometryMeshId
- Material sync mode for mesh lights
Three.js Exporter:
- Light type conversion to Three.js equivalents
- Shadow map configuration
- Directional/Point/Spot/Rect/Hemisphere light export
WASM Bindings:
- numLights() API for light count
- getLightWithFormat() supporting JSON/YAML output
- Node.js CLI tool (dump-usdlux-cli.js) for testing
Test Suite:
- Comprehensive test files in tests/usda/:
* usdlux_basic_lights.usda - 6 light types
* usdlux_advanced_features.usda - IES, shaping, textures
* usdlux_mesh_lights_simple.usda - MeshLightAPI
- Automated test suite (test-usdlux-parsing.js)
- npm test:usdlux script for CI/CD integration
- All tests passing (4/4)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-19 03:27:19 +09:00
Syoyo Fujita
f3fb9015ed
Add comprehensive timesamples test files for scalar and array types
...
Added 24 USDA test files covering scalar and array timesamples syntax:
Scalar types (15 tests):
- bool, int, uint, int64, uint64
- half, float, double
- token, assetpath
- vec2f, vec3f, vec4f, quatf, matrix4d
Array types (9 tests):
- bool[], int[], float[], double[], token[]
- vec2f[], vec3f[], vec4f[], quatf[]
Also added corresponding USDC binary format files generated via usdcat.
Each test follows a simple template with single Prim and Attribute with 2-3 keyframes.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-26 02:21:35 +09:00
Syoyo Fujita
6088dc4797
Merge branch 'crate-timesamples-opt' of github.com:lighttransport/tinyusdz into crate-timesamples-opt
2025-10-25 23:52:51 +09:00
Syoyo Fujita
7392324835
dd tests for string and string[] timesamples
2025-10-25 23:50:23 +09:00
Syoyo Fujita
1f18be0949
Fix empty timeSamples being omitted from output
...
Empty timeSamples (with size=0 but valid type_id) were being completely
omitted from output instead of being printed as "{}". This fix ensures
authored but empty timeSamples are preserved during round-trip parsing.
Changes:
- prim-reconstruct.cc: Check type_id != 0 to detect authored empty timeSamples in xformOp reconstruction
- primvar.hh: Update type_name() and type_id() to handle empty timeSamples
- pprinter.cc: Update printing logic to output empty timeSamples as "{}"
- timesamples-pprint.cc: Remove debug output
- timesamples.hh: Remove debug output
- ascii-parser-timesamples-array.cc: Add bool[] timeSamples support
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-24 11:36:02 +09:00
Syoyo Fujita
bbc01dfa50
timesamples pprint w.i.p.
2025-10-15 12:14:10 +09:00
Syoyo Fujita
e546a47090
Add TypedArray support to PODTimeSamples and redesign animation system for Three.js compatibility
...
- PODTimeSamples: Add add_typed_array_sample() and get_typed_array_at() to store TypedArray<T> as 8-byte packed pointers instead of full Value objects
- Tydra: Redesign animation system to match glTF/Three.js architecture
- Replace Animation struct with AnimationClip containing KeyframeSampler and AnimationChannel
- Use flat float arrays for keyframe storage (matches Three.js KeyframeTrack)
- Remove node_animations from Node struct - animations now reference nodes by index
- Add AnimationPath enum (Translation/Rotation/Scale/Weights) matching glTF paths
- Add AnimationInterpolation enum (Linear/Step/CubicSpline) matching glTF spec
- Documentation: Add THREEJS_ANIMATION.md with Three.js animation system reference
- Documentation: Add ANIMATION_SYSTEM_REDESIGN.md with migration guide
This makes Tydra animations directly compatible with Three.js AnimationClip and
glTF 2.0 animation structure for easier web export.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-09 23:25:01 +09:00
Syoyo Fujita
d0b1a80d2d
small buffer optimization.
2025-09-04 03:27:04 +09:00
Syoyo Fujita
efa08f0770
Fix "/" is not added to replaced path prefix.
...
Add feature of replacing path to 'Payload' command.
2025-06-15 07:50:53 +09:00
Syoyo Fujita
79533bc317
Rewrite Prim path prefix in References composition.
2025-06-14 11:06:05 +09:00
Syoyo Fujita
d76c9ce5a2
layerToStage: Fix untyped PrimSpec is not handled correctly.
...
typo.
add root prim path change test scene for USD composition.
2025-06-14 09:09:13 +09:00
Syoyo Fujita
2aa3d55e93
Add opacityMode attrib support(introduced from UsdPreviewSurface v2.6)
2025-05-20 06:52:23 +09:00
Syoyo Fujita
ae76912b85
Fix None in TimeSamples is not handled correctly. Fixes #232
2025-05-16 12:23:10 +09:00
Syoyo Fujita
d30de26288
Support kilogramsPerUnit stage metadataum.
...
Support displayName/displayGroup attribute metadataum.
2025-03-28 03:19:28 +09:00
Roberto De Ioris
7c85e00ae0
added sublayers example usda files
2024-11-22 11:50:07 +01:00
Syoyo Fujita
fb66ca5723
add repro scene for PR 195.
2024-10-21 22:25:17 +09:00
Syoyo Fujita
07f05cad04
Allow skipping unknown apiSchema by default.
2024-07-21 21:48:58 +09:00
Syoyo Fujita
1b46af8010
Support all of usdGeom/usdShade/usdLux API tokens.
2024-07-21 03:54:59 +09:00
Syoyo Fujita
8a5491db31
[USDC] fix some inlined values are reconstructed as wrong type(e.g. inlined float2 value was reconstructed as half3 type)
2024-06-12 22:35:08 +09:00
Syoyo Fujita
3b27bedc4f
Fix ValueBlock Relationship was not handled correctly.
2024-05-10 05:15:51 +09:00
Syoyo Fujita
d869836502
Remove a debug log.
...
Add test files for xformOp.
2024-05-09 01:45:21 +09:00
Syoyo Fujita
2016236a4b
Fix built-in property is not handled as TypedAttribute for SkelRoot
...
Prim.
2024-05-09 01:39:42 +09:00
Syoyo Fujita
71068ffd57
Use std::string insted of problematic 'value::StringData' for 'string' attribute
2024-05-08 09:27:58 +09:00
Syoyo Fujita
0902c19bc2
Initial support of reading attribute with multi-values.
2024-05-03 08:10:50 +09:00
Syoyo Fujita
27d6ba027f
w.i.p
2024-05-02 09:17:54 +09:00
Syoyo Fujita
d336d0b57f
Merge branch 'dev' into multi-value-prop
2024-05-02 02:35:09 +09:00
Syoyo Fujita
6cb1cff60d
Support parsing unauthoredValuesIndex metadata.
...
Add unauthoredValuesIndex to GeomPrimvar.
Apply clang-format to ascii-parser.cc
Fixes #158
2024-04-30 02:37:48 +09:00
Syoyo Fujita
0c147e535a
[USDA] Support parsing multi-valued attribute.
2024-04-23 22:53:21 +09:00
Syoyo Fujita
d14ce2a32d
[USDA Parser] Report syntax error when attribute metadataum exists for timesampled attribute and attribute connection
2024-04-22 22:21:11 +09:00
Syoyo Fujita
30ed6a2b3a
Support having multiple values in Attribute(W.i.p.)
2024-04-18 05:27:23 +09:00
Syoyo Fujita
a724ba3fec
Support constructing timesampled enum token attribute.
2024-04-12 03:13:47 +09:00
Syoyo Fujita
6a6a150660
Support parsing timesampled enum tokens(w.i.p.)
2024-04-10 07:09:18 +09:00
Syoyo Fujita
e74d1d8906
rel + valueblock + metadataum
2024-04-07 04:11:57 +09:00
Syoyo Fujita
30b717fb63
Allow comment inside customLayerData(Dictionary) Stage metadataum. Fixes
2024-04-07 04:04:37 +09:00
Syoyo Fujita
a98b0882a1
Fix parsing declare-only enum token attribute. Fixes #136
2024-04-07 02:47:53 +09:00
Syoyo Fujita
8dce7bc170
Support parsing 'colorSpace' attribute metadataum.
2024-01-19 02:31:03 +09:00
Syoyo Fujita
caf86ade14
Support "point" elementType for GeomSubset
2023-12-15 01:37:09 +09:00
Syoyo Fujita
a0824568f4
Initial support of Prim attributes for Collection API
2023-12-12 22:18:57 +09:00
Syoyo Fujita
8e4948ca3e
Improve support of material binding.
...
code format to example code.
2023-12-04 02:27:33 +09:00
Syoyo Fujita
536c8fd457
Initial support of rel material:binding:collection:NAME in GPrim.
2023-11-29 08:16:47 +09:00
Syoyo Fujita
d67e90b6fc
listop qualifier check for empty list.
2023-11-27 02:46:40 +09:00
Syoyo Fujita
c405a7abba
Proper familyType attribute handling(it should be described in GeomMesh, not GeomSubset)
2023-11-21 23:33:24 +09:00
Syoyo Fujita
03916f17d0
Manage GeomSubset as a child Prim of GeomMesh.
2023-11-17 23:29:20 +09:00
Syoyo Fujita
c266cfe745
Support primPath only references(No assetPath. reference a PrimSpec in a layer)
2023-10-30 01:57:07 +09:00
Syoyo Fujita
9a1d0afc2a
[USDA parser] Fix parsing variantSet statement when it contains comments line.
...
[tusdcat] Fix composition logic.
2023-10-28 23:24:26 +09:00
Syoyo Fujita
ce3d2df06c
[USDA] Do some property name validation.
2023-10-24 02:31:57 +09:00
Syoyo Fujita
29f91edf06
Initial support of __AnyType__ Prim typeName.
2023-10-08 19:24:36 +09:00
Syoyo Fujita
d77c5e5348
Support clips Prim metadatum.
2023-09-30 23:36:40 +09:00