LIFE LOG(MochiMochi3D)

MochiMochi3D

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

Punctual Lightの理論的取り扱い

点光源やディレクショナルライトなどのリアルタイムでお馴染みなPunctual LightがPBRにおいてどのような扱いがされているのかまとめた記事です。Punctual Lightによるハイライトが異常に明るくなる原因などについて簡単に書いています。

Multiple Scatteringの実装と近年の動向

初めに レイトレ(Raytracing)のカレンダー | Advent Calendar 2023 - Qiitaの23日の記事です。通常のMicrofacet BSDFは何度も反射する多重散乱光(Multiple Scatteirng)を無視しているため、実はエネルギー損失が起きていることが知られています。この記事は…

4K Executable Graphics (exegfx)入門

4K Executable Graphics (exegfx)とは Blossom 環境構築 shaderの構成 Build設定 Blossomのconfig exegfxのサンプル UV Test SDFの表示 SDFモデリング 簡単なライティング マテリアリング アンチエイリアシング RTAO パストレーシング 中級者向け ロシアンル…

レイトレ合宿9 参加レポート

9月1日から9月3日にかけて開催されたレイトレ合宿9に参加してきました。去年は何ともラグジュアリーな合宿だった反動で、今年は千葉県の大本山 清澄寺というお寺で慎ましやかに開催されました。

光は本当に光線(Ray)として使っていいのか ~幾何光学近似~

レイトレ合宿9のアドベントカレンダー6/25の記事です。 レンダリングにおける光の挙動は全て光線(Ray)として考えているが、現実の光はこれと相反する電磁波という形で伝播してしています。なぜ光をRayと扱ってもいいのかというと、光学における幾何光学近似…

Shaderで文字を描く方法

Shader芸をやってると何かと文字を使った表現やりたくなることがあります。私が知っている限りではフォントのテクスチャ、SDF、ドット絵の3つの表現方法があります。 テクスチャを使う ShadertoyではTexturesの中にFont1というフォント用のテクスチャが存在…

コミケC101でBSDFの本を出しました

3か月ほど前の話なのですが、コミックマーケットC101にサークルとして参加しBSDFの本というニッチな本を配布してきました。(電子書籍版がありますので興味がある方はぜひ) motimoti3d.booth.pm 即売会もよく知らない人間だったのでC101の参加はとても刺激…

レイトレ合宿8に参加しました

レイトレ合宿8に参加してきました!参加レポートとしてレンダラー開発記と合宿の様子や感想を記事にまとめました!

PathTracingでのCausticsレンダリング手法

初めに この記事はレイトレ合宿8アドベントカレンダー7/17の2個目の記事です。 パストレーシングにおいて効率的にCausticsをレンダリングすることができるManifold Next Event Estimation(MNEE)という手法とそれの発展手法である Specular Manifold Samplin…

レイトレーシングにおけるIBL(Image Based Lighting)の実装

初めに この記事はレイトレ合宿8アドベントカレンダー7/17の1個目の記事として書かれたものです。 この記事ではレイトレーシングにおけるImage Based Lightingの扱い、純パストレにおける実装、重点的サンプリングの手法及び実装について解説していきます。

BlenderのVoronoiの実装を見る

初めに この記事はBlenderのVoronoi Textureがどのような実装をされているかについて調べたことをまとめた記事です。

Blenderでのanisotropic GGXのパラメーターを再現する

Blenderにおける異方性のパラメーター anisotropicGGXではという粗さのパラメータが必要ですが実用上ではそれぞれを直接指定することは多分ありません。実際に、BlenderのPrincipled BSDFではRoughnessという粗さのパラメータが1つだけで済まされており、別…

GGXの実装

この記事はレイトレーシングにおけるGGX分布を使用したMicrofacetのBRDFについてまとめたものです。内容としては isotropic(等方性)GGX Microfacet理論 フレネル項 法線分布関数 マスキングシャドウ関数 重点的サンプリング 実装例 出力画像 anistropic (…

NEEとMISの実装 (MIS編)

この記事はCalendar for レイトレーシング(レイトレ) | Advent Calendar 2021 - Qiitaの記事として作成され、NEEとMISの実装 (NEE編) - MochiMochi3Dの続きです。 MIS(Multiple Importance Sampling) NEEは実用的ではありましたがPathTraceの完全上位互換と…

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パストレーサーを実装していたのですがやはり色々と追加したいこ…