SSブログ

シェーダーって、おいしいの? [3DCG模型関係]

最近のリアルタイム3DCGコンテンツやその表示プログラム開発において、避けては通れない技術的関門。それがシェーダーです。

シェーダーと言っても宇宙刑事のことじゃありません。
(わたなべさんゴメン!)

元々はPIXARという3DCGで映画を作る会社(本来は画像解析とそのための画像処理コンピュータPixar Image Computerを製造販売していた会社でしたが)が、自社で開発した映像作成プログラムReyes上でサポートしていたシーン記述言語であるRENDERMAN上で定義される物体表面質感再現方程式の実装方法として発案されたと思われますが、ひょっとしたらそれ以前のSIGGRAPHの論文で先にアイデアが出ていたりするかも知れません。

…ここまでごちゃごちゃ書いてて思うけど、上の文章って「何のこっちゃ意味わからん!!」と言ってる人多そうな気がします。(うちの嫁さんには華麗にスルーされる予感。(汗))

まぁとにかく、RENDERMANというシーン記述言語(実体はC++言語のソースっぽい)の中で定義される、形状の色や質感・あるいはテクスチャマッピング処理を実行するための記述言語として提供されていたのが「シェーディング言語」であり、略してシェーダーと呼ぶようになったのですが、いかんせんRENDERMANをいじるためにはプログラマの力が必要なため、日本ではRENDERMANを利用して作品を作る人達は非常に限定される傾向にありました。

…などと書くと、この日記には何人か真のRENDERMAN使いが見てるのでどんなツッコミが来るかガクブルなんですが、RENDERMANに触れないことにはシェーダーの話も書き出せないのでご容赦を。
(一応「実践CGへの誘い」を見ながら書いてます。>関係者各位)

と言う訳で今までシェーダーという専門用語は日本ではごく一部の人間しかしゃべらない用語だったのですが、21世紀に入って家庭用ゲーム機の処理能力が爆発的な進化を遂げる(平たく言えばPS2が登場したころやね)時代に至って、シェーディング言語という発想が見直されてグラフィックチップの機能として提供されるようになったのです。

※このあたりの経緯はマイミクのzenjiさんの連載記事が非常に詳しいです。→http://journal.mycom.co.jp/column/graphics/001/index.html


で、歴史書くだけですっごく行数食ったのですが、今回私が書きたいことは経緯の話ではなくって、果たしてシェーダーって一体どれだけの3DCGモデラーの人に意識され、使用されているかってことです。

はっきり言って私の周りのモデラーさんでシェーダーを意識されている方は数名の「神」クラスの人たちに絞られます。
もしくは、家庭用ゲーム機向けの3DCGキャラクターモデリングをされている人たちくらいしか意識している方はいないでしょう。
そもそも現状のモデリングツールでシェーダー言語に直接影響を与えるコード込みでデータを吐き出すフォーマット(具体的にはCOLLADA)を扱えるのはMAYAとかMAX,SOFTIMAGEくらいです。
それに、シェーダーに影響を及ぼすパラメータを出力しても、肝心の3DCG形状データを表示するプログラムがそのパラメータに対応していなければ画面上で再現することはできません。

といいつつ、最近のDirect3Dにおける3DCG表示処理の流れは既に固定パイプライン処理を棄てていて、全てをシェーダーによるGPU内ソフトウェア処理だけで3DCGイメージの生成を完結させる方針になってきています。

そう考えると、そろそろ日本にはゲーム用の3DCGエンジンとは別に、単に3DCG形状やアニメーションを再生するためだけのシェーダー処理ベースの3DCG描画エンジンプログラムが必要なのかも知れません。それをニコニコ動画ユーザーに使ってもらえるように整備・開放したら、その時こそシェーダーがおいしいモノとしてクリエイターに認識される時代になるのかも知れません。

といっても、シェーダーの役目って金属質感の強調とか影の演算とかHDR(ハイダイナミックレンジ)表現の付加とかだけじゃなくて、地味だけど重要なディスプレースメントテクスチャによるポリゴン形状のディティールアップなんて機能ももっと重要視されるべきだと思います。

と言うか、その辺を重点的にヤりたいんだよなぁ。(汗)

もっと言うとDirectX11のDirect3D機能になるけど、ジオメトリシェーダーによるリアルタイムサブディビジョンサーフェイスとかは勝利の鍵とか勝手に思ってるんですけどね。


あー、ここまで来るともはや妄想なので、
知らない人から呆れられても返す言葉もございませんが。(^^;)
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

この広告は180日新規投稿のないブログに表示されます