Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OptiX 8.0.0 compatibility #442

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Thomaswang0822
Copy link

No description provided.

@Thomaswang0822
Copy link
Author

OptiX™ 8.0.0 is released in Aug 2023, and it's better for Falcor to support latest and future OptiX.

@Thomaswang0822
Copy link
Author

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;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant