在 Reality Composer Pro 中创建镜面反射材质

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

我想创建一个类似镜子的效果,只反映虚拟网格,而不是现实生活场景。 唯一反映环境的材质是“金属”,但不幸的是这还不够。虚拟网格上的文本应该清晰易读。金属材质太模糊了。

enter image description here

Shader Graph 可以实现这一点吗?还是我需要查看 Apple 的 Metal Graphics Library?

我已经尝试了苹果提供的所有材料: 苹果材料

shader realitykit visionos reality-composer-pro
1个回答
0
投票

类似镜子的物理材料

默认情况下,RealityKit 渲染引擎强制所有具有

reflection
通道的着色器仅反射基于 AR 探针的环境,不允许自反射或场景中其他 VR 模型的反射。不幸的是,没有一个方便的高级“按钮”来打开它。要打开 VR 反射,请使用低级 Compositor Services

尽管如此,要创建类似镜像的 PBR 着色器,您只需将

metallic
通道的值设置为 1,将
roughness
通道的值设置为 0。基色应为
white
。这是以编程方式创建的一面镜子和一个红球。

import SwiftUI
import RealityKit

struct ContentView: View {
    let mirror = ModelEntity(mesh: .generatePlane(width: 0.9, height: 1.4))
    let sphere = ModelEntity(mesh: .generateSphere(radius: 0.2))
    
    init() {
        mirror.position = [0.0, 1.0,-2.0]
        sphere.position = [0.0, 1.0,-1.5]
    }
    var body: some View {
        RealityView { rvc in
            var mirrorMaterial = PhysicallyBasedMaterial()
            mirrorMaterial.baseColor.tint = .white
            mirrorMaterial.metallic = 1.0
            mirrorMaterial.roughness = 0.0
            mirror.model?.materials = [mirrorMaterial]
            
            var ballMaterial = PhysicallyBasedMaterial()
            ballMaterial.baseColor.tint = .red
            sphere.model?.materials = [ballMaterial]
            
            rvc.add(mirror)
            rvc.add(sphere)
        }
    }
}

enter image description here

在 Reality Composer Pro 2.0 中,镜子材质设置就这么简单:

enter image description here

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