Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
toushindai_fusion_vrc_plasma_expression_for_mul...
Search
IWMTT
December 19, 2025
48
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
toushindai_fusion_vrc_plasma_expression_for_multi_devices
IWMTT
December 19, 2025
Featured
See All Featured
Mind Mapping
helmedeiros
1
400
Building AI with AI
inesmontani
PRO
1
1.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
830
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
560
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Side Projects
sachag
456
43k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Transcript
等身大核融合炉ワールドが できるまで プラズマ表現のマルチデバイス対応 IWMTT
今日話す内容 • 自己紹介 • VFN_Full scale Tokamak fusion reactorについて •
苦労話: プラズマ表現のマルチデバイス対応 (One of ワールド実装にあたって苦労した部分)
名前: IWMTT (いわもと) 仕事: 核融合炉メンテナンス用ロボット技術の開発 使っているもの: C#/Python/たまにC++/Blender/ROS/Unity/Three.js/Docker 最近の興味: MCPサーバー GitHub:
https://github.com/IWMTT X: IWMTT (@wmtti) / X
VFN_Full scale Tokamak fusion reactor 世界初・実規模スケールの オープン核融合炉ワールド サイズ: 90m×60m×50m 初公開:
2024/8/20 総頂点数: 1393981 総メッシュ数: 674104 ワールド容量: 52 MB オブジェクト数: 160
苦労話: プラズマ表現のマルチデバイス対応
どのデバイスにも 同じ景色を共有したい 核融合分野のアウトリーチへの貢献 地上の太陽 ≒ 核融合プラズマの規模感を実感してほしい PC環境に限らず、VRゴーグルやスマホでもリッチな表現でプラズマを見せたい
プラズマっぽい表現 プラズマ の見え方 英国Tokamak Energy社の ST40球状トカマク装置で カラー撮影されたプラズマ 出典: Seeing plasma
in colour: new imaging from ST40 – Tokamak Energy (https://tokamakenergy.com/2025/10/15/seeing-plasma-in-colour-new- imaging-from-st40/ )
プラズマ っぽい表現
プラズマ っぽい表現 光の“にじみ” 中心部の透明感 輪郭での色と光の強調
シェーダに よる実装 ✓リムライトシェーダで 比較的容易に実現 中心部の透明感 輪郭での色と光の強調 ⇒これが難しかった 普通は Bloom +
Post Processing を使用 しかし、Post ProcessingはPCのみ 光の“にじみ”
例えば上記のようなメッシュと光源があるときに、 どのように各メッシュの明暗を決めることができるか? シェーダとは: メッシュの法線ベクトルや視線のベクトルなどを使って 3Dモデルの“見え方”を計算するプログラム
シェーダとは: メッシュの法線ベクトルや視線のベクトルなどを使って 3Dモデルの“見え方”を計算するプログラム シェーダで行われる処理の一例 入射光ベクトル 法線ベクトル 入射光ベクトルと 各法線ベクトルで内積を計算 メッシュ -0.8
-0.5 -1.0 -0.7 -0.2 0.0 0.1 0.2 0.8 0.5 1.0 0.7 0.2 0.0 -0.1 -0.2 符号反転して 明暗を決定 レンダリング結果 明暗だけでなくRGBチャンネルや透明度も同様にシェーダを使って制御可能
リムライト実装: メッシュ法線が視線を向いている領域は透明度が高く、 メッシュ法線が視線と垂直に近い領域は透明度が低くなる処理 ⇒リムライトシェーダを適用 中心部の透明感 輪郭での色と光の強調 + 視線ベクトル 法線ベクトル メッシュ
0.2 0.1 0.4 0.8 0.8 0.4 0.2 0.1 視線ベクトルと法線ベクトルで 内積を計算・反転 (ベース色+輪郭色)×透明度 + × = 参考: 【Unity】Unlit Shaderでリムライティング - めーぷるのおもちゃばこ (https://maplesyrup-cs6.hatenablog.com/entry/2020/08/07/001046)
Bloom + Post Processing 光の“にじみ” に対する最初のアプローチ 一般的には、Bloom + Post Processingが使われる
元のレンダリング画像 + 発光部分を抽出しぼかした画像 ⇒ 光のにじみを再現 + レンダリング結果 抽出 ぼかし 合成 Post Processing後の見え方
Bloom + Post Processing 光の“にじみ” に対する最初のアプローチ VRChat公式ドキュメントで、AndroidとQuestでは使用不可と明記 “Post processing systems
are disabled completely on Android and Quest. The GPU is not designed to handle these effects very well.” Android Content Limitations | VRChat Creation (https://creators.vrchat.com/platforms/android/quest-content-limitations/) ✘ ✘ ✓
FakeBloomShader 光の“にじみ” に対する次のアプローチ HOTATE's VIRTUALABさん配布の、Post Processing なしでBloomを実現可能なシェーダ FakeBloomShader - HOTATE's
VIRTUALAB - BOOTH (https://booth.pm/ja/items/1382159) ジオメトリシェーダを使って、元のメッシュを複製・拡大・多層化し、徐々に透明にする実装 元メッシュ メッシュの複製・拡大・多層化 複製 第1層 第2層 第3層 第4層 N層 外側になるほど層の透明度を上げる
FakeBloomShader 光の“にじみ” に対する次のアプローチ Androidは機種によっては描画可能 QuestのGPUはジオメトリシェーダ非対応のため、残念ながら描画不可能 処理内容そのものは大変参考になった ⇒ ジオメトリシェーダなしで似た処理ができないか? ✘ ✓
✓
描画パスを複製 光の“にじみ” を実現した最終的なアプローチ 描画パスを層の数だけコピペすることで、FakeBloomShaderとほぼ同じ処理を実装 ✓ ✓ ✓ ジオメトリシェーダ: for文を使って層を増やせる ⇒どれだけ層を増やしても、シェーダの行数は一定
描画パスは調べた限りではfor文で複製不可 ⇒層を増やすほどシェーダの行数が増大… 力技的であり非効率であるものの、一応実装に成功 + + … + 1層目 2層目 N層目
Questでも 光のにじみ / Bloom っぽい表現を実現
まとめ • 核融合プラズマの規模感を実感してもらうにあたって、 PC以外のデバイスでもリッチなプラズマ表現を見せたかった • 光のにじみ / Bloom 表現に苦労したが、先人の知見を参考に力技で実装 •
もっと良い実装方法をご存知の方がいれば、知恵をお借りしたい
試してみたい方向け • https://gist.github.com/IWMTT/a01f58e074f1a4d4572ebc79e465f648