はじめに
最近Blenderなどにも追加されたIntel Open Image Denoiseというレイトレーシング画像用のノイズを取り除くライブラリがどれだけレイトレーシング画像を綺麗にすることができるかを試すべく、コマンドラインから使ってみました。
Intel Open Image Denoise
目次
インストール
まずは以下のリンクのDownload the Toolkitのリンクから自分の環境にあったバージョンをインストールします。(Intel Developer Zoneへの登録が必要です)
Intel oneAPI Rendering Toolkit
次に画像形式の変換のためのImageMagickをインストールします。インストール後のパス設定オプションはオンにしておきます。
ImageMagick
使用画像
今回は以前シンプルなレイトレーサーを作った時のノイズだらけの画像を使用します。256x256のppm画像ですがjpgや他の形式でも構いません。
実行方法
まずは任意のフォルダにデノイズしたい画像を配置します。ここではraytracer.ppm
になります。
次にコマンドラインからインストールされたIntel Open Image Denoiseの中にあるsetvars.bat
を使って環境変数設定を行います。
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
コマンドラインで画像のあるフォルダに移動し、ImageMagickを使って入力画像をpfm形式に変換します。
magick raytrace.ppm -endian LSB -resize 256x256 PFM:noisy_input.pfm
oidnDenoise.exe
を実行しデノイズを行い、最後にImageMagickを用いて任意のファイル形式に戻します。
oidnDenoise.exe -ldr noisy_input.pfm -o denoised_output.pfm
magick convert denoised_output.pfm PNG:denoised_output.png
実行結果
以下がデノイズ後の画像になります。デノイズ前の画像と比べるとかなり綺麗になってると思います。デノイズにかかった時間は13.1384(msec)
となりました。
補足
Intel Open Image Denoiseは公式ドキュメントにある通り、albedoやnormal画像と共に実行すると更に綺麗になったりします。レイトレーシング画像のみでもかなり高速に改善されることが分かったのでレンダラーに組み込んでみてもいいかもしれません。