CGソフトの内部構造が知りたかったので、Blenderのソースを読んでみました。ドキュメントを色々探したところ、blender.org – Architecture がBlenderの内部構造解説の決定版ぽいです。
ここを読めばアナタも Blender Master!! …というわけにはいかないですが、解析のための大きな手掛かりになります。
特にページ下部にあるソースコードの構造図はものすごく参考になります。この手の解説は古すぎて最新版では全く参考にならないことが多いのですが、私が見た限りこの図の通りの構造になっているようです。
あとは、Adding new Space Window のように、機能を追加する際の手順を解説してあるドキュメントを参考にするとデータや関数の相互関係の理解がしやすいです。で、これを読んでわかったんですが Blender って機能拡張しようとするとかなり厄介です。ソースコードのあちこちに依存関係が散らばっていて、それを把握するだけでも一仕事です。最近であればきちんとクラス化して、必要な部分を埋めていくだけで機能拡張できるようなアーキテクチャにするんでしょうがBlenderは定数定義、新関数の定義の嵐で目が潰れそうですwww
このあたりまで目を通せれば当初の目的は大体達成できたので、これぐらいでやめておきます。
Blender は思っていた以上にドキュメントが充実していて、比較的簡単にソースコードを読むことができたのはうれしい誤算でした。オープンソースの統合型3DCGソフトなんて他にないので、とても助かります。
ただ、内部の構造が余りにもスパゲティすぎるのが困りものです。ガイドがないと手も足も出ません(苦笑。
アーキテクチャも柔軟性に欠けるし、コアから書きなおしたほうがいいんじゃないか?というのが正直な感想です。
(追記)Hackers Guideに、実際にコードを書く時の情報がまとまってます。
すげぇぇぇぇぇ
よくぞそこまで深く!
コード読んでみようと思ったことは有りますが、全然無理でした。難しすぎてwwww
非常に参考になります。
結局ドキュメントを見つけてきて、それに沿ってソースを確認しただけです。
私もドキュメントがなかったら途中で飽きて投げ出してましたww