Comments (3)
I've mentioned this topic in #28639 (comment).
It would be a help if USDZLoader
could internally use a USDA parser that returns a JSON representation of the asset with object types representing the different USD classes. In this way, it would be easier and cleaner to traverse through the hierarchy and identify/process nodes. Right now, we have to do a lot of string testing to identify nodes (like name.startsWith( 'def Material' + id )
which is far from ideal.
However, after working at the latest issues, I have realized this is not the actual major issue. It's the fact that USD is an incredible complex format that will be hard to implement and support. Reminds me a bit at Collada and FBX^^. It seems the goal is to provide a format so teams with different authoring software can work on common scenes. Such a focus means respective 3D assets tend to be expensive to deliver and parse on the client side, though.
I'm not sure what to kind of goal we should have with USD in three.js
, tbh.
from three.js.
I can reproduce with all files. They render a bit differently with the current dev
version of USDZLoader
since a few fixes were applied lately. However, the loader is still unable to load the files correctly.
USDZLoader
only supports a very specific structure of USDA files right now. Other spec-conform structures like the ones from your assets are not supported. To me more precise, your USDZ assets define the materials outside of a XForm
instance. Besides, they use additional Scope
definitions insides Material
definitions which is also something the loader does not expect.
The loader needs a different implementation regarding how to resolve paths and ids like the values assigned to connect
and binding
properties. Otherwise it will be unable to find the correct definitions like in your assets.
from three.js.
I would like to contribute to this issue, but it's beyond my capabilities. However, it touches on a fundamental question about USD and three.js, which I have been asking myself.
A few years ago, Autodesk demo'ed USD in the browser. There is also a USD web visualization project ran by the Academy Software Foundation. What is the current status of these projects? Can these efforts help three.js avoid having to create a custom parser which has to be kept in sync with a living standard?
from three.js.
Related Issues (20)
- WebGLRenderTarget Texture breaks glTF export HOT 2
- games_fps Example: Collision detection anomaly HOT 4
- Bug Collision detection anomaly HOT 1
- Why functions like Box3.getSize() need a vector3 parameter ? HOT 2
- GLTFLoader.loadAsync unclear error should clearly state file not found HOT 4
- 161 -> 162 DragControls breaks for multiple groups HOT 1
- USDZLoader: loading a binary file does not throw error
- packDepthToRG seems broken HOT 12
- games_fps Example clash detection anomaly
- Shader unit test framework
- Regression introduced in r144, re: WebXRManager.updateCamera HOT 1
- TSL: Wrong compilation of `min(...)` and `max(...)` with 3 or more parameters
- Should a function be added to distinguish between WebGPU and WebGL in order to run different code? HOT 5
- Three.js doesn't support SVG with url HOT 1
- WebGPU+Light+NormalMaterial throws an error
- PassNode: Implement Auto-MRT. HOT 5
- Different default background colors of WebGLRenderer and WebGPURenderer HOT 3
- Allow to Use Roughness for SSR in Three.js
- WebGPURenderer: Make output of post-processing passes configurable. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three.js.