Skip to content
Image Based Screen Space Subsurface Scattering Sample
C C++
Branch: master
Clone or download

README.md

imsss

Image Based Screen Space Subsurface Scattering Sample

概要

「天空画像を用いたスクリーンスペース表面下散乱」のサンプルプログラムです.

データファイル

  • 形状データには三角形分割した Wavefront OBJ 形式のファイルが使えます.
    • Blender で Export するときは "Include Normals," "Write Materials," "Triangulate Faces" にチェックを入れてください.
    • 形状データの大きさは読み込み時に [-1,1] に正規化されます.
    • マテリアルも読み込みますが,値の使い方は本来とは違います.
  • テクスチャは縦横 2^n 画素の TGA 形式のファイルです.
    • 円周魚眼レンズを使って作成してください.

操作方法

  • マウスの左ドラッグでオブジェクトを回転できます.
  • マウスの右ドラッグで環境テクスチャを回転できます.
  • 0 〜 9 の数字キーで環境テクスチャを切り替えることができます.0 番のテクスチャは闇です.
  • 上下の矢印キー↑↓で「半透明度」を変化させることができます.
  • 左右の矢印キー←→で「サンプル点の散布半径」を変化させることができます.
  • スペースキーでサンプル点数を増やすことができます(最大 256).
  • Back Space キーでサンプル点数を減らすことができます(最少 0).
  • b キーでレンダリング時間の表示(標準出力に出ます)を ON/OFF できます(単位 ms).
    • 一つ目が MRT への描きこみに要した時間,二つ目がスクリーン空間処理に要した時間です.

補足

  • Reflective Occlusion は実験的な実装です. SSAO のサンプル点を流用しているので importance が考慮されず, 多くのサンプル点が無駄になってサンプル点の数が不足します.
  • カメラからの入力画像を環境テクスチャに使うバージョンは opencv ブランチにあります.
    • カメラに円周魚眼レンズを取り付けてください.
    • これには数字キーによるテクスチャ切り替えの機能はありません.
You can’t perform that action at this time.