NVIDIA OptiXでレイを飛ばしてみる PART1

はじめに

  • 研究室で独りでにレイを飛ばしている木内です. 最近NVIDIA OptiXを使っているのですが,アプリケーションを作るまでが結構長いのでここにまとめます.間違いや、修正したほうが良い点がございましたら、 Twitter @sketchbooks99 か、Email kiuchi@media.lab.uec.ac.jp に ご連絡ください。

  • また、個人開発の一環としてOptiXの面倒な部分へのラッパー等、簡単にレイトレーシングを走らせることができるライブラリを作っています。ご興味ある方はチェックしてみてください https://github.com/sketchbooks99/PRayGround

  • 記事作成者のプロフィール : https://www.media.lab.uec.ac.jp/?page_id=1434

  • PART2はこちら

このページは?

  • NVIDIA OptiXを使ってレイを飛ばすまでをまとめるページです.

NVIDIA OptiXとは

  • NVIDIAが開発するGPUベースのレイトレーシングエンジンです.
  • CUDAコードで動作し,非常に速くレンダリングを行うことができます.
  • 最近ではMitsuba2をはじめとする微分可能レンダリングの論文でもレンダリングの高速化の観点から使用されています.

チュートリアル環境

  • Windows10
  • GPU: RTX2080Ti
  • Visual Studio 2019
  • CUDA 10.1
  • OptiX 7.2.0

事前準備

  • CUDA Toolkitをダウンロードしておきます.
  • NVIDIA ドライバを最新の状態(OptiXで指定されているバージョン以上)にしましょう
    • GeForce Experienceからドライバのインストールができます. ※再起動が必要です.
    • GeForce Experienceを立ち上げて ドライバ タブから 最新版をインストール

インストール方法

  • ダウンロードページからOSにあったものをダウンロードします.

  • ダウンロードした.exeファイルを起動してインストールします.

    • ここでは特に指定するポイントなどはないので,何も考えず全部 Nextでインストールして大丈夫です.
  • インストールが完了すると C:\ProgramData\NVIDIA Corporation\OptiX SDK 7.2.0 にフォルダが作成されます.

  • これでインストール完了です.

動かしてみる

Cmake編

  • OptiXを動かしてみるには,ビルドをする必要があります.
  • CMake GUIを使ってビルドします.
    • source codeでは先ほどインストールしたOptiX SDK 7.2.0以下にある SDK フォルダを指定します.
    • ビルド先は SDK\build などで新たにフォルダを作成しましょう.
  • 指定できたら Configure をクリックします. ターゲットは Visual Studio 16 2019 ,プラットフォームは x64 とします.
    • ここで,Win32などを指定するとビルド後にうまく動作しない可能性があるので,x64 になっていることを確認しましょう.
  • Configure done と出ればOKです.
  • 最後に Generate ボタンをクリックして完了です. Generating done と出れば正常にビルドできています.

Visual Studio編

  • Cmakeが完了したらもう少しです.先ほどの build フォルダ内をみると, Optix-Samples.sln ファイルが生成されているかと思います.このソリューションファイルを開きます.
  • 開いたら, [ビルド]→[ソリューションのビルド]を実行します.
  • 〜〜は環境外で変更されています というポップアップが出る場合がありますが,気にしなくていいので すべて再読み込み をクリックして進みましょう.
  • エラーが出なかったら完了です.

サンプルを動かす.

  • ビルドが完了したらサンプルを動かして見ましょう.開いているVisual Studioはそのまま使います.
  • 試しに optixPathTracer を動かして見ます.
  • [表示]→[ソリューションエクスプローラー]をクリックし,エクスプローラーを開きます.
  • optixPathTracer というプロジェクトを右クリックし, [スタートアッププロジェクトに設定]をクリックします.
  • 設定したら画面上部にある, [ローカルWindowsデバッガー]をクリックしましょう.以下のようにアプリケーションが立ち上がれば完了です.