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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Sigma
October 10, 2022
Programming
91
0
Share
ソースコードを読もう
Blenderのプラグインのソースコード読んだ話の触り
Sigma
October 10, 2022
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
96
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
84
throttleすげぇぇぇ
seiyasugimoto
0
82
スマホでPythonしたい
seiyasugimoto
0
71
平文で保存するな!
seiyasugimoto
0
92
Other Decks in Programming
See All in Programming
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
130
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
350
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
3
770
AIエージェントで業務改善してみた
taku271
0
500
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
850
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
320
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
140
Rethinking API Platform Filters
vinceamstoutz
0
11k
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.8k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
510
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Code Review Best Practice
trishagee
74
20k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
130
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
510
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
First, design no harm
axbom
PRO
2
1.2k
エンジニアに許された特別な時間の終わり
watany
106
240k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
270
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Navigating Team Friction
lara
192
16k
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軸それぞれに
まとめ • 便利なプラグインのソースコードを覗いたら色んな数学が使われてた ◦ ガウシアンフィルターの応用 ◦ スプライン補間 ◦ ベクトル関連色々 ◦
行列