/* * Copyright (C) 2018 Tomasz Kramkowski * SPDX-License-Identifier: MIT */ #version 330 core out vec4 color; in vec3 fnorm; in vec3 fpos; in vec2 fuv; in vec3 lipos; uniform sampler2D tex; void main() { vec3 objco = vec3(texture(tex, fuv)); vec3 lico = vec3(1.0, 1.0, 1.0); float amb = 0.1; vec3 norm = normalize(fnorm); vec3 lidir = normalize(lipos - fpos); float dif = max(dot(norm, lidir), 0.0); float speen = max(sign(dot(lidir, norm)), 0.0); vec3 vwdir = normalize(-fpos); vec3 mid = normalize(lidir + vwdir); float spe = pow(max(dot(norm, mid), 0.0), 256) * speen; color = vec4((amb + dif + spe) * lico * objco, 1.0); }