swift - 在 RealityKit 场景上应用着色器

标签 swift augmented-reality arkit realitykit

有没有办法将全屏着色器应用于 RealityKit 场景 (Swift/iOS)?

我知道我可以使用 SceneKit/ARSCNView 中的 SCNTechnique 来做到这一点,但我正在处理 ARView。

  • 在 RealityKit 中是否有一种方法可以应用顶点/片段着色器?
  • 或者以纹理的形式获取渲染场景的方法?

使用 ARSCNView,我可以应用着色器来运行场景的输出,就像:https://medium.com/ar-tips-and-tricks/arkit-theory-an-introduction-to-scntechniques-710e024bc91e

但是使用 RealityKit,我正在处理一个没有 SCNTechnique 属性的 ARView

谢谢:-)

最佳答案

iOS RealityKit

在 iOS 版 RealityKit 中,您不仅可以应用背景环境图像,还可以应用基于图像的照明 (IBL) 的 HDR 图像。用于应用环境图像使用 skybox(:_)类型方法。

func skybox(_ resource: EnvironmentResource) -> ARView.Environment.Background

此静态方法使用包含场景背景数据的 EnvironmentResource 对象。您可以阅读here在我的story中在媒体上。

此外,在 iOS 版 RealityKit 中,您可以应用顶点/片段着色器(通过 CustomMaterial )并将渲染的场景作为纹理获取(就像您在 SceneKit+Metal 中所做的那样)。

要了解如何禁用 ARView 中的默认环境照明,请阅读 this post .


visionOS RealityKit

使用RealityRenderer对象来访问环境图像和IBL的自定义:

RealityRenderer().lighting.resource = try! .load(named: "env")

This post ,向您展示如何在visionOS应用程序中启用自定义环境照明。

关于swift - 在 RealityKit 场景上应用着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375107/

相关文章:

ios - 使用 AVAssetReader 从 iPad 上的视频中读取帧时,图像方向不正确

ios - XCTest 中的 Swift TyphoonBlockComponentFactory 错误

c# - 在 Unity 中重启/暂停/恢复 ARCore session

ios - USDZ 模型在 SceneKit 中有孔,但在 QuickLook 中没有

ios - 旋转文本 MeshResource 使其不会被镜像

swift - RealityKit 中使用的相机的真实焦距是多少?

ios - 如何将重复内容连接到我的 VC?

ios - 如何在显示 pickerView 后向上移动单元格

swift - 相机固有分辨率与实际屏幕分辨率

ios - ARKit 和 3D 对象/图像识别