Slide 1

Slide 1 text

FluorTracer kugi(@kugi_masa) RayTracingCamp11

Slide 2

Slide 2 text

これまでの変遷 https://speakerdeck.com/kugimasa/raytracingcamp10 RayTracingCamp10 今年は...?

Slide 3

Slide 3 text

今回の目標 蛍光を再び

Slide 4

Slide 4 text

FluorTracer 概要 ● DXR ● Path Tracing ● Next Event Estimation ● MIS (Balance Heuristic) 光源 ● Rect Light ● Ambient Light オブジェクト ● Plane ● Sphere ● Mesh マテリアル ● Fluorescence (Reduced Re-radiation Matrix) ● OpenPBR (WIP)

Slide 5

Slide 5 text

ClosestHitシェーダーを分離 今年はマテリアル単位でHitGroupを分けるようにした ● Diffuse (Lambertian) ● Emissive ● Fluorescence ● Open PBR 昨年は単一のClosestHitシェーダーで実装

Slide 6

Slide 6 text

Fluorescence Reduced Re-radiation Matrix 1. サンプルした光源 RGB → XYZ 2. XYZ で Re-radiation Matrix とかける 3. XYZ → RGB に戻す 使用した蛍光材質 ● TEXTYELL を事前計算してReduceされたMatrix Non-Orthogonal Reduction for Rendering Fluorescent Materials in Non-Spectral Engines [Fichet et al. 2024] https://github.com/afichet/fluorescence-rgb https://web.archive.org/web/20191018071813/https://www.rit.edu/cos/colorscience/re_sgonzalez.php

Slide 7

Slide 7 text

OpenPBR (WIP) Slabという単位でMixやLayerによるブレンドが可能 ● diffuse(Lambert Diffuse), metal(GGX, F82-tint)だけ実装 ● diffuseはEON(energy-preserving Oren-Nayar)までは実装できず... https://academysoftwarefoundation.github.io/OpenPBR/ https://github.com/portsmouth/OpenPBR-viewer

Slide 8

Slide 8 text

(余談) https://academysoftwarefoundation.github.io/OpenPBR/ https://advances.realtimerendering.com/s2023/2023%20Siggraph%20-%20Substrate.pdf 似ている OpenPBR v1.1[2024] Unreal Engine Substrate Material [SIGGRAPH2023]

Slide 9

Slide 9 text

描画結果 設定 ● 800 × 800 (100 spp) ● 60 fps × 10 sec = 600 frames 配置物 ● Metallicな床 ● LambertDiffuseなバニー ● Fluorescentな看板 ※ NEEで光源接続できた時のみ蛍光発光する設定 (本当はThroughputをMatrixとして更新していく必要がある)  蛍光マスク 正面の光源を青に変化

Slide 10

Slide 10 text

External Resources ● Libraries ○ DirectX-Headers (https://github.com/microsoft/DirectX-Headers) ○ DirectXTex (https://github.com/microsoft/DirectXTex) ○ DirectXShaderCompiler (https://github.com/microsoft/DirectXShaderCompiler) ○ assimp (https://github.com/assimp/assimp) ○ fpng (https://github.com/richgel999/fpng) ● Model ○ Stanford Bunny (https://casual-effects.com/data) ● Fluorescence Data ○ [Fichet et al. 2024] (https://github.com/afichet/fluorescence-rgb)

Slide 11

Slide 11 text

ビルド環境の整備 Release版での アセットパス周りのバグに気づけた PushをトリガーにGitHub Actionsで Windows(Debug/Release)ビルド

Slide 12

Slide 12 text

NEXT OpenPBR + SpectralRendering