Skip to main content

メンタルレイシェーダ(shader)とは

メンタルレイのシェーダは実際には光が物体に当たった時にメンタルレイのコアから呼び出される C/C++ のコードであり,プラグイン(Plugin)という方が正しいと思います.シェーダという言葉は歴史的な経緯で残っているものだと思います.シェーダはユーザにかなりの自由度を与えてくれますが,実際にシェーダを書くことはなかなかないでしょう.

シェーダの自由度が高いというのは,光が物体に当たった時にユーザがやりたいことならほぼなんでもできるという意味です.たとえばレンダリング中に光がある物体に当った時に email を送って知らせてくれるということさえ可能です.(メンタルレイ的にはそういうことはして欲しくないでしょうが,shader は単なるプラグインなので可能) しかし,なんでもできるということは一方で難しいということでもあります.特にメンタルレイは長い時間をかけて発展してきたことや,下位互換性(backward compatibility) を保つために複雑になっている部分もあります.

Comments

Popular posts from this blog

iray blog unofficial translation: ノイズだらけの画像

以下は iray dev blog の個人的な翻訳です. この翻訳は iray 開発者あるいはNVIDIA とはまったく関係がありません. 原文:  http://blog.irayrender.com/post/12964041473/noisy-pictures 物理的に正しいレイトレーサあるいはパストレーサを用いるレンダラが直面する主な問題があります.それは完全にノイズのない画像を生成するには長いレンダリング時間がかかるというものです. 残念なことにこれは(準-)モンテカルロ法に基づくアルゴリズムが一般に持つ性質によるものです.これらの手法では数学的に期待値の持つエラーが線形に消えていくことはありません. irayにとってこれが意味することは,ノイズの総量は1フレームをレンダリングする際に使うサンプルの数(あるいは総時間)に直接に比例しないということです.このためにレンダリングの最初の頃のステップで減っていくノイズの量は,後で減っていくノイズの量に比べて少ないように見えます.つまり収束がだんだん遅くなっていくような印象を受けるのです. この事実を回避するために,多くのレンダラは通常ある仕事を省略しようとします.たとえば,レンダラの中にはいくつかの物理的な効果を無視したり,レンダリング結果の無偏向性(un-biasedness)をあきらめたりします.その他の技術としては特殊な発見的手法を用いてサンプルをフィルタし,ノイズをぼかしてしまうというものがあります.あるいは単純に様々な芸術的な方法に依存する方法,たとえば,根底にあるレンダリングのアルゴリズム/魔法に影響する沢山のスイッチを用意して,それをいじりまわすという方法です. しかし iray の一つの大きなデザインゴールは,インストールしたらそのままいつでも全てが正しく動作し,沢山のパラメータをいじりまわすことは必要ないというものです.私の正直な意見としては,パラメータの数は 0 であるべきです.そうであれば,アーティストやデザイナは実際のレンダリングされるコンテンツに完全に集中できるようになり,小難しい深い数学の詳細を知る必要はありません.また,一貫性のないアルゴリズムはまったく使うべきではないと思います.そういうアルゴリズムを使わなくてはいけないかわいそうなアーティストが見る...

iray blog unofficial translation: iray 2.0 のデイライトポータルにおける性能問題

以下は iray dev blog の個人的な翻訳です. この翻訳は iray 開発者あるいはNVIDIA とはまったく関係がありません. 原文:  http://blog.irayrender.com/post/12598717491/daylight-portals-in-iray-2-0-performance-issues 大域照明における古典的な問題は屋外の光源による屋内のシーンのライティングです.典型的には太陽/空(sun/sky) あるいは HDR 環境照明でこの問題があります.このセットアップではリアルな屋内のライティングが可能ですが,一方でレンダラが力づくの(準)ランダム性に基いて室内の窓を探し,どの光源からの光がその窓を通るかを計算することは大変難しい問題です.デイライトポータルはこの問題に対処することを目的に作られました.デイライトポータルによってユーザはどの窓から光が入ってくるべきなのかをレンダラにヒントとして伝えることを可能にします. iray 2.0 はデイライトポータルを完全にサポートしました(version 1.x では限られたサポートのみでした).これは mia_portal_light mental ray シェーダを通じて設定できます.多くの場合に総合性能の重大な改善(*)がみられます.しかし,時にポータルは性能を悪化させる場合があります.あるユーザは初めて iray 2.0 を利用した際,この性能悪化につまづきました.私達に届いたレポートでは,iray 2.0 の性能はiray 1.2 の性能に比較して二倍悪いというものでした.私達がこれらのレポートをいくつか調べたところ,実際にポータルが性能悪化の犯人だった(**)という場合がありました.ポータルを無効にしたところ,性能が iray 1.2 とほぼ同等まで回復したのです. さて,どうしてこんな重大な性能の食い違いが起こったのでしょう? 調査の結果,これに関して iray ポータルのバグや基本的な欠点は発見されませんでした.ポータルは設計通りに機能していたのです.実は,多くの場合, iray はポータルなしでも上手く働くのです.しかし,これらのいくつかのケースでは,ポータルは助けになるのではなくむしろよりノイズのあるイメージを生成する原因になっていまし...

Intel Core i7 における mental ray のライセンスバグの修正

mental ray 3.7 が Intel の Core i7 で動かないというバグがあり,その修正がでているようだ. http://forum.mentalimages.com/showthread.php?t=5511 修正されている mental ray (SPM) の version は,(OEM によって version が多少異なる可能性があるが) 以下の通りである. mental ray 3.7: 3.7.1.31 (2009 September 16) 以降 mental ray 3.7+: 3.7.53.6 (2009 October 22) 以降 この問題は,Core i7 で mental ray を動かそうとすると, Sorry, no license available というエラーメッセージが出て,十分なライセンスがあるにもかかわらずmental ray を起動できないというものだ. 最近のIntel の CPU では Core コア数を数える方法がなかなか複雑になっているようで,これに関連してのことだろう. http://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/ 個人的には今後ライセンスをコア数で制限するのはあまり嬉しくない.コア数の多いマシンを買っても使えないからだ.一方で GPU では多数のコアがあるのに,もともと制限していない.NVidia/mental images の iray は GPU のコア数でライセンスを制限しているわけではないようなので,CPU と GPU でライセンスの形態が違うというのはあんまりよくわからないことである.歴史的な事情ということであろうか,それとも GPU を promotion しているのであろうか.下手をすると CPU 側から訴えられたりしないのだろうか.しかし,そういう変なライセンス形態が元でソフトウェアが動かないというのは困ったことである. Core i7 で mental ray が動かないという場合にはサポートに問い合わせてみると修正したバージョンを送ってもらえるはずだ.ただ,サポートの窓口が問題を知らない場合があるので,上記の me...