2009年03月10日

vectexのソースコード

前々回の記事の中でも書きましたが、vectexはAGG SVG Viewerのソースコードを使って書かれています。実際に両者のソースコードを見比べてみると、かなりの部分が共通しています。vectexはオープンソースの既存のコードがとても効率よく使われていて、vectexの作者のmgmalheirosさんが自分で書き起こしたコードは意外なくらいに少ないです。
pic090310_01.jpg

上の図で、赤い部分は既存のコードがそのまま利用されているファイル、青の部分が新規に作成されているファイルです。
「agg-2.5」「blender」「expat-1.95.8」というフォルダの中身については、「agg-2.5」は2D描画のためのライブラリのソースコード、「expat-1.95.8」にはXML構文解析のライブラリのソースコードがまるごと入っていて、サンプルファイルが省かれたりはしていますが、基本的に中身は配布されているものそのものです。「blender」フォルダにはBlenderのテクスチャプラグイン開発用のヘッダファイルなどが入っていますが、こちらも配布されているものがそのままコピーされているだけです。

vectexのトップディレクトリには「.h」「.cpp」「.c」という拡張子のファイルが10個あるわけですが、このうちの7個はAGGのSVG Viewerのサンプルコードと同じ名前になっています。Meldという差分表示ツールを使ってみると、実際には少しだけ修正されているところがあるようですが、ほとんどそのままで使われています。
pic090310_02.jpg

SVGファイルの読み込みから描画までのほとんどの部分がAGG SVG Viewerのコードそのままということは、もとのAGGのファイルが更新されてより多くのSVGの機能を使えるようになれば、ほとんど自動的にVectexでもその恩恵を受けることができるということになります(使用変更とかがあると必ずしもそうはならないかもしれませんが...)。もしそうなると嬉しいのですが、残念ながらAGGのサイトを見た感じでは2006年10月を最後に更新されていないようです。
そして、vectexの方も公開されてから約1年になりますが、BlenderArtist.orgのスレッドの状況などからすると、更新の可能性は低そうに思えます。

私はこのプラグインの機能は、このまま埋もれさせてしまうのはあまりにも惜しいと思います。できれば、マルチスレッドに対応し、通常のSVGファイルならどれでも読み込めるようにして、普通のテクスチャと同じ感覚で使えるところまで発展させたいところです。
ちょうど私は3DCGのプログラミング技術をもう少しレベルアップしたいと思っていたところなので、しばらくの間、このプラグインを改良することを目標にしてプログラミングの勉強を進めてみようと思っています。

とはいっても、現時点ではプラグインというものを自分で作ったことさえ一度もなく、ほとんどプログラミング初心者という感じ(実際にはプログラミング歴数十年なのですが、初心者レベルから全然進歩していない)ですので、結局、何も変えることができないままで終わってしまうかもしれません。もし、そうなってしまったら、すみません。
posted by mato at 23:46| Comment(0) | Blender | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。