输入“/”快速插入内容

8. 着色器(Shaders)及代码控制

📎
更多文档见首页漫游Apple Vision Pro
大家好,我是 xChester。
本文主要包含以下内容:
Shader 的基本概念
visionOS 中的 Material,Shader,Shader Graph 等基本概念
利用 SwiftUI 代码控制 Shader 的特定节点
一个基本的利用代码控制 Surface Shader 的示例
本文希望实现一种类似上下滑动的窗帘的贴图效果:有前景、后景 2 幅图,用户可以通过一个滑块控制,随着滑块的滑动,图 1 逐渐消失变成图 2。这一效果应用在昼夜变化、历史演变等前后对比效果。最终效果如下:
基本概念
Shader(着色器)是一种用于图形处理的程序,在 3D 模型渲染中,用于确定最终像素的颜色、亮度、对比度等属性。Shader 程序主要运行在 GPU 上,可以高效地处理图形和图像数据。
Material 用来表示 3D 物体的材料,在 visionOS 中主要有 2 种材质:
PBR Material(Physically-Based Rendering) :基于物理渲染的材料
Custom Material:自定义材料
其中,自定义材料可以让开发者绑定不同的 Shader,从而实现更为丰富的视觉效果。
Shader Graph 是 visionOS 中表示 Shader 的对象。在 Shader Graph 中,visionOS 提供了丰富的 Shader Node 用于构建不同的 Shader。其中还有部分 Node 可以通过程序进行控制。
Shader Node 主要分为 2 类,均可在 Shader Graph 中进行操作:
Surface shader: 主要用于控制 PBR 属性
Geometry shader: 主要用于控制几何属性
目前 visionOS 提供了 186 个 Shader Node。
在线版本:RealityKit Shaders