Posts

Post marked as solved
1 Replies
618 Views
While PlaneAnchors are still not generated by the PlaneDetectionProvider in the simulator, I am still brainstorming how to detect a tap on one of the planes. In an iOS ARKit application I could use a raycastQuery on existingPlaneGeometry to make an anchor with the raycast result's world transform. I've not yet found the VisionOS replacement for this. A possible hunch is that I need to install my own mesh-less PlaneModelEntities for each planeAnchor that's returned by the PlaneDetectionProvider. From there I can use a TapGesture targeted to those models? And then I could build a an WorldAnchor from the tap location on those entities. Anyone have any ideas?
Posted
by J0hn.
Last updated
.
Post marked as solved
2 Replies
613 Views
Disclaimer: I am new to all things 3D. There could be a variety of things wrong with what I'm doing that are not unique to RealityKit. Any domain info would be appreciated. So, I'm following, what I think are, the recommended steps to import a shader-node material from reality composer pro and apply it to another modelEntity. I do the following: guard let entity = try? Entity.load(named: "Materials", in: RealityKitContent.realityKitContentBundle) else { return model } let materialEntity = entity.findEntity(named: "materialModel") as? ModelEntity guard let materialEntity else { return model } I then configure a property on it like so: guard var material = materialEntity.model?.materials[0] as? ShaderGraphMaterial else { return model } try coreMaterial.setParameter(name: "BaseColor", value: .color(matModel.matCoreUIColor)) I then apply it. This is what my texture looks like in RealityComposer: I notice that my rendered object has distortions in the actual RealityView. Note the diagonal lines that appear "Stretched". What could be doing this? I thought Node Shaders were supposed to be more resilient to distortions like this? I'm not sure if I've got a bug or if I'm using it wrong. FWIW, this is a shader based on apple's felt material shader. My graph looks like this: Thanks
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
0 Replies
357 Views
I've noticed that the bounds of my ModelEntity is not impacted when I transform one of the mesh's Joints. I've attached an image those demonstrates this. It appears it will cause issues with the collision bounding box as well. Is this a bug or user error? Not many of this framework's methods are documented.
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
2 Replies
1.6k Views
I'd like an Image subview of a lock screen widget to render as itself, and not with the multiply-like effect it gets today. I've tried .widgetAccentable(true) and .widgetAccentable(false), but none have the appearance I'm looking for. Is there maybe a new modifier that lets me "force" the rendering mode? Hoping there is and it's just not jumping out at me. Thanks for your help.
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
1 Replies
1.2k Views
When using the showAnchorGeometry I see lots of green surface anchors in my scene and it has been really helpful for debugging the placement of objects when I tap the screen of my device. But I also get some blue shapes too, and I'm not quite sure what those mean... Is there a document that explains what showAnchorGeometry is actually... showing? Googling "showAnchorGeometry blue" wasn't helpful! (I promise I tried)
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
2 Replies
1.7k Views
It is possible via the new AppIntents framework to open your app from via a shortcuts intent, but I am currently very confused about how to ensure that a particular window is opened in a SwiftUI-runtime app. If the use says "Open View A" via a shortcuts, or Siri, I'd like to make sure it opens the window for "View A", though a duplicate window could be acceptable too. The WWDC22 presentation has the following: @MainActor func perform() async throws -> some IntentResult { Navigator.shared.openShelf(.currentlyReading) return .result() } Where, from the perform method of the Intent structure, they tell an arbitrary Navigator (code not provided) to just open a view of the app. (How convenient!) But for a multiwindow swiftUI app, I'm not sure how to make this work. @Environment variables are not available within the Intent struct, and even if I did have a "Navigator Singleton", I'm not sure how it could get the @Environment for openWindow since it's a View environment. AppIntents exist outside the View environment tree AFAIK. Any Ideas? I'd be a little shocked if this is a UIKit only sort of thing, but at the same time... ya never know.
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
1 Replies
1.3k Views
I have the following parameter:     @Parameter(title: "Image", description: "Image to copy", supportedTypeIdentifiers: ["com.image"], inputConnectionBehavior: .connectToPreviousIntentResult)     var imageFile: IntentFile? When I drop my AppIntent into a shortcut, though, I am unable to connect this parameter to the output of the previous step. Given the documentation I have no idea how to achieve this, if the above, is not the correct way to do so.
Posted
by J0hn.
Last updated
.
Post marked as solved
1 Replies
758 Views
Hello, I'm trying to make a grid of container-relative shapes, where outside gutters match the gutters in between the items. This stickiest part of this problem is the fact that calling .inset on a ContainerRelativeShape doubles the gutter in between the items. I've tried LazyVGrid, and an HStack of VStacks, and they all have this double gutter in between. I think I could move forward with some gnarly frame math, but I was curious if I'm missing some SwiftUI layout feature that could make this easier and more maintainable.
Posted
by J0hn.
Last updated
.
Post marked as solved
1 Replies
863 Views
Hello, I’m noticing that during a collaborative session anchors created on the host device are appearing in a different location on client devices and it’s making it challenging to test other collaboration logic. For example, when the client places a textured plane mesh at an anchor placed by the host, this placement can sometimes be considered as behind a surface and it gets clipped by RealityKits mesh occlusion. I’d prefer if I could see it floating in space when testing so I can see that something is happening. Im drawing a blank on if there are any debugging options to help me out. Nothing in render or debug options jumped out at me. Thoughts?
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
0 Replies
767 Views
Hello, Im noticing a behavior when I try to send a package file as a resource to peer. A file like this is basically a folder with an extension, and, and despite receiving a progress object from the send call, I’m not seeing it rise past 0.0%. Attaching it to a ProgressView also does not show any progress. The completion handler of the send is never called with an error and the receiver will only get the “finished receiving” callback if the host cancels or disconnects. I didn’t see anything in the sendResource documentation about not supporting bundle files, but it would not surprise me. Any thoughts?
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
1 Replies
680 Views
Background So, I've got an anchor that I add to my Session after performing a raycast from a user's tap. This anchor is named "PictureAnchor". This anchor is not getting saved in my scene's world map, and I'm not sure why. Information Gathering I keep an eye on my session by outputting some information in func session(_ session: ARSession, didUpdate frame: ARFrame) As the ARFrame's are processed I look at the scene's anchors via sceneView.scene.anchors.filter({$0.name == "PictureAnchor" and I see that my anchor is present in the sceneAnchors. However, when I do frame.anchors.filter to check the anchors of the ARFrame itself, my PictureAnchor is never present. Furthermore, if I "save" the worldMap, an Anchor named PictureAnchor is not present. Note: I could be totally wrong on how to read the data inside a saved world map, but I'm taking the anchors array at face value. Other Information I've noticed that the AR Persistence sample project actually checks for the anchor to be present in the ARFrame's anchors before permitting a save, but this condition is never happening for me. I also noticed that my scene can have over 100 anchors, and the frame can have over 40, but only around 8 or 16 anchors are saved to the world map. Main Question Restated So, my main question is, why is my user-added "PictureAnchor" not present in the ARWorldMap, when I save my scene's map? I see that it's present in the scene's anchors, but not present in the ARFrame's anchors. A model entity is visible in the scene after being attached to this anchor as well.
Posted
by J0hn.
Last updated
.
Post marked as solved
1 Replies
722 Views
Hello, I’ve noticed that when I set the image of a picture frame asset in Reality Composer it will change its size and aspect ratio to match the image. That’s pretty nice! I would like to let a user dynamically modify that picture while running the app. Is this possible? Or are the models properties you set in the composer locked in when you export?
Posted
by J0hn.
Last updated
.
Post marked as solved
1 Replies
1.5k Views
I want to create a feature where a user can stick images down my app onto their walls. I want to persist their placements between launches and use pinching a panning gestures to manipulate the images. I see lots of articles going back a few years that show how to do this in ARKit, but going through WWDC videos I’m seeing a trend toward RealityKit, and am starting to think that’s the “right” thing to learn. Is RealityKit to most up to date secret sauce? Is there a sample project like this one but using RealityKit? https://developer.apple.com/documentation/arkit/environmental_analysis/placing_objects_and_handling_3d_interaction
Posted
by J0hn.
Last updated
.
Post not yet marked as solved
0 Replies
1.4k Views
For my first build, my package.resolved was not committed to the respository. I've fixed that and if I check my main branch on GitHub I can see the package.resolved file in the xcshareddata directory. Even so, Xcode cloud is telling me that the file is missing and is failing to start my builds. Could there be a caching issue going on? My .gitignore file is empty.
Posted
by J0hn.
Last updated
.