2010年4月11日日曜日

FreeStyleでblenderのマテリアル色の線を描画する方法

スタイルモジュールをいじるのも、少しは慣れてきたので公式ページのサンプル
参考にいろいろと試している今日この頃。

それなりに知識が増えた状況で見直してみると初めて気づくことも多い。

以前なんとなくこのサンプルを見たときには”線の色が変えられるんだ”程度にしか
思ってませんでした。

が、最近になって改めてそのサンプルのスタイルモジュールの中身を見てみると
blenderのオブジェクトのマテリアルの色を読んで、FreeStyleでの線の描画に使う
色に割り当てていることに気付く。

そんなことができたとは。

上記のスタイルモジュールのコードの中でpyMaterialColorShader()がマテリアルの
色を読んでFreeStyleの線の描画色に割り当てるシェーダらしい。

というわけで早速自分のスタイルモジュールに移植してみた。
まずはblenderでマテリアルをtoonシェーダにしただけのもの。



それに今回のスタイルモジュールを使用してFreeStyleでのエッジを追加



ちゃんとオブジェクトの色がFreeStyleの描線に反映されています。
FreeStyleによる描線だけだとこんな感じに。



スタンプとか版画っぽいかもしれない。
pyMaterialColorShaderを無効にすればいつもの黒一色の線に元通り。



今回はマテリアルの色をFreeStyleから参照したわけですが、それ以外にも
FreeStyleからblender上でオブジェクトが持っている情報にアクセス出来る
ってことなのかも。


公式ブログでの開発レポートを見ると、スタイルモジュールの文法の一部仕様
変更と、それに合わせてドキュメントシステムの刷新が今後予定されている模様。

レポートでも触れられているように公式ページの文書やサンプルには最新の
blender統合版のFreeStyleに対して内容が古くなっているものもあったりします。
となるとサンプルや参考文書も更新されるんじゃないかと期待してみたり。
新たに理解できることも増えるかもしれないんで楽しみ。


・忘れた頃にweb拍手のコメントのお返事やら

>はじめましてこんにちは。やっぱり、0.7速くなってますよね。
>GPUレンダラ版のほうもなかなか良いです。

どうもこんにちわ。LuxRenderの記事についてですね。良さげですよね0.7。
本体リリース直後にluxblendが更新されることがあるのでリポジトリの最新版
試してみるといいことがあったり、無かったりするかもしれません。

GPU版は手元にOpenCLが動かせる環境がないので試せてないのが残念。
通常版とOpenCL版がシームレスにタスクを分散処理できるようになれば
良さげなGPU載せたマシンをレンダサーバとして使ってみたいところです。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手