Java GLSL阵列不工作
我一直在尝试创建一个片段着色器,但是在创建一个简单的vec2常量数组时遇到了很多麻烦。我到处找遍了,试遍了我能找到的一切,比如:Java GLSL阵列不工作,java,arrays,opengl,glsl,lwjgl,Java,Arrays,Opengl,Glsl,Lwjgl,我一直在尝试创建一个片段着色器,但是在创建一个简单的vec2常量数组时遇到了很多麻烦。我到处找遍了,试遍了我能找到的一切,比如: const vec2 poisson16[16] = vec2[](vec2( -0.94201624, -0.39906216 ), vec2( 0.94558609, -0.76890725 ), vec2( -0.094184101, -0.92
const vec2 poisson16[16] = vec2[](vec2( -0.94201624, -0.39906216 ),
vec2( 0.94558609, -0.76890725 ),
vec2( -0.094184101, -0.92938870 ),
vec2( 0.34495938, 0.29387760 ),
...some other vec2's...
vec2( -0.81409955, 0.91437590 ),
vec2( 0.19984126, 0.78641367 ),
vec2( 0.14383161, -0.14100790 ) );
但它会打印:
ERROR: 0:23: ']' : syntax error syntax error
ERROR: 0:38: ';' : syntax error syntax error
我还尝试:
const vec2 poisson16[16] = { vec2( -0.94201624, -0.39906216 ),
vec2( 0.94558609, -0.76890725 ),
vec2( -0.094184101, -0.92938870 ),
vec2( 0.34495938, 0.29387760 ),
...some more vec2's...
vec2( -0.81409955, 0.91437590 ),
vec2( 0.19984126, 0.78641367 ),
vec2( 0.14383161, -0.14100790 ) };
但这会反过来:
ERROR: 0:22: '{' : syntax error syntax error
给出错误的着色器是片段着色器。在我的程序中,我将java与LWJGL结合使用,并将ARB扩展用于着色器。我用于着色器的设置是直接从中复制的。我根本找不到解决这个问题的方法,我尝试的每件事都以错误告终。可能是着色器设置有问题?,第3.3节,“预处理器”,第14页:
语言版本1.10不要求着色器包含此指令[#Version
],并且不包含#Version指令的着色器将被视为目标版本1.10。
因此,由于没有指定#version
指令,因此假定GLSL为#version 110
因此,根据第4.1.9节“阵列”,第27页:
在着色器中没有在声明时初始化数组的机制
不过,您可以使用
#version 120
及更高版本来执行您想要的操作。顺便说一句,我尝试使用的着色器是简单的SSAO着色。如果你有自己的SSAO着色器,发布它就像修复我的数组问题一样好。你的#version
指令在哪里?