GLSL シェーダーに問題があります。フラグメント シェーダー部分をコンパイルしようとすると、次のエラーが発生します。
0:24: error(#181) Cannot be used with a structure: out
error(#273) 1 compilation errors. No code generated
したがって、問題は out 変数の周りにあると思います。ここに私のフラグメントシェーダーがあります:
#version 410
uniform mat4 gWVP;
uniform mat4 gWorld;
uniform sampler2D gColorMap;
in VSOutput
{
vec3 WorldSpacePos;
vec2 TexCoord;
vec3 Normal;
} FSin;
struct FSOutput
{
vec3 WorldSpacePos;
vec3 Diffuse;
vec3 Normal;
vec3 TexCoord;
};
out FSOutput FSOut;
void main()
{
FSOut.WorldSpacePos = FSin.WorldSpacePos;
FSOut.Diffuse = texture(gColorMap, FSin.TexCoord).xyz;
FSOut.Normal = normalize(FSin.Normal);
FSOut.TexCoord = vec3(FSin.TexCoord, 0.0);
}
私が知っているように、OpenGL 4.0+で構造体を出力できるはずですよね? だから私はエラーを取得しません、それはドライバーの問題ですか、それともそのようなものですか?13.4 ドライバを搭載した Radeon HD 6950 で実行しています。