1/15 >>

勉強しなきゃ

ケッソン教授のページ

The RenderMan Shading Language (RSL)

shading language overview
datatypes, variables & memory usage
what is a surface shader?
writing surface shaders
writing displacement shaders
problems with quadric surfaces
using smoothstep()
using noise()
applying turbulance
repeating patterns
high frequency aliasing
fake rim lighting
blobby shading effects
shader to shader messaging
writing a flame shader
flames and color ramps
flames and opacity

writing a smoke displacement shader
using the combo shader
displacement shading domes
  • -
  • -

がんばれ、コメント力!!

コーネルボックス
RenderMan 互換レンダラ Angelのサンプルをレンダリングしてみる。

ページを移転してから、早くも1週間。徐々に公開していっているが、ある意味、自分のためになるようにしているつもり、別に日記をつけたからといって、何か変化があるわけでもないが、勢いもあって、がんがんと持っているものは公開しちゃう。すると、また勉強する必要性も感じる。人に喜んでもらうのが好きだし、役に立つかどうかわからないといいながら、何とかなる。自分を追い込む。SQLもやらなきゃ・・・・
  • -
  • -

Pixie

RenderMan PRMan 11ではグローバルイルミネーションができるが
放射照度キャッシュirradiance Cacheが使える。
同じことがオープンソースのPixieでできる。

でも,バージョン1.4.4ではきれいに出ていたけど,現行の1.7.4ではカビのようなものが出てくる。irradiance Cacheが足りないのではないかと思う。

参考画像とRIB
  • -
  • -

Pixie2.1.1

バージョンあっぷしてますね。
以前書いた,レンダリング時の白いゴミ
消えていますね。
確実にバージョンアップしている模様。
うれしいですね。
  • -
  • -

Ayam1.13

Ayamがバージョンアップしていた。
今回は3Delightでレンダリングしてみる。
要はライトを選択してShadow Mapの生成。その際,シーンファイルがある場所にcat.exeを置いたら,自動生成してくれた。
以下はエラー。
Tcl: Error! couldn't execute ".cat.exe": no such file or directory

後,タグに以下を追加しておくこと。
RiHider
hidden,depthfilter,s,midpoint

がんばりますよ。

my_first.PNG
  • -
  • -

Pointlight ShadowMap生成

Ayam1.13の簡単なテキストがあった。
  • Go to the preferences (section "RIB-Export") and set "ShadowMaps" to "Automatic".

  • Create two boxes.

  • Open the "Transformations" property of the second box.

  • Translate it by X: 0.0, Y: -1.0, Z: 0.0.
    Scale it by X: 4.0, Y:1.0, Z:4.0.
  • Create a light source.

  • Open the "LightAttr" property.

  • Change the type to "Spot". Press "Apply".

  • Now change the parameters of the spot light to "IsOn": Yes, "Intensity": 18.0, "UseSM": Yes, "ConeAngle": 45.0, "BeamDistrib": 3.0, "From": -2, 2, 2, "To": 1, 0, -1; leave all other parameters at their default values.

  • Create a new view and make it perspective (Menu: "Type/Perspective").

  • Export a RIB from that perspective view (Menu: "View/Export RIB").

  • Render the RIB with a RenderMan compliant renderer, that uses shadow maps, e.g. Photorealistic RenderMan (prman) or Aqsis.


  • ライトを作成してShaderでも割り当てて,二重にやってたので,うまく生成されていなかった。
    Shaderは割り当てないで,そのままLightAttrでCustomからPointを選択。
    パースペクティブ画面のメニューから,ShadowMapを生成すれば6つのファイルを出力してくれた。
    後は,レンダリングすると,以下のようになる。
    CSGのブーリアンは,Levelの中にブツをいれ,LevelAttrのTypeで選択(和差積)すればよい。
    dl02.PNG
    • -
    • -

    OBJをAyamに読み込む。

    メタセコイア(シェアウェア版)では,OBJの出力ができる。これを使ってAyamへインポートし,3Delightでレンダリングしてみた。

    注意点としては,スケールに要注意だ。Ayamに読み込んでから,TransformのScaleを0.01にし,その後texmapでマップを割り当てたがうまくいかない。モデルが持っているUV情報がずれてしまうようだ。

    だから,やり方としては,
    1.メタセコイアでOBJ出力する際にスケールは0.01にしておく。
    2.AyamのOBJプラグインで読み込む際ScaleFactorを0.01にしておく。
    いずれかを使うと良い。

    ・またメタセコイア側できちんとオブジェクト分けを行っておくことも大切だ。その際,名称は英数字がよいかな。そしてマテリアル設定でマッピングをしておくこと。きちんとUV情報を保持しておくことが大切。

    ・3Delight用にマップファイルをTiff形式に変換しておく。
    続いて,レンダリングが早くなるtdl形式に変換。

    C:\ayam13\meka>tdlmake -mode periodic 00tex_master.tif 00tex_master.tdl

    -mode periodicはテクスチャを繰り返すモード。
    ・作成したtdlファイルは同じディレクトリに置いておく。

    1. Ayamを起動。Load pluginでobjio.dllを読み込む。
    2. File>importでobjを選択。
    3. 読み込んだ後,モデルが大きい場合は,モデルを削除し,もう一度読み込み,ダイアログのScaleFactorを0.01に調整する。OKする。
    4. PolyMeshを選択し,新規でMaterialをmat1という名前にして,Paintedplastic,texmap,supertexmapなどのシェーダを指定する。
    5. Lightを設定しShadowMapを設定し出力する。
    6. Renderでレンダリングする。

    ■AyamはRIBのインポートもできるSiloで出力したRIBも調整できる。ただし,Siloで出力したMaterialがわからない。再度Ayamで設定しなおす必要がある。メタセコイアでもOBJで出してMaterialは再設定ということだから,どちらも同じかな。

    meka.jpg
    • -
    • -

    メタセコイアからRenderMan形式へ

    だいたいAyamを使ってOBJを読み込み,設定してレンダリングができるようになつた。メタセコイアがシェアウェアでないとできないが,PoserRayからPOVをOBJに変換する方法もできるかもしれない。この場合マップ情報がすんなりいくかどうか試していないのでわからないところ。

    メタセコイアのサンプルの麒麟(あらかじめフリーズしておく)は,14MBのObjになり,Ayamでインポートするが,54%まで読み込んだところで,ゆっくりになる。15分待っても63%。あきらめてCancelした。キャンセル後,PCが重くなる。Ayamを開いたまま,メタセコイアでファイルを見ていたら,35分くらいたったところで,一部のポリゴンが画面に表示された。
    地道に読み込んでがんばっているAyamに感動する。
    kirin.jpg

    メタセコイアのサンプルモデルを読み込む。ライトを3つ設定してみた。
    witch.jpg
    • -
    • -

    Ayam1.13へのOBJ読み込みの注意点

    Wings3DでUV mappingの設定を行ってみる。Tiffでマップをexportしてみた。さらにモデルはobj出力を行ってみた。
    diffuse.jpg

    Ayamでマップ情報を持つOBJを読み込む際に,Import OBJの設定画面で
    STagNameとTTagNameがデフォルトでmys,mytとなっている。このままだとレンダリングしたときにズレてしまいマップが適切ではない。
    これをs,tに変更してから,OBJを読み込んだ。
    AyamにWings3DからのOBJを読み込んで3Delightでレンダリングができた。
    uv_test_after.jpg

    また,メタセコイア2.4以降ではOBJの入出力に「マッピングのV方向を反転」が付いている。Wings3Dのobjを入力するときはこれにチェックを入れてからマッピングを貼りなおす。
    さらに,OBJで出力するときは保存の時にUVマッピングの「V方向に反転」にチェックを外して保存するとAyamで読み込んだときに,正しく表示される。メタセコイア2.3で前回操作していたので,気にしていなかったが,ちょっとした変更があると,何が原因かわからなくなってしまうところ。RIB出力したものをのぞいて実験でした。

    メタセコイアのサンプルの魚をOBJ出力し3Delightでレンダリング
    sakana_a.jpg
    • -
    • -

    UVマップの読み込み

    AyamでのObj importがよくわかったので、昨日失敗したモデルをやり直す。Wings3DはNendoのインポートができるようだけど、Nendo1.0はだめなようだ。持っているのはむかーし中野のまんだらけまで購入に行ったversion1.0。Nendo1.0を使ってモデリングして、へたれなペイントをほどこし、objで出力したんだか。cube0.tifが出た。
    そしてメタセコイアで再編集。んでもってAyamで読み込んでみる。
    hikou_meta.jpg
    Nendoから出力したTIFFがなんだったか忘れた・・・・。
    cube_map.jpg
    さらにディスプレイスメントを加えてみる。
    レンダリングは3Delight。
    hiko_dis.jpg
    同じobjとtiffをAIR Spaceに読み込んでレンダリングしてみる。
    早くて質感が違う。
    hikouki_air.jpg

    すべて、RenderMan互換レンダラーは、デモ版でまかなってみました。
    いろいろできるから楽しい。まだまだ課題は続きます。
    • -
    • -

    1/15 >>