- 有什么新内容?
- 技术
- 技术
- 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 保持亮度映射器
FidelityFX 保持亮度映射器 (或 LPM) 是一种用于高动态范围 (HDR) 和广色域内容的色调和色域映射解决方案。FidelityFX LPM 对红色-绿色-蓝色 (RGB) 像素的亮度进行色调映射,而不是对颜色本身进行映射,但它确保了 tonemap(luma(RGB)) 与 luma(tonemap(RGB)) 非常相似,从而保持了像素的亮度。
有关 FidelityFX LPM 效果底层技术的详细信息,您可以参考相应的 技术文档。
FidelityFX LPM 关闭

FidelityFX LPM 打开

要求
- Windows
- DirectX(R)12
- Vulkan(R)
UI 元素
示例包含各种 UI 元素,以帮助您探索其演示的技术。下表总结了 UI 元素及其在示例中的控制功能。
| 元素名称 | 值 | 描述 |
|---|---|---|
| IBLFactor | 0..1 | 基于图像的照明对被照场景的贡献。 |
| 软色差 | 0..0.5 | 控制在色域外映射中羽化区域的程度。范围从 0 到略大于零,0 表示裁剪。 |
| HDR Max | 1..FLT_MAX | 最亮的线性输入 RGB 像素值。 |
| LPM 曝光 | 1..2^n=FLT_MAX | 将 n 设置为您需要将 18% 中频电平输入值翻倍的次数。 |
| 对比度 | 0..1 | 输入范围 {0.0 (无额外对比度) 到 1.0 (最大对比度)}。 |
| 肩部对比度 | 1..1.5 | 肩部塑形,1.0 = 无变化 (快速路径) |
| SaturationRGB | -1..1 | 每通道调整,使用 < 0 减少,0 == 无变化,> 0 增加。 |
| crosstalkRGB | 0..1 | 一个通道必须是 1.0,其余通道可以小于等于 1.0 但不能为零。通过跨色域行走来延长到白色的颜色路径。 |
设置 LPM 计算着色器
FidelityFX LPM 计算着色器以几何渲染通道生成的线性颜色缓冲区为输入,包括不透明、透明和天空盒几何,以及任何后期处理通道——但在渲染任何 GUI 元素之前。
FidelityFX LPM 着色器还具有一些统一参数,这些参数通过 LPM 常量设置调用传递给 LPM,如上所述。然后,这些参数会传递给发生色调和色域映射的 LPM 过滤器调用。两者都在 ffx_lpm.h 中定义。
请注意,ffx_lpm.h 头文件设计为通过 #define 宏 (如下所示) 从 C++ 和 HLSL/GLSL 中包含。
C++
#define FFX_CPU#include <gpu/ffx_core.h>#include <gpu/ffx_lpm.h>HLSL
#define FFX_GPU#define FFX_HLSL#include "ffx_core.h"#include "ffx_lpm.h"GLSL
#define FFX_GPU#define FFX_GLSL#include "ffx_core.h"#include "ffx_lpm.h"ffx_lpm.h 依赖于 ffx_core.h,因此必须同时包含两者。
着色器选项
FidelityFX LPM 着色器,更具体地说 LpmFilter 函数,提供了使用 16 位浮点 (FP16) 数学运算与 32 位浮点 (FP32) 数学运算的选项。总的来说,在 AMD 硬件上,FP16 数学运算比 FP32 数学运算更有效,对于 FidelityFX LPM 来说,它可以使每个线程处理两个像素,从而使吞吐量加倍。
为获得最佳性能,该示例将这些选项编译成多种着色器排列,并在运行时根据示例的当前配置 (请参阅上面的 UI 元素部分) 选择特定的着色器排列。总共有两种着色器排列。
- FP16-LpmFilter
- FP32-LpmFilter
示例控件和配置
有关示例控件、配置和 FidelityFX Cauldron Framework UI 元素的详细信息,请参阅 运行示例。