OSL のワークフロー

3ds Max には OSL を使用するための基本的なワークフローが 2 つあります。1 つは、OSL カテゴリ内の事前作成されたマップを使用する方法で、もう 1 つは、OSL マップ自体を使用する方法です。

OSL カテゴリ内のマップを使用する

OSL カテゴリ内のマップを使用するワークフローは極めてシンプルです。実際、他の 3ds Max マップと何も変わりません。
  1. スレート マテリアル エディタを開きます。
  2. [マテリアル/マップ ブラウザ](Material/Map Browser)で OSL カテゴリを展開します。
  3. マップを選択して、[スレート マテリアル エディタ](Slate Material Editor)にドロップします。
  4. 必要に応じてマップのパラメータを編集します。
  5. サポート対象のレンダラーでレンダリングするか、ActiveShade を使用します。
OSL カテゴリ内のすべての OSL マップは、3ds Max プラグイン フォルダから取得されます。これには約 100 個の OSL シェーダが含まれていますが、追加することもできます。
注: このワークフローでは、すべてのシェーダ コードがプラグイン フォルダ内のファイルに格納されていて、一般に他のプラグインと同様に動作します。最新バージョンを適切なフォルダにドロップすると、レンダリング時に新しいバージョンが使用されるようになります。

OSL マップを使用する

OSL マップは、編集機能を備えた、空の、データが入力されていないマップです。他のマップと同様に、必要なのは、[スレート マテリアル エディタ](Slate Material Editor)にドロップすることだけです。ただし、このマップで興味深いのは、パラメータの編集機能です。

. . . . ボタンを選択して、ディスクから OSL シェーダにロードします。OSL マップはプラグイン フォルダ階層内にあるとは限りません。任意の場所に存在する可能性があります。OSL マップは新しいパラメータに動的にモーフし、必要に応じて追加の入力および出力をスポーンして、ロードされた OSL ファイルに基づいてレンダリングを開始します。

このワークフローでは、OSL コードが OSL マップに実際にロードされます。ファイルが使用されるのは、ロードするときのみです。これ以降、コードは OSL マップ内に文字列パラメータとして存続します。

[編集](Edit)をクリックして、OSL ソース エディタを開きます。これは、OSL コードをライブで編集できる、シンプルで、ドッキング可能な、構文が色で示されたテキスト エディタです。[コンパイル シェーダ](Compile Shader)をクリックするか、またはショートカット[F7]キーを使用して、シェーダを最新コードの内容に合わせて更新します。この操作は、ActiveShade のレンダリング中も実行できます。

これにより、OSL マップは完全なシェーダ開発環境になります。複数のエディタを一度に開くことができるため、コードとインタラクティブに連携することができます。

編集したファイルを保存するには、[OSL ファイルを保存](Save OSL File)またはショートカットの[Ctrl]+[S]キーを使用します。ただし、ただし、コードは OSL マップ内にあるため、これらをシーン内に保存したり、マテリアル ライブラリにドロップしたりすることもできます。ファイルに対する外部従属関係は存在しません。完全に自己完結しています。世界中のレンダー ファームに送られたシーンからシェーダが失われることはありません。シェーダはシーン自体に含まれています。

OSL ファイルをいずれかのプラグイン/OSL フォルダに保存した場合、シェーダはマテリアル/マップ ブラウザに自動的に表示されます。

ヒント: OSL ソース エディタには、使いやすいように、一致するブラケットがハイライト表示されます。[Ctrl]キーを押しながらスクロール ホイールして、フォント サイズをスケーリングできます。

OSL カテゴリ マップおよび OSL マップは同一

マップ ブラウザに事前にロードされたシェーダを実行する OSL マップ、および[一般](General)セクション内の OSL マップは 1 つの同一マップです。実際、OSL セクションから何かにドラッグする場合の違いは、1 つのみです。OSL マップは既定でリンク モードになっていて、ファイルは適切な OSL ファイルに事前にロードされます。

チェーン アイコンの状態は、「リンク」モードを示します。

このモードがオンの場合、シェーダはディスク内の、ファイル ボタンで指定されたファイルから読み取られます。

このモードがオフの場合、シェーダ コードは OSL マップ自体の内部に埋め込まれた状態で保存されます。

最も便利な点は、切り替えられることです。

事前にロードされたいずれかのシェーダの性質は、必要に応じて変更することができます。リンクを解除するだけで、心ゆくまで編集できます。シーン内のコピーのみを編集し、ディスク上の元のファイルは編集しないでください。引き続きリンク状態にある他のすべてのシェーダは、プラグインと同様な動作を継続します。リンクされていないシェーダは、この OSL マップ内でローカルに編集できます。

修正したマップを再リンクしようとすると、ファイル内のバージョンに戻り、編集内容は破棄されます。

これにより、単純な 1 回限りの修正または単純な実験を、非常に簡単に行うことができます。いろいろ操作してみましょう。リンクが切断されたら、リンクし直すことで、以前の状態に戻ります。