Перейти к содержанию

GLSL HWARNING: warning(#276) драйвер FGLRX и ОС Ubuntu


Рекомендуемые сообщения

Пишу OpenGL проект на Qt. Запилил шейдеры причём два фрагментных и два вершинных шейдера в программу линкуются. На NVIDIA всё путём, а на AMD получаю сабж. Пожалуйста, помогите разобраться с этим. Если надо могу выложить .cpp файлы (а их очень много).

#define lowp

#define mediump

#define highp

varying vec3 NORM;

varying vec3 POS;

uniform int M_L;

void SpotLight(in int i, in bool b, inout vec4 amb, inout vec4 dif, inout vec4 spec){

vec3 n = b?NORM:-NORM;vec3 eye = -normalize(POS.xyz);

float nDotVP, nDotHV, pf, spotDot, spotAttenuation, attenuation, d;

vec3 VP, halfVector;

VP = vec3(gl_LightSource.position)-POS;

d = length(VP);

VP = normalize(VP);

attenuation = 1.0 / (gl_LightSource.constantAttenuation+gl_LightSource.linearAttenuation*d+gl_LightSource.quadraticAttenuation*d*d);

spotDot = dot(-VP, gl_LightSource.spotDirection);

if(spotDot

spotAttenuation = 0.0;

else

spotAttenuation = pow(spotDot, gl_LightSource.spotExponent);

attenuation *= spotAttenuation;

halfVector = normalize(VP+eye);

nDotVP = max(0.0, dot(n, VP));

nDotHV = max(0.0, dot(n, halfVector));

if(nDotVP==0.0)

pf = 0.0;

else

pf = pow(nDotHV, gl_FrontMaterial.shininess);

amb += gl_LightSource.ambient;

dif += gl_LightSource.diffuse*nDotVP*attenuation;

spec += gl_LightSource.specular*pf*attenuation;

}

vec4 NEON_LIGHTING_COLOR()

{

vec4 amb = vec4(0.0);

vec4 diff = vec4(0.0);

vec4 spec = vec4(0.0);

for(int i=0; i

SpotLight(i, gl_FrontFacing, amb, diff, spec);

vec4 col = gl_FrontLightModelProduct.sceneColor + amb * gl_FrontMaterial.ambient + diff * gl_FrontMaterial.diffuse;

col += spec * gl_FrontMaterial.specular;

col.a = 1.0;

return col;

}

vec4 light_color = NEON_LIGHTING_COLOR();

#define lowp

#define mediump

#define highp

vec4 light_color;

varying vec3 POS;

void main(void)

{

gl_FragColor=gl_Color;

gl_FragColor.x*=abs(normalize(POS).x)*1.5;

gl_FragColor.y*=abs(normalize(POS).y)*1.5;

gl_FragColor.z*=abs(normalize(POS).z)*1.5;

gl_FragColor*=light_color;

}

#define lowp

#define mediump

#define highp

vec3 fp=ftransform().xyz;

vec3 tnormal=gl_Normal;

#define lowp

#define mediump

#define highp

varying vec3 POS;

varying vec3 NORM;

vec3 fp;

vec3 tnormal;

void main(void)

{

gl_Position=ftransform();

gl_FrontColor=gl_Color;

POS=fp;

NORM=tnormal;

}

Vertex_main_log:

{

}

Vertex_lighting_log:

{

}

Fragment_main_log:

{

}

Fragment_lighting_log:

{

}

ShaderProram_log:

{

Fragment shader(s) failed to link, Vertex shader(s) linked.

Fragment Shader not supported by HWWARNING: warning(#276) Symbol 'NORM' usage doesn't match between two stages

}

Ссылка на комментарий
  • 1 месяц спустя...

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...