该库提供了强大的功能,一些函数示例如下:
#include <OpenImageDenoise/oidn.h> ... // Create an Open Image Denoise device OIDNDevice device = oidnNewDevice(OIDN_DEVICE_TYPE_DEFAULT); oidnCommitDevice(device); // Create a denoising filter OIDNFilter filter = oidnNewFilter(device, "RT"); // generic ray tracing filter oidnSetSharedFilterImage(filter, "color", colorPtr, OIDN_FORMAT_FLOAT3, width, height, 0, 0, 0); oidnSetSharedFilterImage(filter, "albedo", albedoPtr, OIDN_FORMAT_FLOAT3, width, height, 0, 0, 0); // optional oidnSetSharedFilterImage(filter, "normal", normalPtr, OIDN_FORMAT_FLOAT3, width, height, 0, 0, 0); // optional oidnSetSharedFilterImage(filter, "output", outputPtr, OIDN_FORMAT_FLOAT3, width, height, 0, 0, 0); oidnSetFilter1b(filter, "hdr", true); // image is HDR oidnCommitFilter(filter); // Filter the image oidnExecuteFilter(filter); // Check for errors const char* errorMessage; if (oidnGetDeviceError(device, &errorMessage) != OIDN_ERROR_NONE) printf("Error: %s\n", errorMessage); // Cleanup oidnReleaseFilter(filter); oidnReleaseDevice(device);