我try 将纹理应用到MeshResource,使用以下代码:

let largeSphere = MeshResource.generateSphere(radius: 2)
var myMaterial = UnlitMaterial()

do {
    let texture = try TextureResource.load(named: "studio-mod")
    myMaterial.color = .init(texture: .init(texture))
} catch {
    print("Failed to create myMaterial with texture: \(error)")
    return nil
}

此操作失败,并抛出以下错误:

Error Domain=MTKTextureLoaderErrorDomain Code=0 "Image decoding failed"
UserInfo={NSLocalizedDescription=Image decoding failed, MTKTextureLoaderErrorKey=Image decoding failed}

资源"studio—mod"是一个jpg图像,包含在应用程序包的资源中.

我try 应用的纹理是360度全景图像. 我已经能够用iPhone上的图像拼接起来,但是当我试图使用用Insta360x3创建的图像时,我得到了这个错误.

Insta360的图像似乎是全景和期待使用其他360 º全景图像查看器我已经try . 我已经成功地用其他全景jpg图像和其他常规jpg图像做到了这一点.

Insta360的jpg图像在我看来是一样的(判断元数据并在其他应用程序中打开它们,等等).

有谁能想到一个原因这些特定的jpg文件可能无法正确解码在这个操作?

推荐答案

试着将图像大小调整到每面最大8192像素,看看是否可以加载它.这是visionOS上的金属纹理限制.

然而,我还没有一个解决方案,你的原始目标,这显然是加载图像,以便它可以被查看.

Swift相关问答推荐

如何在realityKit中反转USDZ动画

是否在字符串属性上搜索数组和子数组?

声明一个协议时使用和不使用任何单词有什么区别?

使用MKLocalSearch获取坐标

如何在SWIFT Memory中处理对VAR数组的更新(对COW感到困惑)

我需要一些关于 SwiftUI 动画的帮助

字符串和整数格式的for循环,帮忙!

Swift 数组拆分成重叠的块

如何从我的 macOS 应用程序打开 (.log) 文件?

如何让默认函数参数引用另一个函数参数?

Vapor 4 身份验证问题 [用户未通过身份验证]

如何在 SwiftUI 中将图像传递到 2 个视图

Swift初始化具有可变ID的重复值数组

调用从 SwiftUI 视图传递到 PageViewController.Coordinator 的函数

如何仅将 SwiftUI 不透明度应用于父视图?

Swift - 如何更新多目录中的对象

找不到接受提供的参数的/的重载

在运行时访问 UIView 宽度

如何从一个可观察的数组创建一个可观察的数组?

如何在 Swift 中将 NSURL 转换为字符串