提问人:user7289922 提问时间:11/14/2023 更新时间:11/15/2023 访问量:52
在 visionOS 上使用 Metal for .generateText 在代码中创建着色器
Create shader in code using Metal for .generateText on visionOS
问:
我正在尝试使用金属着色器将文本效果应用于在 visionOS 上使用的文本。
我正在使用以下UI代码,并且能够像这样分配:.generateText
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 着色器在代码中创建它们。我看到人们使用 来执行此操作,但是在 visionOS 上不可用。
这是我尝试附加到 3D 文本的文件中的着色器:CustomMaterial
CustomMaterial
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);
};
谢谢你的帮助。
答:
1赞
Jeshua Lacock
11/15/2023
#1
如您所知,在 visionOS 上不可用,所以这当然行不通。CustomMaterial
您需要将 a 与 in 一起使用。ShaderGraphMaterial
MaterialX
Reality Composer Pro
评论