Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ソースコードを読もう
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sigma
October 10, 2022
Programming
0
91
ソースコードを読もう
Blenderのプラグインのソースコード読んだ話の触り
Sigma
October 10, 2022
Tweet
Share
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
210
Stable Diffusionで遊んでみた
seiyasugimoto
1
140
EVAフレームワーク
seiyasugimoto
0
110
SSR+SPA
seiyasugimoto
0
150
Nuxtにおける設計
seiyasugimoto
0
95
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
84
throttleすげぇぇぇ
seiyasugimoto
0
82
スマホでPythonしたい
seiyasugimoto
0
71
平文で保存するな!
seiyasugimoto
0
91
Other Decks in Programming
See All in Programming
AHC061解説
shun_pi
0
400
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
140
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
0
330
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
660
Windows on Ryzen and I
seosoft
0
330
CSC307 Lecture 14
javiergs
PRO
0
480
SourceGeneratorのマーカー属性問題について
htkym
0
200
Claude Codeログ基盤の構築
giginet
PRO
7
3.5k
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
280
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
220
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
300
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
160
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
150
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
110
Raft: Consensus for Rubyists
vanstee
141
7.4k
Google's AI Overviews - The New Search
badams
0
930
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
How to build a perfect <img>
jonoalderson
1
5.3k
GraphQLとの向き合い方2022年版
quramy
50
14k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
290
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
290
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
310
Transcript
ソースコードを読もう Blenderのプラグインの場合
読むプラグイン 「add_curve_ivygen.py」 • Ivy(つた)を生やすプラグイン • つたの写真→
どういう風に使えるか • 動画を作ってみました
None
ソースコードを眺める
None
ガウスの名前が出てきた • 読めないかも… ◦ 19世紀の大数学者 ◦ 複雑な理論に基づいている可能性 • 業績が多くて名前だけでは絞れない
ヒントを探す • 数値積分っぽいコードを発見 ◦ パラメータを乗じて総和取ってる ◦ idxとかあるし多分数値積分 (ガウス求積)やろ • 完全に数値積分だと勘違いしてハマった
◦ ガウス求積の変形を調べても合うパラメータが無い ◦ ノードを求めるアルゴリズムが書いてない ◦ そもそも何を積分してるんや
もっとヒントを探す • 「うんたらvector」が「smoothうんたらvector」に ◦ 滑らかにするアルゴリズムか … • filterって書いてある ◦ ガウシアンフィルターは平滑化処理
… • idxはこれなんだろう ◦ indexをidxって略すことがあるらしい、しらないよ … ◦ 0以上 numnode-1 以下ならI+k-5 ◦ forループは11回まわる ◦ つまり、現在のノードを中心に手前のノード 5個と後ろのノード 5個を 合わせた11ノードに対しての処理 • ガウシアンフィルターとは ◦ ガウス関数(ガウシアン)を元にした主に画像などに使われる平滑化 フィルター ◦ 「ガウシアンぼかし」とも ◦ GIMPにも実装されてる
ガウシアンフィルター(GIMP: ぼかし半径10)
一次元のガウシアンフィルターx3 • 一次元のガウシアンフィルターが実装されていた ◦ つたがガタつかないように、 x軸のバラつき、y軸のバラつき、z軸のバラつきをそれぞれ平滑化してい る。
こんな感じの処理をxyz軸それぞれに
まとめ • 便利なプラグインのソースコードを覗いたら色んな数学が使われてた ◦ ガウシアンフィルターの応用 ◦ スプライン補間 ◦ ベクトル関連色々 ◦
行列