March 25, 2009

Ubuntu 8.10 と Pixie(RenderMan) インストール編

Ubuntu に Pixie をインストールする

>

UbuntuにRenderMan互換のある "Pixie" というソフトウェアをインストールしてみます。

ファイルの入手

Pixie に行き Download をクリック。
あるいは、直接 SourceForge.net: Pixie へ移動します。

ページに移動できたら、そのなかの "Pixie-linux-2.2.5.tgz" をダウンロード。
保存先はお任せします。(僕は /home/hiroaki に保存しました。)

インストール作業

ディレクトリ作成 と ファイルの解凍

まず、ディレクトリ(フォルダ)を作成します。

$ mkdir ./renderman

その後、ダウンロードしてきた"Pixie-linux-2.2.5.tgz" を解凍(展開)します。

$ tar xzvf Pixie-linux-2.2.5.tgz -C ./renderman/

そうすると、"renderman" というディレクトリの下に "Pixie" というディレクトリができているはずなので、次のようにして確認してみてください。

$ ls ./renderman/Pixie

すると、bin, displays, doc, include, lib, man, modules, shaders というディレクトリが確認できます。これらの中の bin に対してパスを通します。

パスを通す

現時点のパスがどうなっているのかを確認します。

$ echo $PATH

すると、Ubuntu 8.10をインストール仕立てのころだとこう出てくると思います。

usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:

パスを通す方法はいくつかあるそうですが、今回は ".bash_profile" にパスを記述します。
ただし、Ubuntu では ".bash_profile" ではなく ".profile" にするようなので、それに従います。(".profile"と".bash_profile" は同じ扱いのようです。)

念のため、".profile"のコピーを取っておきます。(todayには日付を入れます。)

$ cp .profile ./profile_backup_today

それが終わったら、".profile"をテキストエディタ gedit で編集します。
(emacs, Vimを使おうかと思ったけど、それはまた今度に)

$ gedit .profile

すると、Windowsで言うメモ帳みたいのが出てきます。文章の末尾に次のように入れます。

export PATH=$PATH:/home/hiroaki/renderman/Pixie/bin

".profile" は結果として次のようなります。(全然いじってないのがバレるw

# ~.profile: executed by the command interpreter for login shells.
># This file is not read by bash(1), if ~.bash_profile or ~/.bash_login
># exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME.bashrc" ]; then
>    . "$HOME.bashrc"
>    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

export PATH=$PATH:/home/hiroaki/renderman/Pixie/bin

".profile" はUbuntuにログインしたときに適応されるそうです。

Pocketstudio.jp Linux Wiki: パス(PATH)の確認と設定方法は?

毎回ログインする度にパスの指定をするのは面倒なものです。  その場合、ホームディレクトリ配下にある .bash_profile を編集します。  .bash_profile の中に PATH=$PATH:? と export の記述をするだけで、毎回ログインするたびに自動で環境変数が設定されます。

改めてログインし直すのはやや面倒なので次のように打ち、現時点だけ".profile" を適応させます。(端末を閉じて終了させてしまうと、おそらくUbuntuをログインし直さない限り、その都度やらないといけないと思います)

$ source .profile

きちんと適応されたか $ echo $PATH と打って確認します。

usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/hiroaki/renderman/Pixie/bin

試しにやってみます

どうやら、"RIB"というファイルを用意する必要があるみたいです。"Actionsript"みたいなソースコードのこと……かな?

RIBとは何か

下記のサイトを参考にして "RIB(RenderMan Interface Bytestream)" というものを調べました。 ("RIB" はリブと読みます。)

RIBには、物体形状の情報、カメラに関する情報、光源に関する情報などのシーン記述やレンダリング時に利用するshader名やパラメータなどの情報が 記述されています。RIBは、RenderMan Interfaceをサポートしているモデラから保存することも出来ますが、適当なエディタを利用して自分でも書くことが出来ます。

なるほど、勉強になります。

RIBを書いてみる

引き続き RenderManのお勉強 - ダメ研の日々の記録 -を参考にして "RIB" を書いてみます。

ここでは、RIBを手書きすることに挑戦しています。通常のエディタで書くことが出来ます。拡張子は.ribとします。

簡単なrib(その2) というものがあったので、それを少々変えてテストに用います。
(正直なところ、現時点では書いてある内容が全くわかりません。勉強します。)

$ gedit ./minimal.rib として gedit を開いて、次のように書き保存します。

# minimal.rib : minimal rib file
Display "minimal.tiff" "file" "rgba"
Projection "perspective"
WorldBegin
Translate 0 0 2
Sphere 1 -1 1 360
WorldEnd
レンダリングしてみる

ソフトウェアによって異なるかもしれませんが、基本的なやり方としては 「コマンド名 RIBファイル名」とすればいいみたいです。

例えば、"pixie" "minimal.rib" をレンダリングする場合は次の通りのようです。
やってみます。

$ rndr minimal.rib

すると、エラーがでますね。

rndr: error while loading shared libraries: libri.so.0: cannot open shared object file: No such file or directory

どうやら、実行するには "libri.so.0" というのが必要みたいです。

エラーの対処

とりあえず、libri.so.0 というのものが本当にないのか確認します。lib のなかにあると思うので、まずはそこから確認します。

$ ls -la ./renderman/Pixie/lib

おそらく、libri.so.0 がどうやっても確認できると思います。
原因がますます分からなくなってきました。

今度は、フォルダ(GUI)で直接見て確認してみます。すると、ちゃんとあるんですよね、"libri.so.0" が。

リンクファイルだったのでプロパティを確かめてみました。もしかしたらリンクが切れているだけかもしれません

ちゃんと "libri.so.0.0.0" を指定していますね……。さらに原因がわからなくなりました。

その後、長いこと1時間にらめっこしてみた。
行ったことは主に次の3つ

  • ソースをコンパイルしてインストールする
  • "libtiffoio.h"がないと言われ、何のことかさっぱりだったため断念しました。
    libtiff4 なら入っているんですが、これとはまるっきり違うものなんでしょうか。

  • rpm パッケージ を deb に変えてインストールする
  • alien をインストールして Fedora の rpm を deb に変えてインストールしてみました。インストールは無事できたけど、$ rndr minimal.rib をすると libtiff.so.3 が必要ですと言われる。この問題を解決するなら、一個上のソースをコンパイルしてインストールする方がいい気がしたので取りやめました。

  • エラーメッセージをそのまま検索にかけてみた
  • 最初からこれをすればよかったかもしれない。すぐに解決の方向に進みました。ただし、言語はロシア語。英語でさえ必死なのに、これはきついです(笑

原因はパスの設定ミス

ロシア語、読めないよ……(笑

#pixie
export PIXIEHOME="$HOME/opt/pixie"
export PATH="$PATH:$PIXIEHOME/bin"
export SHADERS="$PIXIEHOME/share/Pixie/shaders"
export DISPLAYS="$PIXIEHOME/lib/Pixie/displays"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PIXIEHOME/lib"
export MANPATH="$MANPATH:$PIXIEHOME/share/man"

でも、なんとか分かりました。どうやらパスの設定ミスのようです。
指定しなくてはいけない項目がいくつか足りませんでした。

引用してきたパス設定を $ gedit .profile で設定し直します。

export PIXIEHOME=/home/hiroaki/renderman/Pixie
export PATH=$PATH:$PIXIEHOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXIEHOME/lib
export SHADERS="$PIXIEHOME/shaders"
export DISPLAYS="$PIXIEHOME/displays"
export MANPATH="$MANPATH:$PIXIEHOME/man"

".profile" は結果として次のようなりました。

# ~.profile: executed by the command interpreter for login shells.
># This file is not read by bash(1), if ~.bash_profile or ~/.bash_login
># exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME.bashrc" ]; then
>    . "$HOME.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

export PIXIEHOME=/home/hiroaki/renderman/Pixie
export PATH=$PATH:$PIXIEHOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXIEHOME/lib
export SHADERS="$PIXIEHOME/shaders"
export DISPLAYS="$PIXIEHOME/displays"
export MANPATH="$MANPATH:$PIXIEHOME/man"

保存したら、$ source .profile で適応させます。

もう一度、試しにやってみます

$ rndr minimal.rib

無事できました!