- 有什么新内容?
- 技术
- 技术
- FidelityFX 模糊 1.1
- FidelityFX 面包屑 1.0.1
- FidelityFX Brixelizer 1.0
- FidelityFX Brixelizer GI 1.0.1
- FidelityFX Classifier 1.3
- FidelityFX 组合自适应计算环境光遮蔽 (CACAO) 1.4
- FidelityFX 对比度自适应锐化 1.2
- FidelityFX 降噪器 1.3
- FidelityFX 景深 1.1
- FidelityFX 帧插值 1.1.3
- FidelityFX 帧插值交换链 1.1.3
- FidelityFX 镜头 1.1
- FidelityFX 保持亮度映射器 1.4
- FidelityFX 光流 1.1.2
- FidelityFX 并行排序 1.3
- FidelityFX 单通道降采样器 2.2
- FidelityFX 随机屏幕空间反射 1.5
- FidelityFX Super Resolution 3.1.4 (FSR3) - 升采样和帧生成
- FidelityFX Super Resolution 1.2 (FSR1)
- FidelityFX Super Resolution 2.3.3 (FSR2)
- FidelityFX Super Resolution 3.1.4 (FSR3) - 升采样器
- FidelityFX 可变着色 1.2
- 许可证
- 参考文档
- Classes
- AnimatedTexturesRenderModule
- BlurRenderModule
- BreadcrumbsRenderModule
- BrixelizerGIRenderModule
- CACAORenderModule
- CASRenderModule
- CacaoSample
- DoFRenderModule
- FSRRenderModule
- GBufferRenderModule
- GLSLCompiler
- GPUParticleRenderModule
- HLSLCompiler
- HybridReflectionsRenderModule
- HybridShadowsRenderModule
- ICompiler
- LPMRenderModule
- LensRenderModule
- LightingRenderModule
- ParallelSort
- ParallelSortRenderModule
- RasterShadowRenderModule
- SPDRenderModule
- SSSRRenderModule
- SkyDomeRenderModule
- TAARenderModule
- TranslucencyRenderModule
- VRSRenderModule
- Structs
- AnimSampler
- BilinearSamplingData
- BlurRenderModule::ComparisonConstants
- BlurRenderModule::Constants
- BlurRenderModule::MultiPassParameterSets
- BlurRenderModule::ParameterSets
- BrixelizerExampleConstants
- BrixelizerGIRenderModule::BrixelizerBufferInfo
- BrixelizerGIRenderModule::BrixelizerInstanceInfo
- CacaoPreset
- CameraInformation
- ClassifyResults
- DepthExtents
- FFX_CACAO_BilateralBufferVal
- FFX_CACAO_Edges_4
- FFX_CACAO_PrepareNormalsInputDepths
- FFX_CACAO_SSAOHits
- FFX_CACAO_SSAOSampleData
- FFX_DNSR_Reflections_Moments
- FFX_DNSR_Reflections_NeighborhoodSample
- FetchedBicubicSamples
- FetchedBilinearSamples
- FfxAllocationCallbacks
- FfxBarrierDescription
- FfxBlurContext
- FfxBlurContextDescription
- FfxBlurDispatchDescription
- FfxBreadcrumbsBlockData
- FfxBreadcrumbsCommandListDescription
- FfxBreadcrumbsContext
- FfxBreadcrumbsContextDescription
- FfxBreadcrumbsMarkersStatus
- FfxBreadcrumbsNameTag
- FfxBreadcrumbsPipelineStateDescription
- FfxBrixelizerAABB
- FfxBrixelizerBakedUpdateDescription
- FfxBrixelizerBasicMeshInfo
- FfxBrixelizerBrixelizationJob
- FfxBrixelizerBufferDescription
- FfxBrixelizerBuildInfo
- FfxBrixelizerCRItem
- FfxBrixelizerCRItemPacked
- FfxBrixelizerCRVoxelTriangleBounds
- FfxBrixelizerCascadeDescription
- FfxBrixelizerCascadeInfo
- FfxBrixelizerCascadeResources
- FfxBrixelizerCascadeStats
- FfxBrixelizerContext
- FfxBrixelizerContextDescription
- FfxBrixelizerContextInfo
- FfxBrixelizerContextStats
- FfxBrixelizerDebugAABB
- FfxBrixelizerDebugCounters
- FfxBrixelizerDebugInfo
- FfxBrixelizerDebugVisualizationDescription
- FfxBrixelizerGIConstants
- FfxBrixelizerGIContext
- FfxBrixelizerGIContextDescription
- FfxBrixelizerGIDebugDescription
- FfxBrixelizerGIDispatchDescription
- FfxBrixelizerGIPassConstants
- FfxBrixelizerGIProbeSpawnInfo
- FfxBrixelizerGIScalingConstants
- FfxBrixelizerGISpecularNeighborhoodSample
- FfxBrixelizerGITracingConstants
- FfxBrixelizerHit
- FfxBrixelizerHitRaw
- FfxBrixelizerHitWithNormal
- FfxBrixelizerIndexRef
- FfxBrixelizerIndirectOffsets
- FfxBrixelizerInstanceDescription
- FfxBrixelizerInstanceInfo
- FfxBrixelizerInstanceReference
- FfxBrixelizerRawCascadeDescription
- FfxBrixelizerRawCascadeUpdateDescription
- FfxBrixelizerRawContext
- FfxBrixelizerRawContextDescription
- FfxBrixelizerRawInstanceDescription
- FfxBrixelizerRawJobDescription
- FfxBrixelizerRayDesc
- FfxBrixelizerResources
- FfxBrixelizerScratchCounters
- FfxBrixelizerStats
- FfxBrixelizerTriangle
- FfxBrixelizerTrianglePartial
- FfxBrixelizerTrianglePartialCompressed
- FfxBrixelizerTrianglePos
- FfxBrixelizerTriangleReference
- FfxBrixelizerUpdateDescription
- FfxBufferSRV
- FfxBufferUAV
- FfxBxAtlasBounds
- FfxCacaoBufferSizeInfo
- FfxCacaoConstants
- FfxCacaoContext
- FfxCacaoContextDescription
- FfxCacaoDispatchDescription
- FfxCacaoSettings
- FfxCasContext
- FfxCasContextDescription
- FfxCasDispatchDescription
- FfxClassifierContext
- FfxClassifierContextDescription
- FfxClassifierReflectionDispatchDescription
- FfxClassifierShadowDispatchDescription
- FfxClearFloatJobDescription
- FfxComputeJobDescription
- FfxConstantBuffer
- FfxCopyJobDescription
- FfxCreateResourceDescription
- FfxDebugViewport
- FfxDenoiserContext
- FfxDenoiserContextDescription
- FfxDenoiserReflectionsDispatchDescription
- FfxDenoiserShadowsDispatchDescription
- FfxDeviceCapabilities
- FfxDimensions2D
- FfxDiscardJobDescription
- FfxDofAccumulators
- FfxDofBucket
- FfxDofContext
- FfxDofContextDescription
- FfxDofDispatchDescription
- FfxDofInputState
- FfxDofRingParams
- FfxDofSample
- FfxDofTileClass
- FfxEffectBindlessConfig
- FfxEffectMemoryUsage
- FfxExecuteGPUJobParams
- FfxFloatCoords2D
- FfxFrameGenerationConfig
- FfxFrameGenerationDispatchDescription
- FfxFrameInterpolationContext
- FfxFrameInterpolationContextDescription
- FfxFrameInterpolationDebugViewport
- FfxFrameInterpolationDispatchDescription
- FfxFrameInterpolationPrepareDescription
- FfxFrameInterpolationSharedResourceDescriptions
- FfxFsr1Context
- FfxFsr1ContextDescription
- FfxFsr1DispatchDescription
- FfxFsr2Context
- FfxFsr2ContextDescription
- FfxFsr2DispatchDescription
- FfxFsr2GenerateReactiveDescription
- FfxFsr3Context
- FfxFsr3ContextDescription
- FfxFsr3DispatchFrameGenerationPrepareDescription
- FfxFsr3DispatchUpscaleDescription
- FfxFsr3GenerateReactiveDescription
- FfxFsr3UpscalerContext
- FfxFsr3UpscalerContextDescription
- FfxFsr3UpscalerDispatchDescription
- FfxFsr3UpscalerGenerateReactiveDescription
- FfxFsr3UpscalerSharedResourceDescriptions
- FfxGpuJobDescription
- FfxIntCoords2D
- FfxInterface
- FfxInternalResourceDescription
- FfxLensContext
- FfxLensContextDescription
- FfxLensDispatchDescription
- FfxLpmContext
- FfxLpmContextDescription
- FfxLpmDispatchDescription
- FfxOpticalflowContext
- FfxOpticalflowContextDescription
- FfxOpticalflowDispatchDescription
- FfxOpticalflowSharedResourceDescriptions
- FfxParallelSortConstants
- FfxParallelSortContext
- FfxParallelSortContextDescription
- FfxParallelSortDispatchDescription
- FfxPipelineDescription
- FfxPipelineState
- FfxPresentCallbackDescription
- FfxPresentXParams
- FfxRasterJobDescription
- FfxRay
- FfxRect2D
- FfxResource
- FfxResourceBinding
- FfxResourceDescription
- FfxResourceInitData
- FfxResourceInternal
- FfxRootConstantAllocation
- FfxRootConstantDescription
- FfxSamplerDescription
- FfxShaderBlob
- FfxSpdContext
- FfxSpdContextDescription
- FfxSpdDispatchDescription
- FfxSssrContext
- FfxSssrContextDescription
- FfxSssrDispatchDescription
- FfxStaticResourceDescription
- FfxSwapchainFramePacingTuning
- FfxSwapchainReplacementFunctions
- FfxTextureSRV
- FfxTextureUAV
- FfxViewDescription
- FfxVrsContext
- FfxVrsContextDescription
- FfxVrsDispatchDescription
- FrameInfo
- FrameInterpolationReplacementParametersVK
- GBufferRenderModule::BoundTexture
- GBufferRenderModule::PipelineRenderGroup
- GBufferRenderModule::PipelineSurfaceRenderInfo
- GLSLShaderBinary
- GPUParticlePartA
- GPUParticlePartB
- HDRCBData
- HLSLDxcShaderBinary
- HLSLFxcShaderBinary
- HybridReflectionsRenderModule::RTInfoTables
- HybridReflectionsRenderModule::RTInfoTables::BoundTexture
- HybridShadowsRenderModule::DebugTilesConstantBuffer
- HybridShadowsRenderModule::RTConstantBuffer
- IReflectionData
- IShaderBinary
- IndirectCommand
- Instance_Info
- InstanceInformation
- InterpolationSourceColor
- LightInformation
- LumaInstabilityFactorData
- MagnifierCBData
- Material_Info
- MaterialInfo
- MaterialInformation
- MatrixPair
- OptionalTransparencyOptions
- Permutation
- PreviousLumaBilinearSamplesData
- RasterShadowRenderModule::BoundTexture
- RasterShadowRenderModule::PipelineRenderGroup
- RasterShadowRenderModule::PipelineSurfaceRenderInfo
- RasterShadowRenderModule::ShadowMapInfo
- RaySetup
- SPDDownsampleInfo
- SPDRenderModule::PipelineSet
- SPDVerifyConstants
- SampleSet
- SampleStreamState
- SceneInformation
- SceneLightingInformation
- ShaderResourceInfo
- ShadingChangeLumaInfo
- Surface_Info
- SwapchainCBData
- TextureIndices
- Tile
- TranslucencyRenderModule::BoundTexture
- TranslucencyRenderModule::ParticlesRenderData
- TranslucencyRenderModule::PipelineHashObject
- TranslucencyRenderModule::PipelineParticlesRenderInfo
- TranslucencyRenderModule::PipelineSurfaceRenderInfo
- TranslucencyRenderModule::TranslucentRenderData
- UpscalerInformation
- VRSRenderModule::MotionVectorsRenderData
- VRSRenderModule::PipelineHashObject
- VRSRenderModule::PipelineSurfaceRenderInfo
- VS_SURFACE_OUTPUT
- VectorFieldEntry
- VertexStrides
- VkDeviceContext
- VkFrameInterpolationInfoFFX
- VkQueueInfoFFX
- 免责声明
- FidelityFX SDK v2.0 文档 ⧉
FidelityFX 组合自适应计算环境光遮蔽 (CACAO)

此示例演示了 FidelityFX 组合自适应计算环境光遮蔽技术的用法。
有关 FidelityFX CACAO 效果所依据技术的详细信息,请参阅相应的 技术文档。
要求
- Windows
- DirectX(R)12
- Vulkan(R)
UI 元素
此示例包含 UI 选项,可用于试验相关值和技术。下表总结了 UI 元素及其在示例中的控制功能。
| 元素名称 | 值 | 描述 |
|---|---|---|
| 预设 | 原生 - 自适应质量, 原生 - 高质量, 原生 - 中等质量, 原生 - 低质量, 原生 - 最低质量, 降采样 - 自适应质量, 降采样 - 高质量, 降采样 - 中等质量, 降采样 - 低质量, 降采样 - 最低质量 | 选择质量并可在降采样和原生分辨率采样之间切换。 |
| 半径 | 0 .. 10 | 遮蔽球体的世界空间半径。半径越大,越远的物体对点的环境光遮蔽贡献越大。 |
| 阴影乘数 | 0 .. 5 | 阴影的线性乘数。值越高,阴影越强烈。 |
| 阴影幂 | 0.5 .. 5 | 阴影值的指数。值越大,阴影越暗。 |
| 阴影夹 | 0 .. 1 | 将阴影值限制在特定范围内。 |
| 地平线角度阈值 | 0 .. 0.2 | 在产生遮蔽所需的几何体与点之间的最小角度。调整此值有助于减少自阴影。 |
| 渐变消失起始距离 | 1 .. 20 | 效果开始渐变消失的在世界空间中的距离。 |
| 渐变消失结束距离 | 1 .. 40 | 效果结束渐变消失的在世界空间中的距离。 |
| 质量级别 | 最高,高,中,低,最低 | 确定 FidelityFX CACAO 生成的各种方面,包括用于生成屏幕空间环境光遮蔽 (SSAO) 的样本数量、生成 SSAO 的像素数量等。 |
| 自适应质量限制 | 0.5 .. 1 | 限制在自适应质量级别下采样的总样本数。 |
| 模糊通道数 | 0 .. 8 | 对原始 SSAO 输出运行的边缘敏感模糊的数量。 |
| 锐度 | 0 .. 1 | 锐度控制着模糊效果应有多少会溢出到边缘。 |
| 细节阴影强度 | 0 .. 5 | 根据边缘增加更精细的阴影。这些阴影在时间上不太稳定。 |
| 从缓冲区目标生成法线缓冲区 | 开关:开/关 | 启用后,法线缓冲区将从深度缓冲区生成。这意味着 SSAO 将仅以深度缓冲区作为输入。 |
| 使用降采样 SSAO | 开关:开/关 | 启用后,SSAO 将以一半分辨率生成,而不是原生分辨率。 |
| 双边 Sigma 平方 | 0 .. 10 | 仅影响下采样 SSAO。值越高,模糊越大。 |
| 双边相似距离 Sigma | 0.1 .. 1 | 仅影响下采样 SSAO。值越低,边缘越锐利。 |
设置 FidelityFX CACAO 效果
FidelityFX CACAO 着色器以几何渲染通道生成的深度缓冲区作为输入。它还可以选择性地输入几何渲染通道生成的法线缓冲区,否则将从深度缓冲区生成此信息。
该 ffx_cacao.h 文件包含效果上下文创建、分派、常量更新和上下文销毁函数。
请注意,该效果设计为可与 C++、HLSL 和 GLSL 一起使用。这些可以通过 #define 宏进行选择(见下文)。
C++
#define FFX_CPU#include <gpu/ffx_core.h>#include <gpu/ffx_cacao.h>HLSL
#define FFX_GPU#define FFX_HLSL#include "ffx_core.h"#include "ffx_cacao.h"GLSL
#define FFX_GPU#define FFX_GLSL#include "ffx_core.h"#include "ffx_cacao.h"着色器选项
FidelityFX CACAO 的部分通道支持不同的选项。
支持的一个选项是使用 16 位浮点 (FP16) 数学运算,而不是 32 位。
着色器也可以在 Wave64 或 Wave32 中运行。着色器如何运行在很大程度上取决于执行的硬件平台,并在运行时确定。
最后,某些通道可以运行 应用智能 选项,从而为 应用 和 双边上采样 等通道启用边缘感知执行。
示例控件和配置
有关示例控件、配置和 FidelityFX Cauldron Framework UI 元素的详细信息,请参阅 运行示例。