7 ms·
This is a big deal. I used to work at Autodesk, trying to build software that made 3D blueprints available to everyone, everywhere. Rendering things on mobile i
by MAGZine 3y ago
This is a big deal. I used to work at Autodesk, trying to build software that made 3D blueprints available to everyone, everywhere. Rendering things on mobile is hard, in part because you need to writer bespoke renderers, and in part because the data formats for the assets are not aligned.
Pixar developed USD, and it should really help to standardize 3D tech. In particular, I hope that USD can help make it easier to build high-performance rendering tech for a variety of applications that might not receive so much attention from the 3D graphics people (this is one thing video games do quite well, from a CS approach!)
Having some big names behind the standard should help, but of course, the proof will be in the pudding as to how meaningful their contributions are, and how much their involvement pushes the adoption of the standard.
- 2OEH8eoCRo0 3y agoCan I open an OpenUSD file in a text editor and read it?
- franzb 3y agoYes, absolutely.
- deleted 3y ago[deleted]
- omershapira 3y agoOpenUSD has a plaintext encoding mode, which by convention gets saved as .usda. The standard OpenUSD SDK contains two command line utilities `usdcat` and `usdedit` to do plaintext editing, but most programs using the SDK have better editing functionality by directly using the C/Python SDK.
- wilg 3y agoHere is an example file for the curious: https://github.com/PixarAnimationStudios/OpenUSD/blob/release/extras/usd/examples/usdGeomExamples/basisCurves.usda https://github.com/PixarAnimationStudios/OpenUSD/blob/releas...
- pixelesque 3y agoThe ASCII (plain-text, .usda file extension version) absolutely. For large scenes/models, the normal .usd binary/compressed version is often used for efficiency reasons (and proper round-tripping of float values for xforms, etc), but you can convert between the two with the 'usdcat' util and the python/c++ apis for debugging.
- derefr 3y ago> proper round-tripping of float values Why do so many (all?) textual data serialization formats represent floats in base-10 scientific notation, anyway? If we wanted floats that are 1. human-editable but 2. bijective with IEEE754, wouldn't floating-point hexadecimal (and "e" notation representing a base-2 exponent) be a better idea?
- andyferris 3y ago> human-editable I mean, depends on the human. Most don't know hexadecimal, but know what 3.14 means. The real issue is why do so many float parsers and printers fail to do exact round tripping? Designing a good algorithm for this was a bit difficult, but these days this is a solved problem.
- johnnyanmac 3y agoIf I had to take a slightly snide guess: because these are low level tools, so there's a 90% chance that these parsers/prints are written in C, or ultimately depend on C implementations. As any C programmer would know, C loves to throw "undefined behavior" at any problem it doesn't bother to document. Which is a lot. That combined with almost zero package management for retrieving things that were solved decades ago means we keep coming into this issue, partially because of the mindset of C programmers.
- account42 3y agoThis is just "hur dur C undefined lol" level of a comment. If you are serious about your data format supporting round tripping you can and should specify the precise ASCII encoding of binary floats and the inverse. If that means implementations have to ship their own float formatter and parser than so be it - no one is tied to whatever comes with their libc, package manager or no package manager.
- GoofballJones 3y agoYeah, sounds kind of like the old Renderman RIB files. Does Renderman still use RIB files? I've been so out of the loop it's insane. I learned not long ago they no longer use the original Renderman Shading Language.
- doctorpangloss 3y ago> Rendering things on mobile is hard I don't know. You can stream Unity to mobile with the service I've authored (https://appmana.com/watch/theheretic https://appmana.com/watch/theheretic for an example).
- esperent 3y agoLooks nice. However the issue with all 3d streaming I've ever tried is latency. It's great if you're near the server. Terrible if you're far away. It's hard so say what the input latency is for the head demo you shared. I guess about 100ms, which is totally fine for a mostly static scene with simple orbit controls. However I also tried out the Lebron James vs Father Time game. Input latency is over 1 second so it's not playable. Any time I touch the screen it freezes for a second then jumps to the new location.
- doctorpangloss 3y agoYou might like this one more - https://appmana.com/watch/virtualtestdrive https://appmana.com/watch/virtualtestdrive - because it's just better :) While of course I want latency to be as low as possible, the difference between 100ms and 500ms of latency doesn't register in the engagement metrics for these experiences. For millions of laypeople, it doesn't seem to matter that much. However, going from 670ms of time to first image (this service) and 2.5s (worst case) increases bounce rates by as much as 5 percentage points. PureWeb, which typically takes 35s to load, isn't suitable for any mass audience at all. So imagine downloading a USDZ file for some AR thing. It's real, it's something people try to do. But the bounce rates on those experiences are insane, I don't know why Niantic funds them, there isn't anything you can do about it. There isn't a future for "it takes a while to load" on phones. That's the real constraint.
- weird-eye-issue 3y agoCouldn't bother waiting for this to load unfortunately
- deleted 3y ago[deleted]
- knolan 3y agoI’ve been happy with what modelviewer.dev offers me; someone with very little experience with 3D on the web. It’s basically a wrapper for three.js to view glTF files quickly and easily. It lets me load very small files and interact with them with JavaScript. It’s perfect for my needs as an educator and I know just enough to be able to show other educators how to create and deploy their own learning materials.