mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-10 04:31:34 -10:00
- Bind the GL raw-depth sampler on unit 11 in the deferred pass and unbind it after the pass. - Enable RTAO only when shadows are on, and remove the RTAO option when ray tracing is not supported. - Use every second Poisson tap in the PCSS blocker search. - Use TLAS-relative ray origins for RTAO. - Gate +AngularSize: at version 27.0. - Measure an .eff sun from its first frame, and skip the measurement when shadows are off. - Guard the GL 3.3 sampler check for GLES builds. - Restore the lab session overrides when the lab closes. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
29 lines
1.5 KiB
C
29 lines
1.5 KiB
C
#pragma once
|
|
|
|
// Raytraced ambient occlusion (RTAO): short hemisphere occlusion rays traced via
|
|
// inline ray query against the raytraced-shadow TLAS, inside the deferred ambient
|
|
// light pass (LT_AMBIENT branch of deferred-f.sdr, RTAO shader variant). Composes
|
|
// multiplicatively with baked AO maps through the shared G-buffer `ao` term, so
|
|
// env-map/IBL ambient darkens consistently for free. The AO radius and strength
|
|
// are content-scale-dependent and therefore mod-owned -- see $RTAO Radius: /
|
|
// $RTAO Strength: in lighting_profiles.h.
|
|
|
|
// Rays traced per pixel for ambient occlusion. 0 (the default) disables RTAO
|
|
// entirely; nonzero values only take effect when rtao_supported(). Clamped
|
|
// in-shader to RT_SHADOW_MAX_SAMPLES (16). See RtaoQualityOption in rtao.cpp.
|
|
extern int Rtao_samples;
|
|
|
|
// Whether the hardware/renderer can trace AO rays at all -- the same requirement
|
|
// set as raytraced shadows (Vulkan + VK_KHR_acceleration_structure +
|
|
// VK_KHR_ray_query), so this simply forwards to that capability.
|
|
bool rtao_supported();
|
|
|
|
// Whether the deferred ambient pass should trace AO this frame, i.e. the user has
|
|
// enabled it, the hardware supports it, AND shadows are on. This is the single source of truth --
|
|
// gate any RTAO shader-flag, TLAS-build, or uniform code on this, not on
|
|
// Rtao_samples/rtao_supported() separately.
|
|
bool rtao_enabled();
|
|
|
|
// Remove the RTAO option from the options list when the renderer cannot trace rays.
|
|
void rtao_remove_unsupported_options();
|