| 51 | }; |
| 52 | |
| 53 | void LiveDenoiseFrameOp::updateFilters() |
| 54 | { |
| 55 | prefilter = denoiser->quality == OIDN_QUALITY_HIGH; |
| 56 | |
| 57 | if (prefilter) { |
| 58 | if (fbView.normalBuffer && !filterNormal) { |
| 59 | filterNormal = denoiser->oidnDevice.newFilter("RT"); |
| 60 | filterNormal.set("quality", OIDN_QUALITY_HIGH); |
| 61 | } |
| 62 | if (fbView.albedoBuffer && !filterAlbedo) { |
| 63 | filterAlbedo = denoiser->oidnDevice.newFilter("RT"); |
| 64 | filterAlbedo.set("quality", OIDN_QUALITY_HIGH); |
| 65 | } |
| 66 | |
| 67 | initFilterAuxImages(); |
| 68 | |
| 69 | if (fbView.normalBuffer) |
| 70 | filterNormal.commit(); |
| 71 | if (fbView.albedoBuffer) |
| 72 | filterAlbedo.commit(); |
| 73 | } |
| 74 | |
| 75 | filter.set("quality", denoiser->quality); |
| 76 | filter.set("cleanAux", prefilter); |
| 77 | updateFilterInput(); |
| 78 | updateAuxImages(filter); |
| 79 | |
| 80 | if (denoiser->denoiseAlpha) { |
| 81 | if (!filterAlpha) { |
| 82 | filterAlpha = denoiser->oidnDevice.newFilter("RT"); |
| 83 | filterAlpha.set("hdr", false); |
| 84 | initFilterAlphaImages(); |
| 85 | } |
| 86 | |
| 87 | filterAlpha.set("quality", denoiser->quality); |
| 88 | filterAlpha.set("cleanAux", prefilter); |
| 89 | updateAuxImages(filterAlpha); |
| 90 | } |
| 91 | |
| 92 | filter.commit(); |
| 93 | if (denoiser->denoiseAlpha) |
| 94 | filterAlpha.commit(); |
| 95 | } |
| 96 | |
| 97 | struct OSPRAY_MODULE_DENOISER_EXPORT LiveDenoiseFrameOpShared |
| 98 | : public LiveDenoiseFrameOp |