我正在尝试使用 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);
};
感谢您的帮助。
如您所知,
CustomMaterial
在visionOS上不可用,所以这当然行不通。
您需要将
ShaderGraphMaterial
与 MaterialX
中的 Reality Composer Pro
一起使用。