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
Sigma
October 10, 2022
Programming
0
77
ソースコードを読もう
Blenderのプラグインのソースコード読んだ話の触り
Sigma
October 10, 2022
Tweet
Share
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
100
Stable Diffusionで遊んでみた
seiyasugimoto
0
110
EVAフレームワーク
seiyasugimoto
0
78
SSR+SPA
seiyasugimoto
0
110
Nuxtにおける設計
seiyasugimoto
0
77
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
67
throttleすげぇぇぇ
seiyasugimoto
0
75
スマホでPythonしたい
seiyasugimoto
0
60
平文で保存するな!
seiyasugimoto
0
82
Other Decks in Programming
See All in Programming
Dive into gomock / Go Conference 2024
utgwkk
13
3.4k
Google I/O - 2024 What’s new in flutter
cybozuinsideout
PRO
2
110
短期AHCで勝つためのテクニック
shun_pi
3
1.6k
BigQueryとDataformとTROCCO®による事業グロース
nihemak
0
190
Automatisiere deine Prozesse mit GitHub Actions!
ahus1
0
260
GoのWasmでWebRTC P2Pで通信する
ponyo877
0
290
C++ MIX #11 これどう読むの...?
5mingame2
0
180
ソートできるUUID v7をJavaで使うときの話
yoshiori
7
4.9k
multipart/form-dataの省メモリパース / Go Conference 2024 Pre Party #gocon24_preparty
mazrean
0
310
End-to-End Encryption for Streaming Data Pipelines @ Berlin Buzzwords 2024
hpgrahsl
0
130
Goキャッシュライブラリgolang-lruをLet Read and Understand!!
taniyarn
2
180
Ruby の型に関する活動をやっている話 / Activities related to Ruby types
euglena1215
3
120
Featured
See All Featured
From Idea to $5000 a Month in 5 Months
shpigford
377
46k
The Pragmatic Product Professional
lauravandoore
28
6k
Building Your Own Lightsaber
phodgson
101
5.8k
RailsConf 2023
tenderlove
11
640
Happy Clients
brianwarren
93
6.5k
Mobile First: as difficult as doing things right
swwweet
218
8.7k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
The Invisible Side of Design
smashingmag
294
50k
Rails Girls Zürich Keynote
gr2m
91
13k
Code Review Best Practice
trishagee
57
16k
Optimising Largest Contentful Paint
csswizardry
14
2.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
27
2.4k
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軸それぞれに
まとめ • 便利なプラグインのソースコードを覗いたら色んな数学が使われてた ◦ ガウシアンフィルターの応用 ◦ スプライン補間 ◦ ベクトル関連色々 ◦
行列