2012-12-04 118 views
0

我试图从顶点着色器的一些载体发送到片段着色器: 例如:通行证到片段着色器

vec3 N = (view*model*vNormal).xyz 

,并试图在片段着色器到达它的时候:

Link errorERROR: Input of fragment shader 'N' not written by vertex shader 

有什么想法?

回答

3

要在着色器阶段之间传递值,您必须使用所谓的变化;关键字是varyingoutin - 在GLSL 1.20到1.40之间有一个关键字变化,但您需要特殊类型限定符的基本要点。有关详细信息,请参阅http://www.opengl.org/wiki/GLSL_Type_Qualifiers#Shader_stage_inputs_and_outputs

+0

OFC向量着色器我用 '出VEC3 N' 并在VEC3 N' FS'但它不利于 – mjanisz1

+0

@ mjanisz1:你说你的代码是'VEC3 N = ...'。在这段代码中,'N'是一个* local *变量。您需要全局声明着色器阶段输入/输出*。 –