Post

Replies

Boosts

Views

Activity

Reply to Reality Composer Pro 2.0 shader graphs can't be loaded on visionOS 1
I did a test and hand-edited a USDA file to include a fictional future visionOS 3.0 shader node graph property, to see how RealityKit responds to this scenario on visionOS 2.0: On visionOS 2.0, ShaderGraphMaterial(named:from:in:) fails with the same error that is currently returned on visionOS 1.0: The operation couldn’t be completed. (RealityFoundation.ShaderGraphMaterial.LoadError error 1.) (although curiously it returned error 1 that time instead of error 0) So, it would seem that unless changes are made, we'll experience this problem again next year with Reality Composer Pro 3.0, which will blindly output shader graph nodes that can't be read by visionOS 2.0.
Topic: Graphics & Games SubTopic: RealityKit Tags:
Aug ’24
Reply to Reality Composer Pro 2.0 shader graphs can't be loaded on visionOS 1
Thank you for responding. Just to be clear, and to help out other visionOS developers who encounter this issue and save them time, are all of the following true? (as of Xcode 16.0 beta 5) On visionOS 1.0, RealityKit's ShaderGraphMaterial(named:from:in:) (and possibly other APIs) will fail when used to load a shader graph material created using Reality Composer Pro 2.0 that references a new visionOS 2.0 shader graph node or shader graph node property that isn't supported by visionOS 1.0. The error message generated by ShaderGraphMaterial(named:from:in:) is The operation couldn't be completed. (RealityFoundation.ShaderGraphMaterial.LoadError error 0.). The error does not indicate which shader graph node or shader graph node property has caused the failure. To determine the specific cause of the failure, the developer must resort to time consuming techniques like a manual binary search. Reality Composer Pro 2.0 doesn't display a warning if the developer creates a shader graph node that isn't supported by visionOS 1.0 or modifies the value of a new shader graph node property that isn't supported by visionOS 1.0. The Reality Composer Pro shader graph documentation at https://developer.apple.com/documentation/shadergraph doesn't indicate which shader graph nodes and shader graph node properties are new visionOS 2.0 beta features that aren't supported by visionOS 1.0. For third party developer projects that are required to support visionOS 1.0, Apple's recommended workaround is to avoid using Reality Composer Pro 2.0, and to use Reality Composer Pro 1.0 instead. This known issue and Apple's recommended workaround are not included in the Xcode 16.0 beta 5 release notes. Please let me know if any of that is inaccurate. Another question: Can you please tell me if Apple is tracking these issues and plans to address them in future visionOS 2.0 betas, either with a Reality Composer Pro update, or with updated shader graph node documentation, or in the Xcode 16.0 beta release notes? I'd be happy to submit additional feedback about each of these individually, but I am hesitant to waste any more of my time if Apple has already prioritized fixes. However, if you are able to communicate to me that Apple currently has no plans to fix any of this, then I'll submit more feedback if that would be helpful. Thank you.
Topic: Graphics & Games SubTopic: RealityKit Tags:
Aug ’24
Reply to Animate RealityKit Component Property
For the case of opacity, this Entity extension provides setOpacity(_:animated:duration:delay:completion:) which lets you animate that property: https://gist.github.com/drewolbrich/1e9d3da074c8a1d5ca93721124b97596 It's implemented in terms of OpacityComponent and FromToByAnimation.
Topic: Graphics & Games SubTopic: RealityKit Tags:
Aug ’24
Reply to In Xcode 16 beta 3, adding a framework to a target doesn't work?
I've discovered that one workaround is to temporarily load your project in Xcode 16.0 beta 2 and use that to add the frame to the target, and then switch back to Xcode 16.0 beta 4. In the case of a local Swift package, another workaround, using Xcode 16.0 beta 4, is to add the package at the project level using the UI normally intended for adding remote packages, but selecting the local package option, and also selecting the option to add the package to a specific target. Once this is complete, remove the package from the project. The local package will remain associated with the target.
Aug ’24
Reply to visionOS 2 full immersive space permission change?
I agree it's a welcome change. The user experience is much better this way. Since I updated my device to visionOS 2 beta, I've installed my app via TestFlight multiple times, and I don't think I've seen the notice you described except once, immediately after I first installed visionOS 2 beta. So, it appears this is not something I can easily test without reinstalling visionOS 2. Also, since I no longer have visionOS 1 installed, there's now no easy way to test the original visionOS 1 immersive space permission alert either. The visionOS 1 simulator has never supported presentation of the immersive space permission alert, so that's not an option. This is all unfortunate, but thank you for responding. It's helpful to know I'm not overlooking something obvious.
Topic: Spatial Computing SubTopic: General Tags:
Jul ’24