RenderMan
映画「Matrix」におけるFreeBSDとRenderMan
<a href="https://www.jp.freebsd.org/event/matsuri2001/" target="_blank">オープンソースまつり 2001 in 秋葉原</a>という記事に興味深いことが載っています。 <blockquote>32台のデュアルプロセッサのFreeBSDシステムがワーナーブラザーズフィルムの映画「The Matrix」の中で多数の特殊効果を生み出すために使われました。<中略>「The Matrix」製作に実際にメインで使用されたFreeBSDを利用したシステムでは、Linux用レンダリングソフトPixar's RendermanをFreeBSDのLinuxモード上で使用しました。</blockquote> <a href="https://www.amazon.co.jp/gp/product/B002M2DWS6?ie=UTF8&tag=hiroakit-22&linkCode=as2&camp=247&creative=1211&creativeASIN=B002M2DWS6" target="_blank">マトリックス</a>でRendermanが使用されていたことはPixarのサイトに掲載されていたので知っていましたが、マトリックスを製作したManex Visual Effects社がFreeBSDでRendermanを使っていたというのは初耳でした。しかも、興味深いことに"<span style="color: #800000;"><strong>FreeBSDのLinuxモード</strong></span>"を使用しているという点です。FreeBSDに関するドキュメント"FreeBSD ハンドブック"ではこれを<a href="https://www.freebsd.org/doc/ja/books/handbook/linuxemu.html" target="_blank">Linux バイナリ互換機能</a>と表現しています。 <blockquote>簡単に言ってしまえば、この機能により全ての Linux アプリケーションの 90% が修正なしに FreeBSD 上で起動できます。 この中には Star Office や Linux 版の Netscape、Adobe Acrobat、RealPlayer 5 と 7、 VMWare、Oracle、WordPerfect、Doom、Quake などがあります。 また、ある状況においては Linux バイナリを Linux で動かすよりも FreeBSD で動かすほうが良いパフォーマンスが出るという報告もあります。</blockquote> 「Linux で動かすよりも FreeBSD で動かすほうが良いパフォーマンスが出る」と書かれていますが、そもそもManex Visual Effects社においてRenderManをFreeBSD上で動かそうと思ったのは「既存のSGIシステムでは能力が足りない」からだそうです。そして「最速のSGI R10kシステムよりもメインのFreeBSDマシンの方が処理性能が上だった」そうです。Manex社の上級システム管理者であるCharles Henrich氏がこれを述べています。
RenderManのシェーディング言語
<h4>RenderManのシェーディング言語</h4> <p>RISpec を見ながら気長にやっていこうと思います。</p> <ul> <li><a href="https://renderman.pixar.com/products/rispec/rispec_pdf/RISpec3_2.pdf" target="_blank">Pixar: The RISpec 3.2</a><span>(PDF)</span></li> </ul> <h4>主要な shader は5つ</h4> <p>RISpecの120頁に "There are thus five major types of shaders" って書いてあった。<br />どうやら、主要な shader は5つあるみたいです。</p> <ul> <li>Light source shaders</li> <li>Displacement shaders</li> <li>Surface shaders</li> <li>Volume shaders</li> <li>Imager shader</li> </ul> <h4>変数<br /></h4> <h5>グローバル変数</h5> <blockquote> <p>All the predefined variables which are available to each type of shader are shown in Table 12.1,</p> </blockquote> <p>130頁にこう書いてありました。変数も定義されているみたいです。shader によってちょっと違う。<br /> (フィーリング読みだから、あっているかわかりませんが、たぶんそんな意味だと思う)</p> <ul> <li>Table 12.1: Predefined Surface Shader Variables (132頁)</li> <li>Table 12.2: Predefined Light Source Variables (133頁)</li> <li>Table 12.3: Predefined Volume Shader Variables (133頁)</li> <li>Table 12.4: Predefined Displacement Shader Variables (134頁)</li> <li>Table 12.5: Predefined Imager Shader Variables (134頁)</li> </ul> <h5>変数の型</h5> <p>125頁からの Section 11 TYPES に書いてあった。</p> <ul> <li>float</li> <li>color</li> <li>point</li> <li>vector</li> <li>normal</li> <li>matrix</li> <li>string</li> <li>array</li> </ul> <h4>座標空間</h4> <p>Table 4.2: Point Coordinate Systems (32頁) に書いてありました。<br />基本、書いてある英語が理解できなかった。けど、とりあえず暗記。</p> <ul> <li>object</li> <li>world</li> <li>camera</li> <li>screen</li> <li>raster</li> <li>NDC</li> </ul> <h4>RSL を記述する</h4> <p>Appendix A STANDARD RENDERMAN INTERFACE SHADERS (166頁) を参考にしながら試しにやっていこうと思います。やることはメモ帳などのテキストエディタでソースファイル(拡張子は sl )を書いていくだけです。</p> <h5>matte.sl</h5> <pre>surface<br />matte(<br /> float Ka = 1;<br /> float Kd = 1;)<br />{<br /> normal Nf = faceforward(normalize(N), I);<br /> Oi = Os;<br /> Ci = Os * Cs * (Ka * ambient() + Kd * diffuse(Nf));<br />}<br /></pre> <h5>plastic.sl<br /></h5> <pre>surface<br />plastic(<br /> float Ka = 1;<br /> float Kd =.5;<br /> float Ks =.5;<br /> float roughness =.1;<br /> color specularcolor = 1;)<br />{<br /> normal Nf = faceforward(normalize(N), I);<br /> vector V = -normalize(I);<br /> Oi = Os;<br /> Ci = Os * (Cs * (Ka * ambient() + Kd * diffuse(Nf)) +<br /> specularcolor * Ks * specular(Nf, V, roughness));<br />}<br /></pre> <p>いまいちよくわからないけど、こんな感じ。</p> <h4>RSL をコンパイルする</h4> <p>書き写したソースファイルをコンパイルしますが、そのコンパイラは使用するRenderManのレンダラーによって異なります。</p> <p>例えば、レンダラーが 3Delight なら shaderdl で書き出されるファイルの拡張子は sdl で、Pixie なら sdrc がコンパイラで sdr が書き出されるファイルの拡張子です。 Aqsis の場合はコンパイラがaqsl でファイルの拡張子は slx となります。</p> <p>僕の場合は Pixie なので sdrc plastic.sl matte.sl と打ちます。<br />2個連続でコンパイルかけています。plastic.sdr と matte.sl が出てきます。</p> <h4>RIB ファイルを用意する</h4> <p>コンパイルしたshaderがどういう効果を持っているのかを確かめるためRIBファイルを作成します。</p> <h5>matte.rib<br /></h5> <pre>Display "matte.tiff" "file" "rgba"<br />Projection "perspective" <br /> Translate 0 0 2<br />WorldBegin<br /> LightSource "ambientlight" 1<br /> "intensity" [0.2]<br /> LightSource "spotlight" 2<br /> "from" [2 2 -2]<br /> "to" [0 0 0]<br /> "intensity" [5]<br /> Color [1 0 0]<br /> Surface "matte"<br /> Sphere 1 -1 1 360<br />WorldEnd<br /></pre> <h5>plastic.rib</h5> <pre>Display "plastic.tiff" "file" "rgba"<br />Projection "perspective" <br /> Translate 0 0 2<br />WorldBegin<br /> LightSource "ambientlight" 1<br /> "intensity" [0.2]<br /> LightSource "spotlight" 2<br /> "from" [2 2 -2]<br /> "to" [0 0 0]<br /> "intensity" [5]<br /> Color [1 0 0]<br /> Surface "plastic"<br /> Sphere 1 -1 1 360<br />WorldEnd</pre> <p>このRIBファイルの違いは、Surface "matte" なのか Surface "plastic" なのかというところだけです。それ以外の違いはありません。</p> <h4>結果</h4> <h5>matte.rib</h5> <p>matteだから反射してなければいいのかな?(笑<br />だとしたら、まぁ良い感じなのかな。わからないw</p> <p><img src="" alt="matte.rib の結果" /></p> <h5>plastic.rib</h5> <p>プラスチックっぽい質感・・・・・・、なんだろうか。。。(笑<br />もうちょっと試行錯誤したほうが良さそうですね。</p> <p><img src="" alt="plastic.rib の結果" /></p>
RenderManについて調べてみた Part2
<h4>RenderManについて調べてみた</h4> <p>どういったことができるのか、どういった仕組みなのかをどこから探っていけばいいのかを簡単にですが調べてみました。どうやら、3点を抑える必要があるようです。</p> <ul> <li><a href="#RISpec">RISpec</a></li> <li><a href="#RIB">RIB</a></li> <li><a href="#RSL">RSL</a></li> </ul> <h4><a name="RISpec"></a>RISpec(RenderMan Interface Specification)</h4> <p>RenderManのインターフェース仕様のことのようです。<br />詳しいことは<a href="https://renderman.pixar.com/products/rispec/index.htm" target="_blank">RenderMan - Developers Corner - RI Specs</a> に書いてあるみたい。<a href="https://renderman.pixar.com/products/rispec/index.htm" target="_blank"><br /></a></p> <h4><a name="RIB"></a>RIB(RenderMan Interface Bytestream)</h4> <p>RenderManにおける3次元形状情報のことを指すみたいです。<br />前回の、<a href="https://www.hiroakit.com/blog/2009/03/post_64.html" target="_blank">Ubuntu 8.10 と Pixie(RenderMan) インストール編</a>でも出てきました。</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>1行目</h5> <p>コメントアウトは "#" でするみたい。</p> <h5>2行目</h5> <p>DIsplayでは結果の保存方法を指定するみたい。</p> <ul> <li>1番目の項目はファイル名について</li> <li>上記の例だと "minimal.tiff" をファイル名と指定しています。</li> <li>2番目の項目は結果の出力方法について</li> <li>結果を "file" として保存する指定にしているみたい。これを "framebuffer" とも指定できるみたいで、そうすると画面に直接表示されるみたいです。</li> <li>3番目の項目は保存するデータの種類について</li> <li>"rgba" となっているので、赤緑青と不透明度(アルファチャンネル)の指定できるみたい。</li> </ul> <h5>3行目</h5> <p>Projectionによって、投影方法を指定できるようです。ここで投影方法を指定しない場合は、平行投影 ("orthographic")が適応されるみたいです。例だと、透視投影("perspective")を指定してますね。</p> <p>なお、投影方法だけを指定しているらしく、カメラは原点に存在していてZ軸正方向を向いているようです。</p> <h5>4?7行目</h5> <p>WorldBeing・・・WorldEndの中に物体の形や色などの情報を指定するようです。WorldBeginは様々な設定が終了し描画準備を始めることを示していて、対するWorldEndは3次元形状の設定が終わり、結果を出力することを示すようです。</p> <p>この部分のことをワールドブロックと呼ぶようです。</p> <p>もうちょっと調べないとダメですね。情報が少なすぎる。</p> <h4><a name="RSL"></a>RSL(Renderman Shading Language)</h4> <p class="r">RenderManのシェーディング言語のことのようです。<a href="https://en.wikipedia.org/wiki/RenderMan_Shading_Language" target="_blank">Wikipedia</a> には"The Language syntax is C-like"とありますね。それから、シェーダーをクラスとして記述できるみたいです。</p> <ul> <li><a href="https://www.ousam.com/blog/2008/09/02/524" target="_blank">* little things of mine *: RSL 2.0</a></li> <li><a href="https://www.fundza.com/rman_shaders/oop/intro/index.html" target="_blank">RSL - Introduction to Shader Objects</a></li> </ul> <h4 class="r">メモとして</h4> <p class="r"><a class="l" onmousedown="return clk(this.href,'','','res','3','')" href="https://www.smartcg.com/tech/cg/courses/RMan/notes/Class02/Class02.html">Class 2: Intro' to shader writing: <em>RSL</em> (<em>RenderMan</em> Shading Language)</a></p> <p><a href="https://accad.osu.edu/~smay/RManNotes/" target="_blank">RManNotes</a></p> <p><a href="https://lucille.sourceforge.net/docs/japanese/tutorial/tutorial1.html" target="_blank">RenderMan 入門 | 初めてのレンダリング</a></p> <p><a href="https://www.netlaputa.ne.jp/~fukuma/CG/RenderMan.html" target="_blank">RenderManについて</a></p> <p><a href="https://wiki.livedoor.jp/m_riho/d/RenderMan%a4%ce%a4%aa%ca%d9%b6%af%28%a5%b7%a5%a7%a1%bc%a5%c0%b8%c0%b8%ec%a4%c8%a4%cf%29#content_1" target="_blank">RenderManのお勉強(シェーダ言語とは)</a></p>
Ubuntu 8.10 と Pixie(RenderMan) インストール編
<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>
RenderManについて調べてみた Part1
<h4>高価過ぎるRenderMan<br /></h4> <p>前に<a href="https://www.pixar.com/jp/renderman/whats.html" target="_blank">RenderMan</a>の販売価格を調べて、学生が買えるようなソフトではないって書きました。</p> <p><a href="https://www.borndigital.co.jp/software/price/renderman.html" target="_blank">ボーンデジタル:RenderMan 販売価格</a></p> <ul> <li><strong>RenderMan Studio</strong><strong> </strong>¥294,000 </li> <li><strong>RenderMan Pro Server</strong><strong> </strong>¥525,000</li> </ul> <p>でも、もうちょっと調べてみると色々なことが分かりました。</p> <h4>RenderMan互換ソフトウェア</h4> <p>どうやら、Pixar が開発しているRenderManは正式には"PhotoRealistic RenderMan"と呼ばれているみたいです。略称として"PRMan"とも言うそうです。</p> <p>一番調べてみて興味深かったのは、Pixar 製以外(RenderMan互換ソフトウェア)のものがあるという点でした。その中にはオープンソースらしきものも見つかりました。</p> <p>商用のもの</p> <ul> <li><a href="https://www.3delight.com/" target="_blank">3Delight</a></li> <li><a href="https://www.sitexgraphics.com/" target="_blank">AIR</a></li> </ul> <p>商用ではなさそうなもの</p> <ul> <li><a href="https://www.renderpixie.com/" target="_blank">Pixie</a></li> <li><a href="https://www.dctsystems.co.uk/RenderMan/angel.html" target="_blank">Angel</a></li> <li><a href="https://www.aqsis.org/" target="_blank">Aqsis</a></li> <li><a href="https://www.bmrt.org/" target="_blank">BMRT</a>(今はもう配布していないみたい)</li> </ul> <p>もしかして、もしかすると、勉強できる環境を手に入るのじゃないかと期待大です。</p>