OptiX 8.0.0 compatibility
OptiX™ 8.0.0 is released in Aug 2023, and it's better for Falcor to support latest and future OptiX.
Here are related lines in optix_types.h of OptiX 8.0.0 SDK
Line 1637
/// Alpha denoising mode
///
/// \see #optixDenoiserCreate()
typedef enum OptixDenoiserAlphaMode
{
/// Copy alpha (if present) from input layer, no denoising.
OPTIX_DENOISER_ALPHA_MODE_COPY = 0,
/// Denoise alpha.
OPTIX_DENOISER_ALPHA_MODE_DENOISE = 1
} OptixDenoiserAlphaMode;
Line 1646
/// Options used by the denoiser
///
/// \see #optixDenoiserCreate()
typedef struct OptixDenoiserOptions
{
// if nonzero, albedo image must be given in OptixDenoiserGuideLayer
unsigned int guideAlbedo;
// if nonzero, normal image must be given in OptixDenoiserGuideLayer
unsigned int guideNormal;
/// alpha denoise mode
OptixDenoiserAlphaMode denoiseAlpha;
} OptixDenoiserOptions;
Line 1728
/// Various parameters used by the denoiser
///
/// \see #optixDenoiserInvoke()
/// \see #optixDenoiserComputeIntensity()
/// \see #optixDenoiserComputeAverageColor()
typedef struct OptixDenoiserParams
{
/// average log intensity of input image (default null pointer). points to a single float.
/// if set to null, autoexposure will be calculated automatically for the input image.
/// Should be set to average log intensity of the entire image at least if tiling is used to
/// get consistent autoexposure for all tiles.
CUdeviceptr hdrIntensity;
/// blend factor.
/// If set to 0 the output is 100% of the denoised input. If set to 1, the output is 100% of
/// the unmodified input. Values between 0 and 1 will linearly interpolate between the denoised
/// and unmodified input.
float blendFactor;
/// this parameter is used when the OPTIX_DENOISER_MODEL_KIND_AOV model kind is set.
/// average log color of input image, separate for RGB channels (default null pointer).
/// points to three floats.
/// if set to null, average log color will be calculated automatically. See hdrIntensity for tiling,
/// this also applies here.
CUdeviceptr hdrAverageColor;
/// In temporal modes this parameter must be set to 1 if previous layers (e.g.
/// previousOutputInternalGuideLayer) contain valid data. This is the case in the
/// second and subsequent frames of a sequence (for example after a change of camera
/// angle). In the first frame of such a sequence this parameter must be set to 0.
unsigned int temporalModeUsePreviousLayers;
} OptixDenoiserParams;
i want to know how to install optix into falcor,i put optix folder into packman then errors came up
@Thomaswang0822 thank you for the PR, could you please add a change to the README to reflect that after this is merged in, the recommended version of OptiX is 8, rather than the 7.3, as the code isn't backwards compatible with that version.