docs: update RHI API docs
This commit is contained in:
@@ -4,43 +4,451 @@
|
||||
|
||||
**类型**: `enums`
|
||||
|
||||
**头文件**: `XCEngine/RHI/RHIEnums.h`
|
||||
|
||||
**描述**: RHI 模块中使用的所有枚举类型汇总。
|
||||
|
||||
## 主要枚举
|
||||
## 概述
|
||||
|
||||
| 枚举 | 描述 |
|
||||
|------|------|
|
||||
| `ShaderType` | 着色器类型 |
|
||||
| `ShaderVisibility` | 着色器可见性 |
|
||||
| `CullMode` | 背面剔除模式 |
|
||||
| `FillMode` | 填充模式 |
|
||||
| `BlendOp` | 混合操作 |
|
||||
本模块汇总了 RHI 模块中定义的所有枚举类型,用于配置渲染管线的各种状态和参数。
|
||||
|
||||
## 着色器类型
|
||||
|
||||
### ShaderType
|
||||
|
||||
着色器类型枚举。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Vertex` | 顶点着色器 |
|
||||
| `Fragment` | 片元着色器 (像素着色器) |
|
||||
| `Geometry` | 几何着色器 |
|
||||
| `Compute` | 计算着色器 |
|
||||
| `TessControl` | 曲面细分控制着色器 |
|
||||
| `TessEvaluation` | 曲面细分评估着色器 |
|
||||
| `Hull` | 外壳着色器 (Hull shader) |
|
||||
| `Domain` | 域着色器 (Domain shader) |
|
||||
| `Amplification` | 放大着色器 (Mesh Shader) |
|
||||
| `Mesh` | 网格着色器 |
|
||||
| `Library` | 着色器库 |
|
||||
|
||||
### ShaderVisibility
|
||||
|
||||
着色器可见性,控制根签名参数对哪些着色器可见。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `All` | 对所有着色器可见 |
|
||||
| `Vertex` | 仅对顶点着色器可见 |
|
||||
| `Hull` | 仅对外壳着色器可见 |
|
||||
| `Domain` | 仅对域着色器可见 |
|
||||
| `Geometry` | 仅对几何着色器可见 |
|
||||
| `Pixel` | 仅对像素着色器可见 |
|
||||
| `Amplification` | 仅对放大着色器可见 |
|
||||
| `Mesh` | 仅对网格着色器可见 |
|
||||
|
||||
## 图元设置
|
||||
|
||||
### CullMode
|
||||
|
||||
背面剔除模式。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `None` | 不剔除 |
|
||||
| `Front` | 剔除正面 |
|
||||
| `Back` | 剔除背面 |
|
||||
|
||||
### FillMode
|
||||
|
||||
填充模式。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Wireframe` | 线框模式 |
|
||||
| `Solid` | 实体模式 |
|
||||
|
||||
### PrimitiveTopology
|
||||
|
||||
图元拓扑类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Undefined` | 未定义 |
|
||||
| `PointList` | 点列表 |
|
||||
| `LineList` | 线段列表 |
|
||||
| `LineStrip` | 线段条带 |
|
||||
| `TriangleList` | 三角形列表 |
|
||||
| `TriangleStrip` | 三角形条带 |
|
||||
| `LineListAdj` | 带邻接的线段列表 |
|
||||
| `LineStripAdj` | 带邻接的线段条带 |
|
||||
| `TriangleListAdj` | 带邻接的三角形列表 |
|
||||
| `TriangleStripAdj` | 带邻接的三角形条带 |
|
||||
| `PatchList` | 补丁列表 (用于曲面细分) |
|
||||
|
||||
## 混合操作
|
||||
|
||||
### BlendOp
|
||||
|
||||
混合操作。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Add` | 加法 |
|
||||
| `Subtract` | 减法 (Src - Dst) |
|
||||
| `ReverseSubtract` | 反向减法 (Dst - Src) |
|
||||
| `Min` | 最小值 |
|
||||
| `Max` | 最大值 |
|
||||
|
||||
### BlendFactor
|
||||
|
||||
混合因子。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Zero` | 0 |
|
||||
| `One` | 1 |
|
||||
| `SrcColor` | 源颜色 |
|
||||
| `InvSrcColor` | 源颜色的逆 |
|
||||
| `SrcAlpha` | 源透明度 |
|
||||
| `InvSrcAlpha` | 源透明度的逆 |
|
||||
| `DstAlpha` | 目标透明度 |
|
||||
| `InvDstAlpha` | 目标透明度的逆 |
|
||||
| `DstColor` | 目标颜色 |
|
||||
| `InvDstColor` | 目标颜色的逆 |
|
||||
| `SrcAlphaSat` | 源透明度饱和值 |
|
||||
| `BlendFactor` | 混合因子 |
|
||||
| `ComparisonFunc` | 比较函数 |
|
||||
| `StencilOp` | 模板操作 |
|
||||
| `PrimitiveTopology` | 图元拓扑 |
|
||||
| `TextureType` | 纹理类型 |
|
||||
| `Format` | 纹理/缓冲区格式 |
|
||||
| `FilterMode` | 采样器过滤模式 |
|
||||
| `TextureAddressMode` | 纹理寻址模式 |
|
||||
| `BorderColor` | 边框颜色 |
|
||||
| `BufferType` | 缓冲区类型 |
|
||||
| `ResourceStates` | 资源状态 |
|
||||
| `HeapType` | 内存堆类型 |
|
||||
| `DescriptorType` | 描述符类型 |
|
||||
| `DescriptorHeapType` | 描述符堆类型 |
|
||||
| `CommandQueueType` | 命令队列类型 |
|
||||
| `PipelineType` | 管线类型 |
|
||||
| `LoadAction` | 加载操作 |
|
||||
| `StoreAction` | 存储操作 |
|
||||
| `PresentFlags` | 呈现标志 |
|
||||
| `QueryType` | 查询类型 |
|
||||
| `RootParameterType` | 根参数类型 |
|
||||
| `LogicOp` | 逻辑操作 |
|
||||
| `ColorWriteMask` | 颜色写入掩码 |
|
||||
| `RHIType` | RHI 后端类型 |
|
||||
| `InvBlendFactor` | 混合因子的逆 |
|
||||
| `Src1Color` | 源颜色 1 |
|
||||
| `InvSrc1Color` | 源颜色 1 的逆 |
|
||||
| `Src1Alpha` | 源透明度 1 |
|
||||
| `InvSrc1Alpha` | 源透明度 1 的逆 |
|
||||
|
||||
### LogicOp
|
||||
|
||||
逻辑操作。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Clear` | 清除 |
|
||||
| `Set` | 设置 |
|
||||
| `Copy` | 复制 |
|
||||
| `CopyInverted` | 反转复制 |
|
||||
| `Noop` | 无操作 |
|
||||
| `Invert` | 反转 |
|
||||
| `And` | 与 |
|
||||
| `Nand` | 与非 |
|
||||
| `Or` | 或 |
|
||||
| `Nor` | 或非 |
|
||||
| `Xor` | 异或 |
|
||||
| `Equiv` | 等价 |
|
||||
| `AndReverse` | 反向与 |
|
||||
| `AndInverted` | 反向与 (输入反转) |
|
||||
| `OrReverse` | 反向或 |
|
||||
| `OrInverted` | 反向或 (输入反转) |
|
||||
|
||||
### ColorWriteMask
|
||||
|
||||
颜色写入掩码,控制颜色通道写入。
|
||||
|
||||
| 枚举值 | 值 | 描述 |
|
||||
|--------|---|------|
|
||||
| `Red` | 1 | 红色通道 |
|
||||
| `Green` | 2 | 绿色通道 |
|
||||
| `Blue` | 4 | 蓝色通道 |
|
||||
| `Alpha` | 8 | 透明度通道 |
|
||||
| `All` | 15 | 所有通道 |
|
||||
|
||||
**使用示例**:
|
||||
|
||||
```cpp
|
||||
// 组合多个通道
|
||||
ColorWriteMask mask = ColorWriteMask::Red | ColorWriteMask::Green | ColorWriteMask::Blue;
|
||||
// 或者使用 All
|
||||
ColorWriteMask mask = ColorWriteMask::All;
|
||||
```
|
||||
|
||||
## 深度和模板
|
||||
|
||||
### ComparisonFunc
|
||||
|
||||
比较函数,用于深度/模板测试。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Never` | 从不通过 |
|
||||
| `Less` | 小于 |
|
||||
| `Equal` | 等于 |
|
||||
| `LessEqual` | 小于等于 |
|
||||
| `Greater` | 大于 |
|
||||
| `NotEqual` | 不等于 |
|
||||
| `GreaterEqual` | 大于等于 |
|
||||
| `Always` | 永远通过 |
|
||||
|
||||
### StencilOp
|
||||
|
||||
模板操作。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Keep` | 保持当前值 |
|
||||
| `Zero` | 设为 0 |
|
||||
| `Replace` | 替换为参考值 |
|
||||
| `IncrSat` | 增加并饱和 |
|
||||
| `DecrSat` | 减少并饱和 |
|
||||
| `Invert` | 反转位 |
|
||||
| `Incr` | 增加 (溢出回绕) |
|
||||
| `Decr` | 减少 (溢出回绕) |
|
||||
|
||||
## 纹理采样
|
||||
|
||||
### FilterMode
|
||||
|
||||
采样器过滤模式。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Point` | 点采样 |
|
||||
| `Linear` | 线性采样 |
|
||||
| `Anisotropic` | 各向异性采样 |
|
||||
| `ComparisonPoint` | 比较点采样 |
|
||||
| `ComparisonLinear` | 比较线性采样 |
|
||||
| `ComparisonAnisotropic` | 比较各向异性采样 |
|
||||
| `MinimumPoint` | 最小值点采样 |
|
||||
| `MinimumLinear` | 最小值线性采样 |
|
||||
| `MinimumAnisotropic` | 最小值各向异性采样 |
|
||||
| `MaximumPoint` | 最大值点采样 |
|
||||
| `MaximumLinear` | 最大值线性采样 |
|
||||
| `MaximumAnisotropic` | 最大值各向异性采样 |
|
||||
|
||||
### TextureAddressMode
|
||||
|
||||
纹理寻址模式。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Wrap` | 重复寻址 |
|
||||
| `Mirror` | 镜像寻址 |
|
||||
| `Clamp` | 钳制寻址 |
|
||||
| `Border` | 边框颜色寻址 |
|
||||
| `MirrorOnce` | 单次镜像寻址 |
|
||||
|
||||
### BorderColor
|
||||
|
||||
边框颜色。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `TransparentBlack` | 透明黑色 (0,0,0,0) |
|
||||
| `OpaqueBlack` | 不透明黑色 (0,0,0,1) |
|
||||
| `OpaqueWhite` | 不透明白色 (1,1,1,1) |
|
||||
|
||||
## 纹理和缓冲区类型
|
||||
|
||||
### TextureType
|
||||
|
||||
纹理类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Texture1D` | 1D 纹理 |
|
||||
| `Texture2D` | 2D 纹理 |
|
||||
| `Texture2DArray` | 2D 纹理数组 |
|
||||
| `Texture3D` | 3D 纹理 |
|
||||
| `TextureCube` | 立方体纹理 |
|
||||
| `TextureCubeArray` | 立方体纹理数组 |
|
||||
|
||||
### BufferType
|
||||
|
||||
缓冲区类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Vertex` | 顶点缓冲区 |
|
||||
| `Index` | 索引缓冲区 |
|
||||
| `Constant` | 常量缓冲区 (CBV) |
|
||||
| `ReadBack` | 回读缓冲区 |
|
||||
| `Indirect` | 间接执行缓冲区 |
|
||||
| `RaytracingAccelerationStructure` | 光线追踪加速结构 |
|
||||
| `ShaderBindingTable` | 着色器绑定表 |
|
||||
|
||||
### Format
|
||||
|
||||
纹理和缓冲区格式。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Unknown` | 未知格式 |
|
||||
| `R8_UNorm` | 单通道 8 位归一化 |
|
||||
| `R8G8_UNorm` | 双通道 8 位归一化 |
|
||||
| `R8G8B8A8_UNorm` | 四通道 8 位归一化 |
|
||||
| `R16G16B16A16_Float` | 四通道 16 位浮点 |
|
||||
| `R32G32B32A32_Float` | 四通道 32 位浮点 |
|
||||
| `R16_Float` | 单通道 16 位浮点 |
|
||||
| `R32_Float` | 单通道 32 位浮点 |
|
||||
| `D16_UNorm` | 16 位深度 |
|
||||
| `D24_UNorm_S8_UInt` | 24 位深度 + 8 位模板 |
|
||||
| `D32_Float` | 32 位深度 |
|
||||
| `BC1_UNorm` | BC1 压缩格式 |
|
||||
| `BC2_UNorm` | BC2 压缩格式 |
|
||||
| `BC3_UNorm` | BC3 压缩格式 |
|
||||
| `BC4_UNorm` | BC4 压缩格式 |
|
||||
| `BC5_UNorm` | BC5 压缩格式 |
|
||||
| `BC6H_UF16` | BC6H 压缩格式 (无符号) |
|
||||
| `BC7_UNorm` | BC7 压缩格式 |
|
||||
| `R32G32B32A32_UInt` | 四通道 32 位无符号整数 |
|
||||
| `R32_UInt` | 单通道 32 位无符号整数 |
|
||||
|
||||
## 资源和内存
|
||||
|
||||
### ResourceStates
|
||||
|
||||
资源状态,描述资源当前的使用方式。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Common` | 通用状态 |
|
||||
| `VertexAndConstantBuffer` | 顶点缓冲/常量缓冲 |
|
||||
| `IndexBuffer` | 索引缓冲 |
|
||||
| `RenderTarget` | 渲染目标 |
|
||||
| `UnorderedAccess` | 无序访问 |
|
||||
| `DepthWrite` | 深度写入 |
|
||||
| `DepthRead` | 深度读取 |
|
||||
| `NonPixelShaderResource` | 非像素着色器资源 |
|
||||
| `PixelShaderResource` | 像素着色器资源 |
|
||||
| `CopySrc` | 复制源 |
|
||||
| `CopyDst` | 复制目标 |
|
||||
| `Present` | 显示呈现 |
|
||||
| `GenericRead` | 通用读取 |
|
||||
|
||||
### HeapType
|
||||
|
||||
内存堆类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Default` | 默认堆 (GPU 直接访问) |
|
||||
| `Upload` | 上传堆 (CPU 写入 GPU 读取) |
|
||||
| `Readback` | 回读堆 (GPU 写入 CPU 读取) |
|
||||
| `Custom` | 自定义堆 |
|
||||
|
||||
## 描述符类型
|
||||
|
||||
### DescriptorType
|
||||
|
||||
描述符类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `CBV` | 常量缓冲区视图 |
|
||||
| `SRV` | 着色器资源视图 |
|
||||
| `UAV` | 无序访问视图 |
|
||||
| `Sampler` | 采样器 |
|
||||
| `RTV` | 渲染目标视图 |
|
||||
| `DSV` | 深度模板视图 |
|
||||
|
||||
### DescriptorHeapType
|
||||
|
||||
描述符堆类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `CBV_SRV_UAV` | CBV/SRV/UAV 混合堆 |
|
||||
| `Sampler` | 采样器堆 |
|
||||
| `RTV` | 渲染目标视图堆 |
|
||||
| `DSV` | 深度模板视图堆 |
|
||||
|
||||
### RootParameterType
|
||||
|
||||
根参数类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `DescriptorTable` | 描述符表 |
|
||||
| `Constants` | 常量 (32-bit 常量) |
|
||||
| `CBV` | 常量缓冲区视图 |
|
||||
| `SRV` | 着色器资源视图 |
|
||||
| `UAV` | 无序访问视图 |
|
||||
|
||||
## 命令相关
|
||||
|
||||
### CommandQueueType
|
||||
|
||||
命令队列类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Direct` | 直接命令队列 (图形/计算) |
|
||||
| `Compute` | 计算命令队列 |
|
||||
| `Copy` | 复制命令队列 |
|
||||
|
||||
### PipelineType
|
||||
|
||||
管线类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Graphics` | 图形管线 |
|
||||
| `Compute` | 计算管线 |
|
||||
| `Raytracing` | 光线追踪管线 |
|
||||
|
||||
### LoadAction
|
||||
|
||||
加载操作,渲染通道开始时的加载行为。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Undefined` | 未定义 |
|
||||
| `Load` | 加载现有内容 |
|
||||
| `Clear` | 清除为指定值 |
|
||||
|
||||
### StoreAction
|
||||
|
||||
存储操作,渲染通道结束时的存储行为。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Undefined` | 未定义 |
|
||||
| `Store` | 存储结果 |
|
||||
| `Resolve` | 解析 (多重采样) |
|
||||
| `StoreAndResolve` | 存储并解析 |
|
||||
| `Discard` | 丢弃 |
|
||||
|
||||
### PresentFlags
|
||||
|
||||
呈现标志。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `None` | 无标志 |
|
||||
| `AllowTearing` | 允许垂直同步撕裂 |
|
||||
| `StrictlyTimedFrame` | 严格计时帧 |
|
||||
| `AllowDisplayLatencyWaitableObject` | 允许显示延迟等待对象 |
|
||||
|
||||
### QueryType
|
||||
|
||||
查询类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `Occlusion` | 遮挡查询 |
|
||||
| `Timestamp` | 时间戳查询 |
|
||||
| `PipelineStatistics` | 管线统计查询 |
|
||||
|
||||
## RHI 后端
|
||||
|
||||
### RHIType
|
||||
|
||||
RHI 后端类型。
|
||||
|
||||
| 枚举值 | 描述 |
|
||||
|--------|------|
|
||||
| `D3D12` | DirectX 12 |
|
||||
| `OpenGL` | OpenGL |
|
||||
| `Vulkan` | Vulkan (预留) |
|
||||
| `Metal` | Metal (预留) |
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [../rhi/rhi.md](../rhi.md) - RHI 模块总览
|
||||
- [../rhi.md](../rhi.md) - RHI 模块总览
|
||||
- [RHITypes](../types/types.md) - 结构体类型汇总
|
||||
|
||||
Reference in New Issue
Block a user