3

Apple の開発者ツールでOpenGL Shader Builderを発見しました。とても重宝しそうです。唯一の問題は、保存ダイアログで *.vs と *.fs の使用を主張しているように見えることです。私は通常、シェーダー ファイル拡張子にそれぞれ *.vert と *.frag を使用します。これらのデフォルトを変更する方法はありますか? (これにはハックなソリューションが含まれる可能性があります)

4

1 に答える 1

2

私は最初にカスタム#includeプリプロセッサを使用することになりました (非常に簡単に作成できます!)。

ダミー ラッパー シェーダを作成:

test.vert

#include test.vs

test.frag

#include test.fs

これはややひどいハックであり、コードを共有している場合は svn/git/whatever に含めたくないことは間違いありませんが、微調整時にターンアラウンドが必要な場合には最適です。

より多くの人がいくつかの異なるファイル拡張子を使用するようになったため、シェーダーをロードする方法をさらに追加することになりました。

LoadShader("MyShader", <List of preprocessors>)
LoadShader("vertex shader", "fragment shader", ... , <List of preprocessors>)

(ここでは簡略化。実際に渡されるのは構造体です)

最初の関数は次のことを行います:

  • [".vert",".vs".. etc]頂点シェーダー用のテキスト ファイル
  • [".frag",".fs".. etc]フラグメント シェーダー用のテキスト ファイル
  • 等..

ユーザーは、サポートするファイル拡張子を定義できます。

2 番目の関数は、正確なファイル名を使用するだけです。最初の関数では、可能な組み合わせはプリプロセッサによって制限されます。2 番目のオプションでは、任意のシェーダー ファイルを組み合わせることができ、プリプロセッサを使用してバリエーションを作成することもできます。

これはもちろん単純化されていますが、一般的な考え方を示しています。

于 2012-10-22T15:33:13.000 に答える