超ど素人がRendarManをいじってみる~RIBファイルを作成編~

<h1>RIBファイルに挑戦</h1>
早速、自分で何か作ってみよう。
Rendermanでのレンダリング内容を記述するrib形式はテキストファイルとのこと。
RIBファイルってなに？

こちらのサイトたちに助けられました。ありがとうございます。
・[seesaawiki.jp](http://seesaawiki.jp/w/m_riho/d/RenderMan%a4%ce%a4%aa%ca%d9%b6%af)　日本語のチュートリアルって感じです。RIBファイルのコードの説明もあってとっても参考になります。
・[初めてのRIB](http://wikiwiki.jp/tanpopo/?%BD%E9%A4%E1%A4%C6%A4%CERIB)　RIBファイルとは？ってわかりやすかったです

私の勝手な解釈ですが、
RIB（RenderMan Interface Bytestream、リブ）ファイルっていうのが設定ファイルになるんですね。
私の環境の場合、mayaっていうのがないので、とりあえずはコマンドラインで実行するために必要なファイルってことだと理解しました。

<h1>RIBファイルを書く</h1>

```lang:sample1
#sample1.rib : sample1 rib file
Display "sample1.tiff" "file" "rgba"
WorldBegin
        Translate 0 0 2
        Sphere 1 -1 1 360
WorldEnd

```

コードの中の詳細をみてみます。

```lang:sample1
#sample1.rib : sample1 rib file
```
１行目はコメント。
こういうファイルで作ります的なことを記載しています。

```lang:sample1
Display "sample1.tiff" "file" "rgba"
```
２行目からソース。
Displayでは、実行結果を保存する設定を指定するようです。
・最初のパラメータはファイル名
・2番目は結果の出力方法
・3番目は保存するデータの種類
今回はファイル名"sample1.tiff"の画像ファイルとして（"file"）結果を保存するということになるようです。
保存されるデータは赤緑青と不透明度("rgba")だそうです。

2番目のパラメータを"framebuffer"とすると、画面に表示されるんだそうです。
パラメータについてはまだまだ勉強の余地がありそうです。

```lang:sample1
WorldBegin
　：
　：
WorldEnd
```
WorldBeing・・・WorldEndの中に物体の形や色などの情報を指定します。

```lang:sample1
        Translate 0 0 2
        Sphere 1 -1 1 360
```
Traslateによって物体を平行移動させることが出来ます。
Sphereによって形状は球であることを宣言しています。

Sphereは
・球の中心はオブジェクト座標系の原点
・最初のパラメータは球の半径
　　＝＞1を0.5にすると小さい円になりました。
・2番目と3番目のパラメータは球の上部と下部の高さ
・最後のパラメータは描画範囲の角度
　　＝＞360度を90度にしてみると理解しやすいです。

RIBの中で指定しない項目に関しては、デフォルトの値が使用されるそうです。
カメラは原点にあり、z軸正方向を向いています。

物体表面色はデフォルトの白。色を変えたければ
```
Color 1.0 0 0
```
とか追加すると変わります。

デフォルトはカメラの位置は原点、向きはz軸正の方向に固定されています。
カメラを動かすことと物体全体を動かすことは相対的なので、カメラを動かす代わりに、物体の方を動かします。
今回の例では、最初のTranslateがそれにあたっているようです。
Transalteで指定している値を変更するとおもしろい球体になるようです。

Transalteはなかなか理解が難しいです。
カメラの視点っていうのがよくわからなかったのですが、
[lucille]
(http://lucille.sourceforge.net/docs/japanese/tutorial/tutorial2.html)　
っていうサイトに書かれている<b>「カメラの視点」</b>がちょっとわかりやすかったです。

このファイルを作ってみて、実行してみる。

<h1>RIBファイルをコマンドラインから実行する</h1>
ここで、実行するときにはパスを設定されていることが肝心。
環境変数を毎回設定するのが面倒であればデフォルトで登録しておくほうがいいのでしょうが、私はあちこち設定が決定されちゃうのがなんとなく嫌なのでその都度書くようにします。
```
$ export RMANTREE=/Applications/Pixar/RenderManProServer-19.0
```

<h2>レンダリング結果を得るためには</h2>
レンダラーと呼ばれるソフトウェアを使用します。
使用するプログラムによって、コマンド名が異なるそうです。
>コマンド名　RIBファイル名

私はインストールしたフォルダの中にある、render で実行します。

```
$ $RMANTREE/bin/render -progress sample1.rib 
```
sample1.tiffができました。
![スクリーンショット 2015-04-08 11.12.12.png](https://qiita-image-store.s3.amazonaws.com/0/39911/bd5715df-f91b-c95e-7d6a-a4a9fc90be9f.png)

prmanというのもインストールしたフォルダにあるらしく、これも実行できました。

```
$RMANTREE/bin/prman sample1.rib
```
sample2.tiffができました。
![スクリーンショット 2015-04-08 11.35.09.png](https://qiita-image-store.s3.amazonaws.com/0/39911/c0454ed5-2344-c170-b034-c30eb53dbc42.png)

ぱっと見違いはよくわからないです。

こんな感じに、いろんなサイトをみているといろんなレンダラーコマンドがあるんですね。
インストールをする必要があるコマンドも結構あることがわかりました。
・aqsis
・pixie
とか。
好きなものを使用できるんですね。違いはわからないけど。。

<h1>いじって遊んでみる</h1>

```lang:sample1
#sample1.rib : sample1 rib file
Display "sample3.tiff" "file" "rgba"
WorldBegin
        Color 1.0 1.0 0
        Translate 1 1 2
        Sphere 1 -1 1 360
WorldEnd
```
お月さんできました！
![スクリーンショット 2015-04-08 11.58.18.png](https://qiita-image-store.s3.amazonaws.com/0/39911/c71fece1-3f7c-11f7-1f14-ecaad24d7699.png)

ちょっと楽しいかも。