2009年02月28日

プロプライエタリドライバ

サブOSとしてインストールしてあった「Open SUSE 11.1 x86_64」で、いつのまにかBlenderが起動しなくなっていました。
元々ビデオカードのドライバのインストールがうまくいかない状態だったのですが、もう一度ドライバをインストールし直そうと思いじっているうちに、X Window自体がまともに立ち上がらなくなり、修復をあきらめました。

私の使用しているPCにはATI(AMD)のRADEON HD4670というビデオカードを付けてあります。
Blenderを使用するにはnVidiaのビデオカードの方がいいというのは知っていたのですが、昨年秋の購入当時は最も新しいビデオカードで値段の割に性能がいいと評判だったため、ちょっと冒険してATIのビデオカードを買ってみました。
ちなみに、その前に使っていたのはnVidia Geforce7600GSのファンレスタイプで、PCショップで購入したショップブランドのPCに付属していたものです。

このATIのビデオカード、Windowsで使っている分にはそれほど気になることもなく普通に使えていたのですが、Linuxをインストールするとなると、新しいというのはかえって問題が起こる原因になったりします。

私は64bit版のLinuxを試そうと決めた後、最新バージョンのUbuntu8.10、Open SUSE11.1、Fedora10の3種類のディストリビューションでインストールを試しています。
Linuxでは最近はLive CDというタイプのインストールディスクを使うと、ハードディスクに一切インストールしない状態で一通りの機能を使用できるようになっています。
Fedora10では、このLive CDを使う事自体ができませんでした。
Ubuntu8.10ではLive CDは普通に使えたのですが、そこからインストールをしようとすると、途中で失敗しています。
Open SUSE 11.1はLive CDからインストールまで普通に実行できました。

Linuxの場合、ビデオカードのドライバはnVidiaやATIなどのメーカーが用意しているもの以外に、オープンソースとして開発されているドライバがあり、むしろそちらが標準のものとしてLinuxのディストリビューションに付属しています。
プロプライエタリドライバという言葉はWindowsだけを使用しているとあまり聞き慣れない言葉かもしれませんが、Linuxの世界ではオープンソースではないメーカー製のドライバを指して日常的に使われています。

普通にLinuxをインストールした状態では、そちらのオープンソースのドライバが使われるようになっていますが、OpenGLのハードウェアアクセラレーション機能などには多くの場合対応していません。
Live CDで普通にインストールまでできたOpen SUSEでは、ATIのメーカー製のドライバをインストールしようとするとエラーが起こって失敗します。エラーの内容はカーネルモジュールのコンパイルに失敗するというような感じなのですが、Linuxの初心者にはちょっと難しい問題です。

一方、Ubuntuでは一つ前のバージョン8.04ではLive CDを使ってインストールするところまで問題なく実行できて、さらにATIのメーカー製のドライバも普通にインストールできていました。新しいバージョンのものも、インストールさえできればメーカー製のドライバをインストールすることができるのではと思えます。
そして、Ubuntuにはそれを見越したかのように「alternate installer」というインストールCDが用意されています。
私が現在使用しているUbuntuは、その「alternate installer」を使ってインストールした後で、ATIのメーカー製ドライバをインストールしてあります。

復旧をあきらめたOpen SUSEを消して、後に何を入れるかまだ色々試しているところです。
この春にはUbuntu、Fedoraの新バージョンが出るようなので、それらのアルファ版も試してみましたが、どちらもATIのメーカー製ドライバを動かすことができませんでした。
とりあえずUbuntuの32bit版とかを入れておけば、64bit版と色々動作の比較をしたりできるかと思い、KubuntuというKDEデスクトップのもので32bit版をインストールしましたが、 ATIのドライバを入れると起動直後にフリーズしてしまいました。
この空いたパーティション、しばらく放置しそうな気がします...。
posted by mato at 02:24| Comment(0) | Linux | このブログの読者になる | 更新情報をチェックする

2009年02月26日

vectexのlinux 64bit版

昨年の3月頃にBlenderのテクスチャとしてSVGファイルを使えるプラグイン「vectex」がリリースされています。
pic090226_01.jpg

くわしいことはBlender.jpのこちらの記事をご参照ください。「Vectex: SVG によるベクトルテクスチャプラグイン

●Linux 64bit版binaryファイルの作成方法
私は記事を読んで、すぐにダウンロードしてサンプルファイルを開き、どこまで近づいてもテクスチャがきれいに表示される機能にとても驚きました。そのときは、Windows上で確認しただけだったのですが、Linuxでも試してみようと思いプロジェクトのサイトを探してみました。

Downloadファイルとして用意されているのはWindows、Linuxの32bit用のbinaryとソースファイルの3種類だけで、Linuxの64bit版はありません。BlenderのテクスチャプラグインファイルはWindowsのダイナミックリンクライブラリ(.dll)、Linuxでの共有ライブラリ(.so)と同じタイプのファイルですので、64bitと32bitでそれぞれ別のbinaryファイルが必要です。

ソースファイルがあるならコンパイルして自分で64bit用のbinaryファイルを作ることもできるかなと思ったのですが、実際に試してみるとエラーが出て失敗しました。
READMEを読むと、ファイルを展開したらそのフォルダに入ってmakeするだけ...らしいのですが、makeコマンドを実行すると

/usr/bin/ld: agg-2.5/src/libagg.a(agg_bezier_arc.o): relocation R_X86_64_32 against `__gxx_personality_v0' can not be used when making a shared object; recompile with -fPIC
agg-2.5/src/libagg.a: could not read symbols: Bad value
collect2: ld はステータス 1 で終了しました
make: *** [vectex.so] エラー 1


というようなエラーがでて、途中で止まってしまいます。

私の技術レベルではこれを自力で解決するのはまだ無理そうな感じだったので、とりあえず、誰かが64bit版を公開してくれていないか探してみると、見事にみつかりました。
Blenderartist.orgのフォーラムの中で、N30Nさんという方が自分の好きなディストリビューション用にパッケージを作成しているという情報があり、そのサイトで64bit用のパッチファイルを公開してくれています。

ここで「64bit.patch」というファイルをダウンロードして「vectex-0.9」のトップレベルディレクトリに置きます。ターミナルウィンドウで、その場所に移動して

$ patch -p0 < 64bit.patch

というように実行すると、Ubuntuの64bit環境でコンパイルできるようになりました。
ちなみに、私はpatchコマンドというのを使ったのはこれが初めてだったのですが、Blenderのビルド方法を調べていたときにソースにパッチを当てる方法が書かれているのを見つけていたのでそちらを参考にしました。

●このプラグインの使い方
ちなみに、このプラグインの使い方がわからないというような質問を、Blenderartist.orgのフォーラムでみかけました。そちらはすでに解決されているようでしたが、せっかくですので、ここに簡単な使い方を書いておきます。
ダウンロードしたファイルの中にサンプルファイルが2つ入っています。Blenderでそれを開くと、「Texture」パネルで「Texture Type」が「Plugin」に選択されていて、「Plugin」パネルが表示されています。
pic090226_02.jpg

「Load Plugin」というボタンを押すとファイル選択画面が表示されますので、同じフォルダの中にある「vectex.so」というファイルを選択します。Windowsではこのときエラーが表示されることがあるのですが、もう一度同じボタンを押してファイルを選択しなおすと2回目にはうまく選択できたりするようです。
pic090226_03.jpg

blenderのバージョンによっては強制終了してしまうこともありますが、うまくファイルを読み込めると「Plugin」パネルに操作用のボタンなどが表示されます。ここがちょっと分かりにくいのですが、そのパネルの「File Name」のところに使用する「SVG」ファイルを手入力で指定する必要があります。 付属する「tiger.svg」のファイル名だけでいいこともありますが、フォルダの場所も含めたフルパスで指定しないと画像を認識しない場合もあります。きちんと画像が認識されるとPreviewエリアにSVG画像が表示されます。
pic090226_05.jpg

このプラグインではSVGフォーマットのうちの基本的な機能しかサポートしていませんので、対応していない機能を使ったファイルは開けません。
そして、レンダリングを行うときは、マルチスレッドを有効にしているとうまくレンダリングができないようです。レンダリングのスレッド数を「1」にしてレンダリングしてください。

●コンパイル済みファイル
もし自分でコンパイルするのが面倒という人のために、パッチを適用してUbuntu8.10 amd64環境でコンパイルしたものをここに置いておきます。
vectex_linux_64.tar.gz

このファイルはGPLでライセンスされているとのことですので、ソース込みで配布するのは問題ないと思います...が、問題あるようでしたらすぐに撤去しますのでご連絡ください。
posted by mato at 02:36| Comment(0) | Blender | このブログの読者になる | 更新情報をチェックする

2009年02月24日

.blenderフォルダ

BlenderのPythonスクリプトは、普通Blender実行ファイルと同じ場所にある「.blender」フォルダの中の「scripts」フォルダに入っています。

Blender.orgのダウンロードサイトからWindowsの「Zip」ファイルをダウンロードしたり、Linuxのファイルをダウンロードした場合はそうなっていますが、PC環境によっては実行ファイルと同じ場所以外に「.blender」フォルダ置かれることがあります。

● Windowsの場合
Windowsでインストーラを使用してBlenderをインストールする場合、インストールの途中で次のような画面が表示されると思います。
pic090224_01.jpg
この画面で一番上を選択するとBlenderの実行ファイルがインストールされる場所ではなく、「C:\Users\mato\AppData\Roaming\Blender Foundation\Blender」というような場所に「.blender」フォルダが置かれることになります。このため、一台のWindowsマシンを複数のユーザーで使用している場合は、それぞれのユーザー別に「.blender」フォルダを用意することができます。

2番目を選択すると、Blenderの実行ファイルと同じ場所「C:\Program Files\Blender Foundation\Blender」になります。

3番めは環境変数で「HOME」を設定している場合となりますが、Windowsでインストールする場合はこれを選択することはあまりないと思います。

●Linuxの場合
Blender.orgのダウンロードサイトには、WindowsのようなインストーラタイプのものはLinuxには用意されていません。
しかし、Ubuntuなどのディストリビューションがそれぞれに用意しているパッケージツールを使用してBlenderをインストールすると、Windowsのときと同様に「.blender」フォルダがBlenderの実行ファイルとは違う場所(ホームフォルダ「/home/mato」など)に置かれることになります。
pic090224_02.jpg

Windowsを使用していると、頭に「.」(ピリオド)がついたフォルダ名というのはとくに馴染みがないと思いますが、Linuxの各ユーザー用フォルダ(/home/username)にはBlender以外にもFireFoxやGimp、その他さまざまなアプリケーション名のついた同様のフォルダがあり、それぞれに各ユーザー用の設定ファイルが保存されています。

このようにファイル名、フォルダ名の頭に「.」(ピリオド)がついたものは隠しファイルと呼ばれていて、通常はファイルブラウザなどでは表示されないようになっています。ファイルブラウザから「.blender」フォルダの中のPythonスクリプトを確認したい場合には、「表示」メニューで「隠しファイルを表示する」にチェックをする、というような操作が必要です。(この部分は各ディストリビューションやGNOME、KDEなどのデスクトップ環境によって違ってくると思いますが、たぶん似たような操作になっていると思います。)
pic090224_03.jpg pic090224_04.jpg

●LinuxでのBlender使用時の注意事項
Linuxでインストーラを使用してホームフォルダ(/home/username)に「.blender」フォルダを置いてある場合、それとは別のバージョンのBlenderをTARアーカイブなどから展開したり、SVNからダウンロードしたソースからコンパイルした実行ファイルを使用していても、ホームフォルダの「.blender」フォルダが優先されるようです。

Ubuntuなどのディストリビューションが用意しているパッケージは、そのバージョンのOSが公開されたときのBlenderがそのまま置かれていることが多いので、多くの場合は何らかの方法で最新バージョンのBlenderを用意して使用することになると思います。
このとき、実行ファイルと同じ場所に最新のバージョンのPythonスクリプトが入った「.blender」フォルダが存在していても、ホームフォルダに古いバージョンのPythonスクリプトの入った「.blender」フォルダがあると、そちらを参照してしまうため、新しいバージョンで追加されたはずのPythonスクリプトが見つからないというような問題が起こる可能性があります。

Windowsでも環境変数で「HOME」を設定してある場合には同じようなことが起こるかもしれませんが、インストール時にユーザーフォルダの方に「.blender」フォルダを置くように指定しただけでは、このようにはなりません。Blenderの実行ファイルがあるのと同じ場所にある「.blender」フォルダが参照されます。

先日、私がVimeoの方に置いているPythonスクリプトが Ubuntuの方では上手く動かなくて原因を調べるのに非常に苦労しましたが、ホームフォルダに古いバージョンの「.blender」フォルダが置いてあったことが原因でした。
ちなみに、SVNの最新のバージョンであれば、blenderに付属のanimation_bake_constraints.pyを使用した際にBlenderが強制終了する問題が修正されているようですので、このスクリプトを使用する必要はなくなっていると思います。ただ、Blender.orgの公式のダウンロードの方に修正が反映されるまでは、とりあえずこのまま公開しておこうと思います。
posted by mato at 01:36| Comment(3) | Blender | このブログの読者になる | 更新情報をチェックする
×

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