0

頂点シェーダーをコンパイルしようとすると、セグメンテーション エラーが発生します。頂点属性を渡す際の問題を特定したと思います。次の行はコンパイルされます (動作しない可能性がありますが、それでもコンパイルされます)。

# version 330
layout(location=0) in vec4 in_Loc;
layout(location=1) in vec4 in_Color;
layout(location=2) in vec4 in_Norm;

また

# version 330
layout(location=0) in vec4 in_Loc;
layout(location=1) in vec4 in_Color;
layout(location=25) in vec4 in_Norm;

しかし

# version 330
layout(location=0) in vec4 in_Loc;
layout(location=1) in vec4 in_Color;
layout(location=2) in vec4 in_Norm;
layout(location=33) in vec4 in_Anything

コンパイルされません。vec4 属性は 3 つしか定義できないと思います。ただし、GL_MAX_VERTEX_ATTRIBS を指定した glGetIntegerv は、OpenGL 標準に準拠した 16 を返します。これは私のハードウェアに関連する何らかのバグですか? Intel グラフィックス カードを使用しています

    *-display
         description: VGA compatible controller
         product: 3rd Gen Core processor Graphics Controller
         vendor: Intel Corporation
         physical id: 2
         bus info: pci@0000:00:02.0
         version: 09
         width: 64 bits
         clock: 33MHz
         capabilities: msi pm vga_controller bus_master cap_list rom
         configuration: driver=i915 latency=0
         resources: irq:49 memory:f0000000-f03fffff memory:e0000000-efffffff ioport:3000(size=64)

とメサ 10:

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.0
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile.

OSはubuntu14.04です。

4

1 に答える 1