<h4>Ubuntu に Pixie をインストールする</h4>
<p><img src="" alt="" /></p>
<p>UbuntuにRenderMan互換のある "Pixie" というソフトウェアをインストールしてみます。</p>
<h4>ファイルの入手</h4>
<p><a href="https://www.renderpixie.com/" target="_blank">Pixie</a> に行き Download をクリック。<br >あるいは、直接 <a href="https://sourceforge.net/project/showfiles.php?group_id=59462&package_id=55537&release_id=656528" target="_blank">SourceForge.net: Pixie</a> へ移動します。</p>
<p>ページに移動できたら、そのなかの "Pixie-linux-2.2.5.tgz" をダウンロード。<br />保存先はお任せします。(僕は /home/hiroaki に保存しました。)</p>
<h4>インストール作業</h4>
<h5>ディレクトリ作成 と ファイルの解凍</h5>
<p>まず、ディレクトリ(フォルダ)を作成します。</p>
<pre>$ mkdir ./renderman</pre>
<p>その後、ダウンロードしてきた"Pixie-linux-2.2.5.tgz" を解凍(展開)します。</p>
<pre>$ tar xzvf Pixie-linux-2.2.5.tgz -C ./renderman/</pre>
<p>そうすると、"renderman" というディレクトリの下に "Pixie" というディレクトリができているはずなので、次のようにして確認してみてください。</p>
<pre>$ ls ./renderman/Pixie</pre>
<p>すると、bin, displays, doc, include, lib, man, modules, shaders というディレクトリが確認できます。これらの中の bin に対してパスを通します。</p>
<h5>パスを通す</h5>
<p>現時点のパスがどうなっているのかを確認します。</p>
<pre>$ echo $PATH</pre>
<p>すると、Ubuntu 8.10をインストール仕立てのころだとこう出てくると思います。</p>
<pre>/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:<br /></pre>
<p>パスを通す方法はいくつかあるそうですが、今回は ".bash_profile" にパスを記述します。<br />ただし、Ubuntu では ".bash_profile" ではなく ".profile" にするようなので、それに従います。(".profile"と".bash_profile" は同じ扱いのようです。)</p>
<ul>
<li><a href="https://forums.ubuntulinux.jp/viewtopic.php?pid=6667#p6667" target="_blank">Ubuntu日本語フォーラム: .bash_profile</a></li>
</ul>
<p>念のため、".profile"のコピーを取っておきます。(todayには日付を入れます。)</p>
<pre>$ cp .profile ./profile_backup_today</pre>
<p>それが終わったら、".profile"をテキストエディタ gedit で編集します。<br />(emacs, Vimを使おうかと思ったけど、それはまた今度に)</p>
<pre>$ gedit .profile</pre>
<p>すると、Windowsで言うメモ帳みたいのが出てきます。文章の末尾に次のように入れます。</p>
<pre>export PATH=$PATH:/home/hiroaki/renderman/Pixie/bin</pre>
<p>".profile" は結果として次のようなります。(全然いじってないのがバレるw</p>
<pre># ~/.profile: executed by the command interpreter for login shells.<br ># This file is not read by bash(1), if ~.bash_profile or ~/.bash_login<br ># exists.<br /># see /usr/share/doc/bash/examples/startup-files for examples.<br /># the files are located in the bash-doc package.<br /><br /># the default umask is set in /etc/profile; for setting the umask<br /># for ssh logins, install and configure the libpam-umask package.<br />#umask 022<br /><br /># if running bash<br />if [ -n "$BASH_VERSION" ]; then<br /> # include .bashrc if it exists<br /> if [ -f "$HOME.bashrc" ]; then<br > . "$HOME.bashrc"<br /> fi<br />fi<br /><br /># set PATH so it includes user's private bin if it exists<br />if [ -d "$HOME/bin" ] ; then<br /> PATH="$HOME/bin:$PATH"<br />fi<br /><br />export PATH=$PATH:/home/hiroaki/renderman/Pixie/bin<br /></pre>
<p>".profile" はUbuntuにログインしたときに適応されるそうです。</p>
<p><a href="https://pocketstudio.jp/linux/?%A5%D1%A5%B9(PATH)%A4%CE%B3%CE%C7%A7%A4%C8%C0%DF%C4%EA%CA%FD%CB%A1%A4%CF%A1%A9" target="_blank">Pocketstudio.jp Linux Wiki: パス(PATH)の確認と設定方法は? </a></p>
<blockquote>
<p>毎回ログインする度にパスの指定をするのは面倒なものです。 その場合、ホームディレクトリ配下にある .bash_profile を編集します。 .bash_profile の中に PATH=$PATH:? と export の記述をするだけで、毎回ログインするたびに自動で環境変数が設定されます。</p>
</blockquote>
<p>改めてログインし直すのはやや面倒なので次のように打ち、現時点だけ".profile" を適応させます。(端末を閉じて終了させてしまうと、おそらくUbuntuをログインし直さない限り、その都度やらないといけないと思います)</p>
<pre>$ source .profile</pre>
<p>きちんと適応されたか $ echo $PATH と打って確認します。</p>
<blockquote>
<p>/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/hiroaki/renderman/Pixie/bin</p>
</blockquote>
<h4>試しにやってみます</h4>
<p>どうやら、"RIB"というファイルを用意する必要があるみたいです。"Actionsript"みたいなソースコードのこと……かな?</p>
<h5 id="content_2">RIBとは何か</h5>
<p>下記のサイトを参考にして "RIB(RenderMan Interface Bytestream)" というものを調べました。 ("RIB" はリブと読みます。)</p>
<ul>
<li><a href="https://wiki.livedoor.jp/m_riho/d/RenderMan%A4%CE%A4%AA%CA%D9%B6%AF" target="_blank">RenderManのお勉強 - ダメ研の日々の記録 -</a></li>
</ul>
<blockquote>
<p>RIBには、物体形状の情報、カメラに関する情報、光源に関する情報などのシーン記述やレンダリング時に利用するshader名やパラメータなどの情報が 記述されています。RIBは、RenderMan Interfaceをサポートしているモデラから保存することも出来ますが、適当なエディタを利用して自分でも書くことが出来ます。</p>
</blockquote>
<p>なるほど、勉強になります。</p>
<h5 id="content_2">RIBを書いてみる</h5>
<p>引き続き <a href="https://wiki.livedoor.jp/m_riho/d/RenderMan%A4%CE%A4%AA%CA%D9%B6%AF" target="_blank">RenderManのお勉強 - ダメ研の日々の記録 -</a>を参考にして "RIB" を書いてみます。</p>
<blockquote>
<p>ここでは、RIBを手書きすることに挑戦しています。通常のエディタで書くことが出来ます。拡張子は.ribとします。</p>
</blockquote>
<p>簡単なrib(その2) というものがあったので、それを少々変えてテストに用います。<br />(正直なところ、現時点では書いてある内容が全くわかりません。勉強します。)</p>
<p>$ gedit ./minimal.rib として gedit を開いて、次のように書き保存します。</p>
<pre># minimal.rib : minimal rib file<br />Display "minimal.tiff" "file" "rgba"<br />Projection "perspective" <br />WorldBegin<br /> Translate 0 0 2<br /> Sphere 1 -1 1 360<br />WorldEnd<br /></pre>
<h5>レンダリングしてみる</h5>
<p>ソフトウェアによって異なるかもしれませんが、基本的なやり方としては 「コマンド名 RIBファイル名」とすればいいみたいです。</p>
<p>例えば、"pixie" "minimal.rib" をレンダリングする場合は次の通りのようです。<br />やってみます。</p>
<pre>$ rndr minimal.rib<br /></pre>
<p>すると、エラーがでますね。</p>
<pre>rndr: error while loading shared libraries: libri.so.0: cannot open shared object file: No such file or directory<br /></pre>
<p>どうやら、実行するには "libri.so.0" というのが必要みたいです。</p>
<h4>エラーの対処 <br /></h4>
<p>とりあえず、libri.so.0 というのものが本当にないのか確認します。lib のなかにあると思うので、まずはそこから確認します。</p>
<pre>$ ls -la ./renderman/Pixie/lib</pre>
<p>おそらく、libri.so.0 がどうやっても確認できると思います。<br />原因がますます分からなくなってきました。</p>
<p>今度は、フォルダ(GUI)で直接見て確認してみます。すると、ちゃんとあるんですよね、"libri.so.0" が。</p>
<p><img src="https://www.hiroakit.com/blog/photo/photo_090325_02.png" alt="" /></p>
<p>リンクファイルだったのでプロパティを確かめてみました。もしかしたらリンクが切れているだけかもしれません</p>
<p><img src="https://www.hiroakit.com/blog/photo/photo_090325_03.png" alt="" /></p>
<p>ちゃんと "libri.so.0.0.0" を指定していますね……。さらに原因がわからなくなりました。</p>
<p>その後、長いこと1時間にらめっこしてみた。<br />行ったことは主に次の3つ</p>
<ul>
<li>ソースをコンパイルしてインストールする</li>
<p>"libtiffoio.h"がないと言われ、何のことかさっぱりだったため断念しました。<br />libtiff4 なら入っているんですが、これとはまるっきり違うものなんでしょうか。</p>
<li>rpm パッケージ を deb に変えてインストールする</li>
<p>alien をインストールして Fedora の rpm を deb に変えてインストールしてみました。インストールは無事できたけど、$ rndr minimal.rib をすると libtiff.so.3 が必要ですと言われる。この問題を解決するなら、一個上のソースをコンパイルしてインストールする方がいい気がしたので取りやめました。</p>
<li>エラーメッセージをそのまま検索にかけてみた</li>
<p>最初からこれをすればよかったかもしれない。すぐに解決の方向に進みました。ただし、言語はロシア語。英語でさえ必死なのに、これはきついです(笑</p>
</ul>
<h4>原因はパスの設定ミス<br /></h4>
<p>ロシア語、読めないよ……(笑</p>
<ul>
<li><a href="https://www.cgtalk.ru/forum/showthread.php?t=18048" target="_blank">CGTALK.RU: проблема с установкой PIXIE в линукс</a></li>
</ul>
<blockquote>
<p>#pixie<br />export PIXIEHOME="$HOME/opt/pixie"<br />export PATH="$PATH:$PIXIEHOME/bin"<br />export SHADERS="$PIXIEHOME/share/Pixie/shaders"<br />export DISPLAYS="$PIXIEHOME/lib/Pixie/displays"<br />export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PIXIEHOME/lib"<br />export MANPATH="$MANPATH:$PIXIEHOME/share/man"</p>
</blockquote>
<p>でも、なんとか分かりました。どうやらパスの設定ミスのようです。<br />指定しなくてはいけない項目がいくつか足りませんでした。</p>
<p>引用してきたパス設定を $ gedit .profile で設定し直します。</p>
<pre>export PIXIEHOME=/home/hiroaki/renderman/Pixie<br />export PATH=$PATH:$PIXIEHOME/bin<br />export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXIEHOME/lib<br />export SHADERS="$PIXIEHOME/shaders"<br />export DISPLAYS="$PIXIEHOME/displays"<br />export MANPATH="$MANPATH:$PIXIEHOME/man"<br /></pre>
<p>".profile" は結果として次のようなりました。</p>
<pre># ~/.profile: executed by the command interpreter for login shells.<br ># This file is not read by bash(1), if ~.bash_profile or ~/.bash_login<br ># exists.<br /># see /usr/share/doc/bash/examples/startup-files for examples.<br /># the files are located in the bash-doc package.<br /><br /># the default umask is set in /etc/profile; for setting the umask<br /># for ssh logins, install and configure the libpam-umask package.<br />#umask 022<br /><br /># if running bash<br />if [ -n "$BASH_VERSION" ]; then<br /> # include .bashrc if it exists<br /> if [ -f "$HOME.bashrc" ]; then<br > . "$HOME.bashrc"<br /> fi<br />fi<br /><br /># set PATH so it includes user's private bin if it exists<br />if [ -d "$HOME/bin" ] ; then<br /> PATH="$HOME/bin:$PATH"<br />fi<br /><br />export PIXIEHOME=/home/hiroaki/renderman/Pixie<br />export PATH=$PATH:$PIXIEHOME/bin<br />export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXIEHOME/lib<br />export SHADERS="$PIXIEHOME/shaders"<br />export DISPLAYS="$PIXIEHOME/displays"<br />export MANPATH="$MANPATH:$PIXIEHOME/man"<br /></pre>
<p>保存したら、$ source .profile で適応させます。</p>
<h4>もう一度、試しにやってみます</h4>
<pre>$ rndr minimal.rib<br /></pre>
<p><img src="
" alt="" /></p>
<p>無事できました!</p>