Имеется ландшафт который я хочу осветить. Собственно везде освещение нормальное, а ближе к центру огромное белое пятно! Я пока не пойму из за чего это пятно, и как это исправить. Нужна помощь. Мне нужно понять из за чего это белое пятно выходит, и понять как его исправить?
Вот скриншет со смартфона samsung galaxy S4
Теперь покажу как на эмуляторе andy
Теперь покажу как распологаются нормали
Вот код фрагментного шейдера:
precision mediump float;
varying vec3 vPosition;
uniform sampler2D uTexture;
uniform sampler2D uTexture2;
uniform vec3 u_camera;
varying vec2 vTexcoord;
varying vec3 v_normal;
float getLight(vec3 lightPos,vec3 camPos,vec3 vertexPos, vec3 normal,
float ambient, float k_diffuse, float k_specular)
{
vec3 n_normal=normalize(normal);
vec3 lightvector = normalize(lightPos - vertexPos);
vec3 lookvector = normalize(camPos - vertexPos);
float diffuse = k_diffuse * max(dot(n_normal, lightvector), 0.0);
vec3 reflectvector = reflect(-lightvector, n_normal);
float specular = k_specular * pow( max(dot(lookvector,reflectvector),0.0), 60.0 );
return ambient+diffuse+specular;
}
void main() {
vec3 lightPos = vec3(60.0,100.0,-415.0);
float light = getLight(lightPos,u_camera,vPosition,v_normal,
0.5, 0.9, 0.3);
vec4 pixsel;
vec3 pos = normalize(vPosition);
if (pos.y > 0.01)
pixsel = texture2D(uTexture2,vTexcoord);
else
pixsel = texture2D(uTexture,vTexcoord);
gl_FragColor = light * pixsel;
}
Ответ
Проблема решена, на самом деле не верно передавались координаты камеры.
Комментариев нет:
Отправить комментарий