LIFE LOG(MochiMochi3D)

MochiMochi3D

3D関係の記事を書きます

NEEとMISの実装 (NEE編)

この記事はCalendar for レイトレーシング(レイトレ) | Advent Calendar 2021 - Qiitaの記事として作成されました。

初めに

 この記事はレイトレの効率的な手法として知られているNEE(Next-Event-Estimation)とMIS(Multiple-Importance-Sampling)の説明と実装までをまとめた記事になります。

続きを読む

バランスヒューリスティックの導出

 この記事はNEEとMISの実装 (MIS編) - MochiMochi3DのおまけでMISのバランスヒューリスティックの導出はどうやっているのかの流れを書いたものです。

MISの理論的な話

 MISによるレンダリング結果を見れば大幅に分散(ノイズ)が減っていることが見てわかると思います。実用的にはバランスヒューリスティックはとても良い手法であることはわかりましたが、どうやってバランスヒューリスティックなんてものが出てきたのかということが疑問に浮かびます。また、これより最適な方法はないのかということも頭に浮かびます。

続きを読む

薄レンズモデル(ThinLens model)

被写界深度

 ピンホールカメラモデルでは所謂「ボケ」というものが存在せずため、どこまで遠くの物体でもくっきりとした画像を出すことができますが、現実で見るような写真は背景や手前のものがボケていると思います。このようになるのは現実のカメラ(肉眼も含む)はピンホールカメラとは異なり、レンズを通して写真を撮っているためです。  

続きを読む

Three.jsを使ってパストレをしてみた

目次

  • Web上で動くパストレーサー
  • ThreeJsでのダブルバッファリング
  • OrbitCameraをshaderで使う
  • 薄レンズモデル
  • HDRIの実装

Web上で動くパストレーサー

今まで私はShaderToy上でglslを書き、GPUパストレーサーを実装していたのですがやはり色々と追加したいことが増えてきたので他の方法でGPUパストレーサーを実装してみようかと考え、どんなものがあるかとGPUパストレーサーについて調べていました。

続きを読む