見出し画像

🎡OSLとGLSLの違い GLSLは通常GPU上でリアルタイムに動作し、OSLは通常CPU上でオフラインで動作します。

GLSLは通常GPU上でリアルタイムに動作し、OSLは通常CPU上でオフラインで動作します。

Open Shading Language (OSL)を使用して独自のノードを作成することも可能です。これらのノードは CPU レンダリングでのみ動作し、GPU 上で OSL コードを実行することはサポートされていないことに注意してください。
これを有効にするには、レンダリング設定でシェーディングシステムとして Open Shading Language を選択します。
OSL はノードベースのシェーディングのために設計され、各 OSL シェーダはノードセットアップの 1 つのノードに対応します。OSLシェーダを追加するには、スクリプトノードを追加して、テキストデータブロックまたは外部ファイルにリンクします。入出力ソケットは、NodeまたはText editorのupdateボタンをクリックすると、シェーダパラメータから作成されます。

https://docs.blender.org/manual/ja/2.79/render/cycles/nodes/osl.html

Open Shading Language (OSL) は、高度なレンダラーやその他のアプリケーションでプログラム可能なシェーディングのための、小さいけれども豊富な言語です。マテリアル、ライト、ディスプレースメント、パターン生成を記述するのに適しています。およびパターン生成の記述に最適です。
OSLは、Sony Pictures Imageworksによって開発され、長編アニメーションや視覚効果に使用される社内レンダラーで使用されています。OSLは、Sony Pictures Imageworksによって開発されました。この言語仕様は、他の視覚効果やアニメーションスタジオの意見を取り入れて開発されました。他の視覚効果スタジオやアニメーションスタジオの意見も取り入れながら開発されました。
OSLは "New BSD "ライセンスで配布されています。つまり、フリーであろうと商業的であろうと、あなた自身のアプリケーションで自由に使うことができます。

https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/src/doc/osl-languagespec.pdf
https://amzn.to/3AC9gmD

OSLは、C言語や他のシェーディング言語と同様の構文を持っています。しかし、高度なレンダリングアルゴリズムのために特別に設計されており、ラディアンスクロージャ、BSDF、遅延レイトレーシングなどの機能を第一級の概念として持っています。

OSLは、他のシェーディング言語にはないいくつかのユニークな特徴を持っています

ラディアンスクロージャの計算: サーフェスシェーダとボリュームシェーダは、最終的な色を直接計算するのではなく、ラディアンス(光の放射量や分布)に関する情報(クロージャ)を計算します。

  1. ループや光線の発射のないシェーダ: シェーダは、光源に対してループを行ったり、光線を発射したりすることはしません。これは、シェーダの計算が独立して効率的に行われることを意味します。

  2. サーフェスシェーダとライトシェーダの同一性: この文脈での「同じもの」とは、サーフェスシェーダとライトシェーダが同じように扱われることを指します。

  3. 透明性の取り扱い: 透明性は、特別なシェーディングのカテゴリとしてではなく、照明の一種として考えられます。

  4. "ライトパス表現"によるレンダラーの出力指定: ユーザーは「ライトパス表現」という方法を使って、レンダリングの出力を詳細に指定することができます。

  5. シェーダネットワーク: シェーダは、個別の要素が組み合わされてネットワークを形成することで構成されます。

  6. 「uniform」と「varying」キーワードの不在: OSLには「uniform」と「varying」といったキーワードが存在しない。

  7. 任意のデリバティブ: グリッドや余分なシェーディングポイントを使用せず、任意の微分が可能です。

https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/src/doc/osl-languagespec.pdf


https://amzn.to/3q26Es7


いいなと思ったら応援しよう!

あたり帳簿
お願い致します