glsl にシェーダー ファイルを含めるためにマクロを使用したくありません。マクロをサポートする拡張機能#include
があると聞きました。マクロの使用方法を示すコード スニペットを教えてくれる人はいますか?ARB_shading_language_include
#include
#include
質問する
24594 次
2 に答える
56
shading_language_includeについて最初に理解する必要があるのは、そうではないことです。「ディスクからの#include
ファイル」ではありません。OpenGL はファイルが何であるかを知りません。ファイルシステムの概念はありません。
代わりに、含める可能性のあるすべてのファイルを事前にロードする必要があります。したがって、シェーダー文字列と、文字列をロードしたファイル名があります。基本的に、OpenGL 内に仮想ファイルシステムを構築する必要があります。
glNamedStringARB
文字列を仮想ファイルシステムにアップロードするために使用します。文字列の名前は完全なパス名です。
仮想ファイルシステムを構築したら、コンパイルするシェーダーごとにエクステンションを初期化する必要があります。
#version MY_OPENGL_VERSION //Whatever version you're using.
#extension GL_ARB_shading_language_include : require
#extension
声明の後、あなたはあなたが適切だと思うかもしれませ#include
ん。
于 2012-05-25T14:20:28.000 に答える
10
0xbadf00d さんの質問に答えたいのですが、評判が悪いです。
ARB/shading_language_include.txtから: "<type>
でなければなりませんSHADER_INCLUDE_ARB
"
于 2016-07-20T13:46:49.000 に答える