2017-04-22 9 views
1

GLSLシェーダをSPIR-Vバイナリにコンパイルし、それを私のOpenGLプロジェクトで使用したいと思います。OpenGL ARB_gl_spirv拡張機能の使い方は?

私はglslangを見つけました。私はglslシェーダをspir-vにコンパイルできます。しかし私は私のC + +プロジェクトでそれを使用する方法についてのチュートリアルは見つかりませんでした。これらのバイナリをロードし、そこからシェイダープログラムを作成するには?

答えて

3

C++で他のバイナリファイルをロードするのと同じように、SPIR-Vバイナリをロードします。シェーダをコンパイルするときには、glShaderBinaryglSpecializeShaderとを呼び出す必要があります。

GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER); 
glShaderBinary(1, &vertexShader, GL_SHADER_BINARY_FORMAT_SPIR_V_ARB, vertexData, sizeof(vertexData)); // vertexData is the SPIR-V file contents 
glSpecializeShader(vertexShader, "main", 0, nullptr, nullptr); 
glAttachShader(program, vertexShader); 
関連する問題