GLSLまたはHLSLの上に構築された多くのシェーディング言語があります。それらは通常どのような問題を解決し、どのような進歩に価値がありますか?


8

ふう、長いタイトルでした。

いずれにせよ、私はさまざまなことを考えたいので、この質問をしているのですが、次のような単純なものを追加するだけでも、GLSLの上に単純なオープンソースレイヤーが実際にはないことに気付きました。含む、または一般的に使用される機能。

ある種の研究として、私はこのような質問をしています。そのような言語に対する私自身の意識は控えめに言ってもごくわずかなので、私はbgfxのシェーディング言語とUnityのShaderLabを知っていますが、それらが何を達成するのか本当にわかりません-または理由-コンピュータグラフィックスの初心者。

あるいは、このようなシェーディング言語のウィッシュリストは何でしょうか?これまでのマインには、バージョン間のいくつかの互換性、ピクセルオフセットでテクスチャに簡単にアクセスできるオプションの「非表示」入力、または画像サイズなどが含まれ、おそらく通過します-たとえば、2パスガウスぼかし。

考え?


4
これは、特定の質問というより、フォーラムディスカッションのように聞こえます。このサイトは、単一の事実に基づく回答で回答できる質問に最適です。「ウィッシュリストとは」の部分は、SEサイトには明らかに適していません。
Dan Hulme

1
あなたは私たちのチャットルームのコーネルボックスに来て、議論を起こすことができます
ラチェットフリーク

回答:


2

GLSL / HLSL / Cg / whatnotのニッチなバリエーションが非常に多いのは、プログラミング言語が1つのサイズですべてのツールに適合することはないためです。さまざまな問題にはさまざまなツールが必要なため、長期的に見れば、カスタムビルドのツールを開発する価値がある場合があります。

ストックGLSL自体は、ほとんど使用できません。バージョン間の安定性はそれほど高くないため、複数のOpenGLバージョンを対象とするプログラムでは、何らかの前処理が必要です。HLSLはバージョン間で少し安定していますが、繰り返しになりますが、複数のD3Dバージョンを対象とする場合は、移植性を高めるためにいくつかの作業を行う必要があります。

モジュールやバージョン間での統一された構文などの基本的なプログラミング機能のサポートを追加したり、シェーダーコードを書き直さなくてもさまざまなAPI(GL / D3D)間での移植性を追加したりするなど、ユーザーが通常行う種類のことはほとんどおっしゃったとおりです。より洗練されたものには、本格的なマテリアルシステムや、オンザフライでシェーダープログラムを生成するようなものが含まれます

シェーディング言語はおそらく、将来、より良く、より一般的になり、コア機能として今日手作業で一般的に行われているものを取り入れます。新しいGCNアーキテクチャはその兆候です。したがって、シェーディング言語はすぐに使用できるようになりますが、一般化できるものは限られているため、カスタムビルドのソリューションがなくなることはありません。


私は興味があります-このような言語はどこにありますか?UnityやUE4のシェーダーシステムなどのエンジン固有のものや、Sparkなどの学術的研究があることは知っていますが、この分野で現在使用されているものについては知りません。
Nathan Reed、

@NathanReed、おそらくAppleの金属は、今のように、最も顕著なの一つですが、私は...多くの詳細に見ていない
glampert

ああ、そう。ただし、MetalはHLSLまたはGLSLの上にはありません。これはApple GPUの主要なシェーディング言語であり、HWマイクロコードに直接コンパイルされます(独自のLLVMバックエンドを介して)。
Nathan Reed
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.