2018-12-15 00:09:37 +03:00
|
|
|
$input v_texcoord0
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright 2018 Attila Kocsis. All rights reserved.
|
2022-01-15 22:59:06 +03:00
|
|
|
* License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
|
2018-12-15 00:09:37 +03:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include "../common/common.sh"
|
|
|
|
|
|
|
|
SAMPLER2D(s_color, 0);
|
|
|
|
SAMPLER2D(s_normal, 1);
|
|
|
|
SAMPLER2D(s_ao, 2);
|
|
|
|
|
|
|
|
uniform vec4 u_combineParams[2];
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
vec2 tc0 = v_texcoord0 * u_combineParams[1].xy + u_combineParams[1].zw;
|
|
|
|
vec3 albedoColor = vec3(1.0,1.0,1.0);
|
|
|
|
if (u_combineParams[0].x > 0.0)
|
|
|
|
{
|
|
|
|
albedoColor = texture2D(s_color, tc0).rgb;
|
|
|
|
}
|
|
|
|
|
|
|
|
float light = 1.0;
|
|
|
|
if (u_combineParams[0].x > 0.0)
|
|
|
|
{
|
|
|
|
vec3 n = texture2D(s_normal, tc0).xyz;
|
|
|
|
// Expand out normal
|
|
|
|
n = n*2.0-1.0;
|
|
|
|
vec3 l = normalize(vec3(-0.8,0.75,-1.0));
|
|
|
|
light = max(0.0,dot(n,l)) * 1.2+ 0.3;
|
|
|
|
}
|
|
|
|
|
|
|
|
float ao = 1.0;
|
|
|
|
if ( u_combineParams[0].y > 0.0)
|
|
|
|
{
|
|
|
|
ao = texture2D(s_ao, tc0).x;
|
|
|
|
}
|
|
|
|
|
|
|
|
gl_FragColor = vec4(albedoColor * light * ao, 1.0f);
|
|
|
|
}
|
|
|
|
|