在visionOS 上使用Metal for .generateText 在代码中创建着色器

问题描述 投票:0回答:1

我正在尝试使用 Metal 着色器将文本效果应用于在visionOS 上使用

.generateText
制作的文本。 我正在使用以下 UI 代码,并且我可以像这样分配
SimpleMaterial

 RealityView { content in  
        let font = UIFont.systemFont(ofSize: 1)
        let resource: MeshResource = .generateText("Metal on visionOS", font: font)
        let entity: ModelEntity = ModelEntity(mesh: resource, materials: [SimpleMaterial(color: .blue, isMetallic: false)])
        content.add(entity)
}       

我的问题是我需要能够使用 Metal 创建自定义着色器。我知道我可以使用 Reality Composer Pro,但我希望能够使用 Metal 着色器在代码中创建它们。我看到人们使用

CustomMaterial
来做到这一点,但是
CustomMaterial
在visionOS 上不可用。 这是我尝试附加到 3D 文本的
shaders.swift
文件中的着色器:

#include <metal_stdlib>
using namespace metal;

[[ stitchable ]] half4 aqua(
    float2 position,
    float width
    ) {
        return half4(60.0/255.0, 238.0/255.0, 227/255.0, 1.0);
    };

感谢您的帮助。

swift shader metal realitykit visionos
1个回答
0
投票

如您所知,

CustomMaterial
在visionOS上不可用,所以这当然行不通。

您需要将

ShaderGraphMaterial
MaterialX
中的
Reality Composer Pro
一起使用。

请参阅 探索 Reality Composer Pro 中的材料

© www.soinside.com 2019 - 2024. All rights reserved.