元記事:
blender.org - Realtime GLSL Materials リアルタイム GLSL Material Apricot オープンゲームプロジェクトのために、ビューポートとゲームエンジンでのより高度な Material 表示が追加されました。Blender のトップヘッダの Game メニューで設定し、Textured draw モードにすることで表示されます。
ゲームエンジンの従来の Texture Face と Use Blender Materials オプションとは違い、このシステムはビューポートとゲームエンジンの Material システムを Blender の内部レンダラの Material システムに肉薄させることが目的です。Material オプションの一部のみのサポートで、うまくいけば将来的にはもっと増えますが、ほぼ同一の結果が得られそうな物がサポートされるでしょう。レイトレーシングなど、いくつかの高度な機能については、グラフィックカードから効果的な支援が得られないうちは追加されないでしょう。
サポートしているグラフィックカード この実装では OpenGL シェーディング言語(GLSL)を利用しているため、これをサポートしているグラフィックカードとドライバが必要です。ゲームエンジンでもすでに同様の GLSL シェーダをサポートしていましたが、シェーダを自分で書く必要がありました。
下記のカードで大体はサポートしていますが、初期の物は複雑な Material や多数の光源では制約があります。バグの修正とパフォーマンスの向上が期待できる、最新のドライバをインストールしておいて下さい。
[wiki]-ATI Radeon 9x00、Xx00、X1x00、HD2x00、HD3x00シリーズ以降
-NVidia Geforce FX、6x00、7x00、8x00、9x00、GTX 2x0以降[/wiki]
Intel と VIA のグラフィックカード、Xx00シリーズより前の ATI Radeon カード、6x00シリーズより前の NVidia GeForce カードではこの機能は遅いソフトウェアによるエミュレーション以外ではうまく動作しません。
Game メニューでは、ライトや高度なシェーダ、影などを OFF にすることができ、古いグラフィックカードや複雑なシーンで役に立ちます。
サポートしている Material 機能 主にサポートしている機能は以下のとおりです。
[wiki]-すべてのディフューズとスペキュラシェーダ
-ディフューズ・スペキュラ Ramp シェーダ
-ダイナミックノード以外のすべてのノード。Material ノードについては限定的なサポートです。
-いくつかの Image Texture のオプション。
-Texture マッピングオプションの一部。
-Area 以外の Lamp タイプと、基本的なシャドウバッファのサポート。[/wiki]
以下の図では、サポートされている機能が更に詳しく説明されています。黄色の部分がサポート済みで、赤の部分が部分的にサポートされている物です。
ゲームエンジンのサポート ゲームエンジンでも GLSL Material をサポートしており、同じシェーダを使用しているため、3Dビューでの表示は非常によく似た物になります。ただし、いくつかの制約があります。
[wiki]-現時点では、ほとんどの Material と Lamp 設定はマルチテクスチャ Material のような GLSL Material でのアニメーションはできません。
-すべての Lamp は、すべてのオブジェクトをどんな遠くであっても、違うレイヤであっても計算します。そのため、Lamp 数はできるだけ少なくして下さい。例えば、屋外のシーンでは、二つの Sun もしくは Hemi Lamp でシーン全体を照らすことが可能です。
-ゲームエンジンでの UV レイヤのサポートは最大二つまで、Orco テクスチャ座標の互換性はありません。[/wiki]
Blender の Material システムはオフラインレンダリング用に設計されており、GLSL Material はこの内部レンダラと互換性を保とうとします。これらは最適化されたゲームエンジンの物ほどは速くありません。そのため、Material とライティング設定を最適化することは、パフォーマンスを最適にするために重要ことなのです。
[wiki]-もしいくつかの設定が、0.001や0.98のような値である場合、見た目では0.0や1.0との違いはごくわずかです。しかし、このような値は Blender がシェーダを最適化する時に障害となります。そのため0.0や1.0にすることで、Blender が影響を完全に OFF にし、計算を省略できるよう設定することをお勧めします。
-さまざまな Material シェーダがサポートされていますが、スピードが非常に遅くなることがあります。Lambert と Phong が最速ですので、できればこれらを使用すべきでしょう。スペキュラは CookTorr がデフォルトですが、Phong に切り替えても大半のケースでは大きな違いはないでしょう。
-更に必要なければ、スペキュラを OFF にしてみるといいでしょう。Material の Spec 値を0.0にする以外にも、例えば複数の Lamp 設定の[No Specular]を ON にし、スペキュラに影響する Lamp を一つだけにすることができます。
-α値を持っていない Image があれば、Texture Buttons の[Use Alpha]を OFF にすることができます。
-Texture や Ramp のブレンディングモードによって遅くなることがあります。mix/add/subtract/multiply が最速で、hue/saturation/value/color は非常に遅いです。
-アルファブレンディングはできれば避けるべきでしょう。代替として Clip Alpha が速くていいでしょう。[[ゲームエンジンのアルファブレンディング:
http://blender.jp/modules/xfsection/article.php?articleid=258 ]]に詳しい情報があります。
-影では、シーン全体をベイクし、キャラクタに OnlyShadow の Spot Lamp を使用するのがより効果的です。この Spot Lamp には、シャドウバッファのサイズを低くし、[No Specular]をONに、SpotBlを0.0に設定するのがベストです。更に[Layer]オプションを ON にすることで、そのキャラクタだけに Lamp を照らすことができます。[/wiki]
Apricot オープンゲームプロジェクト Apricot オープンゲームプロジェクト、"Yo Frankie" に、ゲーム作成とシェーダ編集に行なわれた多くの改良の結果を見ることができます。
Apricot project サイト には、非常にたくさんの情報とチュートリアルがあります。
プロジェクトのすべては、
Blender e-shop で販売(11月上旬発送予定)されている 8.5GBのDVDにも収録されています。
Bathroom GLSL&物理演算デモ Martins Upitis氏(
www.martinsh.co.nr) が、Blender の新しい GLSL と物理演算機能を披露する素晴らしいデモを作成されました。すべての機能をわかりやすく紹介しており、デザイン的にも素晴らしく、見て楽しい物に仕上がっています。実行には最近のパワフルな3Dカードが必要なことに注意して下さい。
Youtube 上のビデオ Medium quality .mov file, (33 MB rar) The .blend file and textures (11 MB rar) (訳注:操作方法については
こちら の記事を参照して下さい)
元記事:
blender.org - Realtime GLSL Materials