これは哲学的な質問のようなものです。シェーダコードはどこに保存する必要がありますか?
標準的なQtCreatorプロジェクトにシェーダコードを含めるためのエレガントな方法があるかどうかは疑問でした。私が知っている唯一の2つの方法は以下の通りです。
シェーダコードは、別のファイルにあります。 "fragmentshader.frag"、このファイルは実行時に読み込まれ、シェーダコードがコンパイルされ、リンクされます。
シェーダコードは、プロジェクトに含まれるソースファイルの1つにハードコードされた文字列です。
どちらの方法も私にとっては迷惑に見えます。最初の可能性は、実行可能ファイルと同じディレクトリになければならないハードドライブ上のファイルを必要とします(したがって、それらを各デバッグ/リリースディレクトリに入れて、シェーダファイルのいくつかの複製で終わらせる必要があります)私のドライブ上のディレクトリ、移植性に悪いようです。
\n
のようなものをシェーダコードに含める必要があるため、2番目の可能性があります。これはフォーマットの種類が醜いものにします。
これを行うには「正しい」方法はありますか?それが重要であれば、私はc/C++、OpenGL、およびGLSLでコーディングしています。
編集: 私はこのことについてGoogleで続けました...たとえば、アイコンファイルをプロジェクトの特別なリソースフォルダに保存することができます。これはファイルであり、そのように編集することができますが、実行時にはロードされません。シェイダーでそれを行う方法はありますか?
これはinteristingさんの
\n
!私は間違いなくそれを試みます! –すべての行頭に '' 'を追加する必要がありますか?ちょうど私のproファイルがC++ 11を使ってchar配列の中に設定されていれば、Enterを押すと自動的に引用符が付けられます。 –
これは 'glsl()'と各行の前後に引用符がついていなくても動作しました –