狠狠撸
Submit Search
叠濒别苍诲别谤ソースコート?リーテ?ィンク?
Oct 31, 2014
14 likes
5,248 views
Tetsuo Mitsuda
本日の资料。
Education
Read more
1 of 64
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
More Related Content
What's hot
(20)
PPTX
竞技プログラミングのための颁++入门
natrium11321
?
PPTX
Sql server 2017 からはじめる graph データベース
Oda Shinsuke
?
PDF
距离まとめられませんでした
Haruka Ozaki
?
PDF
効果測定入門 Rによる傾向スコア解析
aa_aa_aa
?
PDF
Chapter9 一歩進んだ文法(前半)
itoyan110
?
PDF
オブジェクト指向プログラミングの现在?过去?未来
増田 亨
?
PDF
静的型つき組版処理システムSATySFi @第61回プログラミング?シンポジウム
T. Suwa
?
PDF
第126回 ロボット工学セミナー 三次元点群と深層学習
Naoya Chiba
?
PDF
Prml6
Arata Honda
?
PPTX
単纯パーセプトロン
T2C_
?
PDF
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
Deep Learning Lab(ディープラーニング?ラボ)
?
PDF
PRML 8.2 条件付き独立性
sleepy_yoshi
?
PDF
PyMC mcmc
Xiangze
?
PPTX
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
U-dai Yokoyama
?
PDF
オブジェクト指向エクササイズのススメ
Yoji Kanno
?
PDF
距离と分类の话
考司 小杉
?
PDF
深層学習 勉強会第5回 ボルツマンマシン
Yuta Sugii
?
PDF
狈耻尘笔测闇入门
Ryosuke Okuta
?
PDF
鲍苍颈迟测开発で使える设计の话+窜别苍箩别肠迟の绍介
torisoup
?
PDF
20190307 visualslam summary
Takuya Minagawa
?
竞技プログラミングのための颁++入门
natrium11321
?
Sql server 2017 からはじめる graph データベース
Oda Shinsuke
?
距离まとめられませんでした
Haruka Ozaki
?
効果測定入門 Rによる傾向スコア解析
aa_aa_aa
?
Chapter9 一歩進んだ文法(前半)
itoyan110
?
オブジェクト指向プログラミングの现在?过去?未来
増田 亨
?
静的型つき組版処理システムSATySFi @第61回プログラミング?シンポジウム
T. Suwa
?
第126回 ロボット工学セミナー 三次元点群と深層学習
Naoya Chiba
?
Prml6
Arata Honda
?
単纯パーセプトロン
T2C_
?
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
Deep Learning Lab(ディープラーニング?ラボ)
?
PRML 8.2 条件付き独立性
sleepy_yoshi
?
PyMC mcmc
Xiangze
?
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
U-dai Yokoyama
?
オブジェクト指向エクササイズのススメ
Yoji Kanno
?
距离と分类の话
考司 小杉
?
深層学習 勉強会第5回 ボルツマンマシン
Yuta Sugii
?
狈耻尘笔测闇入门
Ryosuke Okuta
?
鲍苍颈迟测开発で使える设计の话+窜别苍箩别肠迟の绍介
torisoup
?
20190307 visualslam summary
Takuya Minagawa
?
Similar to 叠濒别苍诲别谤ソースコート?リーテ?ィンク?
(20)
PDF
20120706-readablecode
Masanori Kado
?
PDF
PHPカンファレンス関西 2011
Takako Miyagawa
?
PDF
WEBデザイナーのためのエディタ入門 先生:金澤 直毅
schoowebcampus
?
PDF
奥别产デザイナーのためのエディタ入门
Naoki Kanazawa
?
PDF
Android Framework Code Readingのしおり ver 1.2
Shinobu Okano
?
PDF
NGN2012B 発表資料
Kenji Nagase
?
PDF
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
?
PDF
リーダブルコードを読んだ后
Kouhei Sutou
?
PDF
フ?ロク?ラミンク?講座 #3 コート?を書く
ZOIdayo
?
PDF
别苍肠丑补苍迟.箩蝉を使った子ども向けプログラミングワークショップ讲义内容
Yuki Tanaka
?
PDF
顿箩补苍驳辞のススメ
Alisue Lambda
?
PDF
Htmlコーディングの効率化 前編
Yasuhito Yabe
?
PDF
贬辞飞迟辞よいデザイン
Hiroki Yagita
?
PDF
ソフトウェア設計原則【SOLID】を学ふ? #2 インターフェイス分離の原則.pdf
耕二 阿部
?
PDF
叠濒别苍诲别谤とコード
Tetsuo Mitsuda
?
PDF
捕鲸!详解诲辞肠办别谤
雄哉 吉田
?
DOC
パッチを书いてみよう(第17回狈蝉别驳勉强会尝罢)
Masahiro Yamada
?
PDF
鲍苍颈迟测でオニオンアーキテクチャ
torisoup
?
PPTX
20100324 勉強会資料(ドメイン駆動)
Masayuki Kanou
?
PDF
Programming camp code reading
Hiro Yoshioka
?
20120706-readablecode
Masanori Kado
?
PHPカンファレンス関西 2011
Takako Miyagawa
?
WEBデザイナーのためのエディタ入門 先生:金澤 直毅
schoowebcampus
?
奥别产デザイナーのためのエディタ入门
Naoki Kanazawa
?
Android Framework Code Readingのしおり ver 1.2
Shinobu Okano
?
NGN2012B 発表資料
Kenji Nagase
?
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
?
リーダブルコードを読んだ后
Kouhei Sutou
?
フ?ロク?ラミンク?講座 #3 コート?を書く
ZOIdayo
?
别苍肠丑补苍迟.箩蝉を使った子ども向けプログラミングワークショップ讲义内容
Yuki Tanaka
?
顿箩补苍驳辞のススメ
Alisue Lambda
?
Htmlコーディングの効率化 前編
Yasuhito Yabe
?
贬辞飞迟辞よいデザイン
Hiroki Yagita
?
ソフトウェア設計原則【SOLID】を学ふ? #2 インターフェイス分離の原則.pdf
耕二 阿部
?
叠濒别苍诲别谤とコード
Tetsuo Mitsuda
?
捕鲸!详解诲辞肠办别谤
雄哉 吉田
?
パッチを书いてみよう(第17回狈蝉别驳勉强会尝罢)
Masahiro Yamada
?
鲍苍颈迟测でオニオンアーキテクチャ
torisoup
?
20100324 勉強会資料(ドメイン駆動)
Masayuki Kanou
?
Programming camp code reading
Hiro Yoshioka
?
Ad
More from Tetsuo Mitsuda
(15)
PDF
叠濒别苍诲别谤で和柄をつくるお话
Tetsuo Mitsuda
?
PDF
20170210 security talos
Tetsuo Mitsuda
?
PDF
叠濒别苍诲别谤アーチストに捧げる10の言叶
Tetsuo Mitsuda
?
PDF
20150829 buturi
Tetsuo Mitsuda
?
PDF
273new
Tetsuo Mitsuda
?
PDF
flip the chabudai
Tetsuo Mitsuda
?
PDF
From A to B
Tetsuo Mitsuda
?
PDF
“Blender初心者が知っておくべきこと” のいくつか
Tetsuo Mitsuda
?
PDF
フ?レンタ?ーを顿颈蝉ってみる
Tetsuo Mitsuda
?
PDF
Submitwordpresspy
Tetsuo Mitsuda
?
PDF
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
?
PDF
Podiff20120127
Tetsuo Mitsuda
?
PDF
20111112 kofblender
Tetsuo Mitsuda
?
PDF
20110802proporsal bljpnze
Tetsuo Mitsuda
?
PDF
Blenderde Qr Code
Tetsuo Mitsuda
?
叠濒别苍诲别谤で和柄をつくるお话
Tetsuo Mitsuda
?
20170210 security talos
Tetsuo Mitsuda
?
叠濒别苍诲别谤アーチストに捧げる10の言叶
Tetsuo Mitsuda
?
20150829 buturi
Tetsuo Mitsuda
?
273new
Tetsuo Mitsuda
?
flip the chabudai
Tetsuo Mitsuda
?
From A to B
Tetsuo Mitsuda
?
“Blender初心者が知っておくべきこと” のいくつか
Tetsuo Mitsuda
?
フ?レンタ?ーを顿颈蝉ってみる
Tetsuo Mitsuda
?
Submitwordpresspy
Tetsuo Mitsuda
?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
?
Podiff20120127
Tetsuo Mitsuda
?
20111112 kofblender
Tetsuo Mitsuda
?
20110802proporsal bljpnze
Tetsuo Mitsuda
?
Blenderde Qr Code
Tetsuo Mitsuda
?
Ad
叠濒别苍诲别谤ソースコート?リーテ?ィンク?
1.
第1回 Blenderソースコードリーディング
2.
お前、誰よ? ● みつだ
と言います。 ● Twitter ID = @lab1092 ● ただのBlenderヲチャー – この最近はSphinxベースになった Blenderのマニュアルに関心が移ってます ね
3.
コード リーディング? ”コード
リーディング(code reading)とはプログラムのソース コードを読み解くことです。他人の プログラムをはじめ、自分が昨日書 いたプログラムを読むのです。” コード リーディングについて - http://www.codereading.com/codereading/about_code_reading.html
4.
「ニッチだ…ものすげえニッチだ…」
5.
“コードは小説より面白い” ”優れたコードを読むことを習慣づ けた人は、間違いなくより優れた
コードを書くようになります” Code Reading―オープンソースから学ぶソフトウェア開発技法(毎日コミュニケーションズ) 表紙より
6.
「マジで?」 blenderのソースコードって手本になるようなコードか知らんけど?
7.
対象となる人 ● Blenderの開発で「貢献したい」と漠然と考
えている人 ● 中の仕組みを知りたい人 ● バグトラッカーで繰り広げられている何か、 の先を見たい人 ● 「開発者の気持ちを知りたい」というデザイ ナー?アーティストの人
8.
Blender のソースコードを 読んでみよう
- の前に済ませておきたいこと -
9.
目標 ①Blenderのソースコードを展開 して、
②そのソースコード(.c)を ③テキストエディタを使用して ④眺める入り口まで
10.
- 導入部 I
- 予習しておいてもいいかもしれない、 さわりの部分。 これを終わらせてもまだ始まってもいない状態。
11.
準備 ①コードハイライト表示できるテキ ストエディタを用意する
②手がかりになるサイトを見つける ③ソースコードをダウンロードする
12.
準備 ①コードハイライト表示できるテキ ストエディタを用意する
②手がかりになるサイトを見つける ③ソースコードをダウンロードする
13.
テキストエディタを用意 コードハイライト表示機能のあるテキス トエディタがあるとはかどります。
14.
どのエディタがいいの? 「どのエディタがいいですか?」ですっ て?それは宗教戦争になる恐れがあるの
で、ここでは特定の「おすすめ」は差し 控えさせていただきます。 「プログラム エディタ」でググろう。
15.
ちなみに私は罢别虫迟奥谤补苍驳濒别谤使ってます。
16.
準備 ①コードハイライト表示できるテキ ストエディタを用意する
②手がかりになるサイトを見つける ③ソースコードをダウンロードする
17.
困った時のBlenderWiki! ソースコードそのものを解説しているわ けではないですが、概念をつかむための
資料があります。 Code Documentation →http://wiki.blender.org/index.php/Dev:Source/Architecture
18.
ふむふむ…古くない? Diagram showing
code layout
19.
新しい機能は Dev:2.6 から。
Blender 2.6 development documentation index →http://wiki.blender.org/index.php/Dev:2.6 例えば BMesh →http://wiki.blender.org/index.php/Dev:2.6/Source/ Modeling/BMesh/Design
20.
ソースコードを読むための資料が 全て用意されていると思ったら 大間違いです。
- ここをどう解決するか、多分ここがポイントになります -
21.
違いの分かる男は… 履歴を追うぜ。 Blenderのリポジト
リの下の方とか →https://developer.blender.org/diffus ion/B/
22.
いや、そうなってくると 「ソースコードリーディング」 ではなくデバッグか何か別のもの
ですから飞飞飞
23.
準備 ①コードハイライト表示できるテキ ストエディタを用意する
②手がかりになるサイトを見つける ③ソースコードをダウンロードする
24.
「tarボール」をダウンロード バージョン毎のソースコードのアーカイ ブが置かれている場所
Index of /source/ →http://download.blender.org/source/
25.
tar.gz? tar.bz2? ソースコードのアーカイブファイルで
す。たくさんのファイルを1つに集めて サイズを小さくするために圧縮したもの です。ソースコードを見るには、この ファイルを展開しなくてはなりません。
26.
アーカイブソフト ● Windows
– Lhaplus など? ● Mac OS X - アーカイブユーティリ ティ(標準機能) ● Linux – コマンドラインでなんとか してください?(GUIのものもあったは ず)
27.
ファイル展開、できましたか? ● *.c
*.h などのファイルとディレクトリ がそこにできていると思います。 ●ぶっちゃけ、どこに展開してもらっても 構いません(この段階では)。 ●ここからはじまります。
28.
git clone? ●
ああ、そんな方法ありますね。 ● このスライドでは「ソースコードのtar ボール」で済ませちゃってます。 ● とりあえず「読むところ」まで、ですの で。
29.
というマエフリ。
30.
- 導入部 II
- これでコードを読めると思ったのかい? HAHAHA!!甘い、甘いぜ。 金平糖並みだぜ。
31.
最初に見るものは? ●??Dみたいな、コレ読んどけ、 「れどめ」的なものはあるの?
●ありますよ。(その振りおかしいw) いくつか。ビルド関連からかな? ● えっ、いくつか?
32.
Linuxだと ● build_files/cmake/exampl
e_scripts/cmake_linux_ins tall.txt 見るとビルドの流れがわ かるかと。 ●ん? cmake?
34.
CMake ●ソフトウェアのビルドの自動化 ツール
●「ビルド環境情報」と「ビルドに 必要な処理」の面倒を見てくれま す(configure,make)。 ●大まかにわかってればいいよ?
35.
doc/build_systems/cmake.txt ● cmakeするときのビルド手順のガイド
だね。 ● scons.txtっていうのもあるけど? ●どちらもビルドするときの文書だね。 ●ビルド?
36.
「ビルド」知らないヤツはさすがに、ここにいな いだろうということで、書いてきませんでした。 必要があったら口頭で。
37.
CMakeLists.txt ● CMakeの設定とか書くところ
●「何の機能を入れる?」ってとこ ろですね。
38.
最初に见ておくファイルはここまで。
39.
2.72フォルダツアー。
40.
TextWranglar ● 必要のある時にエディタで見せようと思いま
す。 ● (自分的備忘)フォルダ表示モードは View> Go Here in Disk Browser
41.
ルートフォルダ
42.
GNUmakefile ●これ、なんだろう?liteとか headlessとかあるけど?
● cycles単体で、とかコンパイル するとか、その辺だと思います よ?
43.
externフォルダ ●ライブラリ類ですね。 ●
externフォルダは、あまり気に しなくてもいいでしょう…?
44.
internフォルダ ●いろいろありますね。 ●
'ghost'っていうのがウィ ンドウマネージャだったと 思います。 ●あと'cycles'とかもありま すね。
45.
诲辞肠フォルダ
46.
mystery_of_the_blend.html ● doc/blender_file_format
にあります。 ●ブラウザで開いてみてください。
47.
source/blender フォルダ
48.
本日のメインディッシュ? ●ソースコード(*.cとか*.h)は機能 別に分けられて格納されているよ
うですね。 – ./<機能名>/*.h – ./<機能名>/intern/*.c
49.
Blender のソースコードを 読んでみよう
- もうそろそろじゃね? -
50.
始めましょうか。 ● blenfont/intern/blf_dir.c
● *blf_dir_search() を見よう
51.
さてここで悲しいお知らせ ● “BLI_join_dirfile”ってなんね?
●かんすう? ●このファイルには無いとよ? ●他のファイルも見んといかんと? テキストエディタだけじゃ太刀打ち出来ない…
52.
そこに颯爽?と現れる「黒い画面」 ●「コンソール」とか「ターミナ ル」とか「コマンドプロンプト」
とかいろいろ呼ばれます。 ●コマンド入力してみよう。
53.
grepコマンド ● “cd
source/blender” ● “grep -rn BLI_join_dirfile”
54.
関数があるところを確認 .//blenlib/intern/path_ util.c
ファイルパス 1904 行数 void BLI_join_dirfile(char *__restrict dst, const size_t maxlen, const char *__restrict dir, const char *__restrict file) 関数の型宣言していると ころ(常にvoidが来ると は限りませんよ?)
56.
他にもいろいろありますけど ● 大まかにこんな感じです。流れを追っ
ていくのが大体の感じ。 ● 他にもおぼえることありますよ? – if文の分岐などの制御文
57.
そういえば関数名の「BLI」って? ●関数名の名前に規則を付けていま す。
●どのモジュールで定義されている かがわかるようになっています。 –blenlib → BLI –blenkernel → BKE
58.
ctags ● ああ、そういえば「関数宣言している
ところに飛べる機能」とか持っている テキストエディタ、あるね。 ● “ctags”でググってみよう。
59.
まとめ
60.
● ソースコードリーディングの定義 ●
読むための準備 – テキストエディタ/サイト/ソースコード ● Blenderのソースコード ● 最初に見るもの ● 関数? ● grepコマンド ● ctags?
61.
おまけ ● ん?
blenderって Cなの?C++な の? ● 2.72だと – “find ./ -name *.c | wc -l” 1142 – “find ./ -name *.cpp | wc -l” 1213
62.
おまけ2 ● 新しいBlenderのマニュアル
– http://www.blender.org/manual/ ● スマホでも見てね ● Wiki→Sphinxベースに。 ● ただし英語(国際化の話はまだ?) ● bf-docboardで何かやってるよ
64.
Thanks4Watching & Happy
Blending!!
Download