2010年8月28日土曜日

光源波長の色見本まとめ

LuxRenderではライトのテクスチャにlampspectrumを指定すると、光源の波長を
プリセットから選択して設定することができます。

こんな感じにずらっとプリセットがあります。


様々な光源の波長が用意されているのですが、メニューの名前だけではいまいち
光の感じや色みが分からないのでサンプルのシーンをレンダしてまとめてみました。
画像が多くページも長くなったのでこちらに掲載しています。

上記リンクの方は自分のメモ代わりのちょっとしたコメントや解説を記載していますが、
とりあえずサンプルのレンダ画像が一覧で見たいという場合もありそうなので
レンダ画像のサムネイルを一覧にまとめたものも作ってみました。

光源の波長をlampspectrum、光の分布をIESファイルで設定すると、リアルかつ
バリエーションに富んだランプが簡単にセッティングできるようになるのでお勧めです。

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

2010年8月6日金曜日

blender2.53でLuxRender v0.7を使う方法

以前blender2.5系でLuxRenderを使用する方法について記事を書きましたが、それから
数ヶ月が過ぎblenderも2.53へとバージョンが上がりいろいろと変更がありました。
2.5系でLuxRenderを使用するためのエクスポータの導入に関しても変更があったので
新にblender2.53でLuxRenderを使う方法をまとめてみました。

今回使用したのはblender2.53開発版(rev.31082)とLuxRender v0.7final、エクスポータ
関連はluxblender25、ExporterFrameworkともに現時点で最新の開発版をダウンロード
して使用しました。OSはUbuntu10.04を使用していますが、他のOSでも手順はほぼ同様
のはずです。

というわけで実際の手順を説明していきます。

1. blender2.53を準備する

まずはblender2.53の入手です。
自前でビルドするなり、http://www.graphicall.org/builds/からダウンロードしてきます。
リビジョンはこちらで使用したrev.31082か、よりあたらしいビルドであれば問題ないかと。
もちろん既に条件をみたすビルドを使用しているのであれば、それを使用して構いません。

公式配布の2.53は使用していないので何ともいえませんが、もしかしたら大丈夫かも。


2. luxblend25のダウンロードとインストール

blenderからLuxRenderにシーンを書き出すためのエクスポータがluxblend25です。
http://src.luxrender.net/luxblend25からダウンロードしてきます。
ブラウザで上記URLを開くとページの上の方に"bz2 | zip | gz"と書かれているので都合の
いい圧縮形式を選択してダウンロードします。

ダウンロードしたファイルを展開した中にある./src/luxrenderのフォルダをまるごとblenderの
スクリプトファイルのインストール先にコピーします。スクリプトのインストールパスを変更して
いなければblender本体の実行ファイルがある場所の2.53/scripts/ioにコピーすればOKです。


3. ExporterFrameworkのダウンロードとインストール

luxblend25の動作には別途配布されているExporterFrameworkが必要です。
ExporterFrameworkはhttp://github.com/doughammond/exporterframeworkで配布されています。
同じくブラウザでページを開き、ページ右上の"Download Source"をクリックすると
圧縮形式をたずねるウインドウが表示されるのでzipかtar、都合のいい方を選びます。
ダウンロードしたファイルを展開すると中に2つのフォルダと1つのファイルが含まれています。
その中で必要になるのはefフォルダだけです。そのフォルダを先ほどのluxblend25と同様に2.53/scripts/ioにコピーすればOK。

このExporterFrameworkの配布元が前回の記事の時から変更になっており、以前の配布元のhttp://ef.beulahelectronics.co.uk/hg/efでは最終更新が2010年5月ですが、今回使用した
新たな配布元サイトでは2010年8月に更新されています。
旧配布元の古いファイルではblender 2.53(rev.31082)ではluxblend25が正しく動作しませんでした。
また公式ドキュメントを確認したところ、luxblend25の導入についてのページには旧配布元の
URLが記載されていたので注意が必要です。まぁそのうち更新されるとは思いますが…。


4. 確認とテスト

以上の作業の結果、スクリプトのインストール先のio以下にefとluxrenderの二つのフォルダが
コピーされていれば準備はOKです。blenderでの設定や使用方法については下記の記事で
紹介していますのでそちらを参考に。

blender2.5でもLuxRenderが利用可能に。
luxblend25でポータルを使う。が、その前にGUIが表示されず。



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

2010年8月2日月曜日

Ubuntu10.04でAMDのグラフィックドライバ更新してみた

ドライバのダウンロードはAMDのサポートページから。

Linuxでのドライバインストールについては上のページからもリンクされてるこちら
とても詳しい。Ubuntuの場合は各バージョンごとにインストールの説明がされており、
10.04はこちらのページにまとめられている。
十分な説明と具体的な作業やコマンドが記載されているのでとても助かる。
上記ページを見れば済むのでここでは詳細は書かないけれど
手順としては
  1.OS標準のドライバや不用になるパッケージの削除
  2.AMDのサポートページからダウンロードしたファイルからdepパッケージの作成
  3.depパッケージのインストールとxorg.confの初期化
  4.再起動
という具合で無事にドライバ更新完了。


ただ、更新後にOpenGLを利用するプログラムをビルドをすると-lGLがみつからないと
いわれてビルドに失敗するように・・・これは困った。blenderやLuxRenderもOpenGLを
使っているのでこの問題が発生。

念のため/usr/libを確認するとlibGL.so.1.2があり、libGL.so.1はそのリンクになっている。
libGLあるよなぁと思いつついろいろ調べてみるとこんなページを発見。
スレッドのタイトル"Make error: /usr/bin/ld: cannot find -lGL"って、まさにその状況。

で見ていくと下の方に
/usr/libでこれやってみ
$ sudo ln -s libGL.so.1 libGL.so
とのアドバイスが。

libGL.soが無いとダメなのか?と思いつつ試すと見事にビルドが通るようになりました。
めでたい。


しかし今度はLuxRenderで、起動してレンダリングは進んでいる様に見えるものの
レンダ結果が表示されるべき領域が真っ白のままという状況が発生。
端末からluxrenderを起動してみると"Unrecognised OpenGL version"とのメッセージが。
試しにwx版のluxrenderwxを使ってみると問題なく結果が表示され、レンダの進捗に
合わせて表示もちゃんと更新されていく。

調べてみるとQtのバグレポートのページにこんな報告が。

どうやらQt4.6はOpenGLのバージョンは3.xでないと対応していない模様。
次のQt4.7βでは既にOpenGL4.0対応のコードがマージされたようなので4.7待ちか・・。

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

こんなのつくってますという感じの体で

LuxRenderとかSmallLuxGPUとかで遊んでばっかで何も作っていないように見えて
実際何も作っていない、というほどの状況というわけでもない気がしなくもない。
完成するか分からんけどいまはこんな感じ。



twitterからの転載だけだとあんまりなんでこんなことをやってみた。 というかやってます。



作業前もしくは作業後にスクリーンショットを残しておき、あとからそれらを見ると
自分の作業のペースや進捗状況、スランプというかダレてる時期みたいなのが
客観的に把握できて、作業効率の改善につなげられるのではないか?という実験。

上の画像はそんなスクリーンショットをとりあえずImageMagickでまとめただけ。
すでにペースが落ち始めている気がする、とかいう噂があるような無いようなw



拍手お返事とか

>SmallLuxGPUでのパワーを期待してGeForce460を買ってみたんですがGPUスレッド数を上げると
>CPUスレッド側のパワーが落ちてトータルが頭打ちになっちゃう現象に困っていました
>帯域不足ですかね…?その辺の3DベンチだとハイパワーなんですがSLGでは9600GTと 460GTXが
>同じ程度か負ける程のスコアでしたよ

こちらの記事をみるとGF100からの派生アーキテクチャということもありよさげですよね。GF104。

帯域の影響なのか、影響があるとしてもどこの帯域がネックになっているのか等の詳細はなんとも
いえませんが、GPUアーキテクチャとアプリケーションのコードに対しての最適なGPUスレッド数と
いうのは存在するような気がします。といってもOpenCL始めたばかりでよく分かってないですがw。

たしかに最近のGPUについて3DMarkをはじめとするグラフィック評価用のベンチマークの結果と、
GPGPU用途での性能やベンチマーク結果が完全にイコールとならないような印象はあります。
そういった状況は当然といえば当然なんでしょうけど、OpenCLなどを利用したアプリケーションの
最適化や性能の評価手法などを考えると興味深いところです。

SLGはβ段階の開発版ということもありハードウェアの性能を引き出せていない可能性もあるかと。
またNvidia、ATIともにOpenCLのサポートはまだ始まったばかりといってもいい状況なので今後の
ドライバやOpenCL関連ライブラリの最適化がすすめば状況は変わってくるかもしれません。


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