Merge pull request #1342 from colobot/dev-lighting-fix

Fixes lighting issues and mipmapping
pyro-refactor
Mateusz Przybył 2020-08-03 20:48:15 +02:00 committed by GitHub
commit 5749fff377
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 4 deletions

View File

@ -886,6 +886,8 @@ void CGL33Device::UpdateTexture(const Texture& texture, Math::IntPoint offset, I
glTexSubImage2D(GL_TEXTURE_2D, 0, offset.x, offset.y, texData.actualSurface->w, texData.actualSurface->h,
texData.sourceFormat, GL_UNSIGNED_BYTE, texData.actualSurface->pixels);
glGenerateMipmap(GL_TEXTURE_2D);
SDL_FreeSurface(texData.convertedSurface);
}

View File

@ -84,8 +84,8 @@ void main()
{
LightParams light = uni_Light[i];
vec3 lightDirection = normalize(light.Position.xyz);
vec3 reflectAxis = normalize(lightDirection + camera);
vec3 lightDirection = light.Position.xyz;
vec3 reflectAxis = normalize(normalize(lightDirection) + camera);
float diffuseComponent = clamp(dot(normal, lightDirection), 0.0f, 1.0f);
float specularComponent = pow(clamp(dot(normal, reflectAxis), 0.0f, 1.0f), 10.0f);

View File

@ -83,8 +83,8 @@ void main()
for (int i = 0; i < uni_LightCount; i++)
{
vec3 lightDirection = normalize(uni_Light[i].Position.xyz);
vec3 reflectAxis = normalize(lightDirection + camera);
vec3 lightDirection = uni_Light[i].Position.xyz;
vec3 reflectAxis = normalize(normalize(lightDirection) + camera);
ambient += uni_Light[i].Ambient;
diffuse += clamp(dot(normal, lightDirection), 0.0f, 1.0f)