Ошибка при компиляции шейдера - PullRequest
1 голос
/ 19 марта 2011

Я пытаюсь скомпилировать шейдер в книге: Руководство по программированию Opengl es 2.0 - глава 10 - Линейный туман от RenderMonkey и Visual studio 2008

Но выдает ту же ошибку: Ошибка при связывании программы

информация о вершине

фатальная ошибка C9999: * исключение при компиляции *

Я пытаюсь это исправить, но все равно не могу. Не могли бы вы сказать мне, что это за проблема и как ее решить ???

Код вершинного и фрагментного шейдера:

// ------------------------------------- вершинный шейдер ------ --------------------------------

uniform mat4 matViewProjection;
uniform mat4 matView;
uniform vec4 u_eyePos;

attribute vec4 rm_Vertex;
attribute vec2 rm_TexCoord0;

varying vec2 v_texCoord;
varying float v_eyeDist;

void main( void )
{
    // Transform vertex to view-space
    vec4 vViewPos = matView * rm_Vertex;

    // Compute the distance to eye
    v_eyeDist = sqrt( (vViewPos.x - u_eyePos.x) *
                      (vViewPos.x - u_eyePos.x) +
                      (vViewPos.y - u_eyePos.y) *
                      (vViewPos.y - u_eyePos.y) +
                      (vViewPos.z - u_eyePos.z) *
                      (vViewPos.z - u_eyePos.z) );                      

    gl_Position = matViewProjection * rm_Vertex;
    v_texCoord    = rm_TexCoord0.xy;
}

// ------------------------------------- фрагмент шейдера ------ -------------------------------

precision mediump float;

uniform vec4 u_fogColor;
uniform float u_fogMaxDist;
uniform float u_fogMinDist;
uniform sampler2D baseMap;

varying vec2 v_texCoord;
varying float v_eyeDist;

float computeLinearFogFactor()
{
   float factor;

   // Compute linear fog equation
   factor = (u_fogMaxDist - v_eyeDist) /
            (u_fogMaxDist - u_fogMinDist );

   // Clamp in the [0,1] range
   factor = clamp( factor, 0.0, 1.0 );

   return factor;            
}

void main( void )
{
    float fogFactor = computeLinearFogFactor();
    vec4  fogColor = fogFactor * u_fogColor;
    vec4 baseColor = texture2D( baseMap, v_texCoord );

    // Compute final color as a lerp with fog factor
    gl_FragColor = baseColor * fogFactor +
                   fogColor * (1.0 - fogFactor); 
}
...