2.29:radiosity render!

投稿日時 2003年09月04日 | カテゴリ: テストビルド

2.29:radiosity render!

手っ取り早くいえば、2.29で追加される予定のラジオシティレンダリングの先行公開です。
え?ラジオシティはもう実装済みじゃないのかって? そうです。ラジオシティは確かにすでに実装済みです。しかし、今度のは従来のような手続きなしで、直接レンダリングしてくれるのです!

コンパイルできる環境にある人とOSXの人はすでに体験済みだと思いますので、それ以外のWindow環境の方はelYsiunのこちらのスレッドで、ztonzy氏が配布されている(一番最初)、または、同スレッドの4ページでtheeth氏が配布されているバイナリをダウンロードして下さい。ただし、自己責任でお願いします。
そして、前述(もしくは下記翻訳)のblender.orgのスレッド内にton氏がサンプルの.blendファイルへのリンクを書かれていますのでそちらもダウンロードしてきて、先ほどのバイナリに読み込ませてレンダリングしてみて下さい。

私が長い間やりたかったことのために、やっと時間がとれました。
それが今bf-blender treeにあります。

新しいコードの動作:
ラジオシティツールのコアルーチンを利用し、それぞれのレンダリングするfaceの"emit material"と"radio material flag"の設定により、グローバルイルミネーション処理を繰り返すために使用されます。面ごとに高いエネルギー(emit)と小さな画像がレンダリングされ(hemicube)、他のfaceへエネルギーを「発射」するためのルッキングテーブル(早見表)となります。
最後にこのエネルギー ― 色 ― は、レンダリング中に直接ピクセルカラーに加えられ、グーローシェーディングされます。

今まではこれがレンダリングするfaceに終わっていたのが、すべてのBlenderの形状に働くことになります。(訳注:激しく意訳)

まだできないこと:
- faceのテクスチャの色の計算の取り込み。現在materialのRGB値をエネルギー分配のフィルタとして使用しています。
- 事前面分割処理。私にはまだこれが便利かどうなのか判りませんが…今のところ、影処理を高い精度で行いたい場合に少ない面数のモデルでは、調整する必要があることを意味します。
- unified render(これは私のtodoリストにあります)

lampなしでのレンダリング画像:
http://www.blender.org/bf/raptor.jpg

これは明らかな利点―ラジオシティ動画:
http://www.blender.org/bf/0001_0031.avi
http://www.blender.org/bf/0001_0040.avi
スペキュラは"no diffuse"をセットしたLampを追加して行います。

http://www.blender.org/bf/monkey.jpg
頭部の微妙な色合いに注目して下さい。これはいいおもちゃだ!

http://www.blender.org/bf/0001_0100.avi
あごに注目。これは明らかにhemicubeの近くを通過する時の問題です。

テストファイル:
http://www.blender.org/bf/room.blend
http://www.blender.org/bf/Raptor_radio1.blend

利用方法:
- Material毎に'radio'フラグにより、ラジオシティレンダリングの設定ができます。現在新しく追加されるMaterialにはデフォルトでONになっています。
- MaterialのAmbientスライダでラジオシティの影響の量がコントロールできます。
- ラジオシティレンダリングを有効にするためには、Display Buttons Window(F10)の"Radio"ボタンをセットします。
- Radiosity Buttons Windowは今は関連するラジオシティレンダリングオプションだけが表示されています。
"collect meshes"を押すと再びすべてのボタンを表示することができます。
- Meshの、MaterialのRadioが使用されているfaceは常に'autosmooth'ルーチンを読んでおり、これが鋭角(部屋の隅のような)だと頂点を共有しません。スムーズなモデル(例のraptorのような)にするには標準のスムージング角度を30〜45度にします。
- 処理を繰り返している間、ステップがコンソールに出力されています。私はBlenderにとってこれがBlender自身にもよりいいシステムだと思っています…。
- 最後に、コンソールに'unshot energy'の量が表示されていますが、これを'Convergence'ボタンの最小値に利用することができます。

技術的情報:
- 私はrenderfaceとrenderverticesを拡張する必要がありました…恥ずかしい!
Faceはポインタが一つ増え、renderverticesと4つのfloatになります…。
- hemicubeのサイズは今はシーン全体のboundboxを元にしています(その0.002)。これはもっと信頼性を向上すべきです…作業を終了するためには。
- faceが裏側になり消えてしまうラジオシティのバグを修正。
- Blenderのlinkの順番が変更になり、libradiosity.aがlibrender.aの後ろになりました。(明らかに新しい依存です!)blender/source/Makefileをチェックしてみて下さい。
- 新しいファイルが増えました:blender/source/radiosity/intern/source/radrender.c

全般:
私は皆さんと少しこのシステムで遊ぼうと思います。いい結果を得るのは簡単ではありません。単純な試行錯誤では無理でしょう…なにかいい知恵はありませんか?

-Ton-





Blender.jpにて更に多くのニュース記事をよむことができます
https://blender.jp

このニュース記事が掲載されているURL:
https://blender.jp/modules/news/index.php?page=article&storyid=895