mirror of
https://github.com/XProger/OpenLara.git
synced 2025-04-21 03:21:51 +02:00
#8 fix right button delta, add shader code for fog & backlight
This commit is contained in:
parent
dbd2a45bed
commit
8acb93a204
BIN
bin/OpenLara.exe
BIN
bin/OpenLara.exe
Binary file not shown.
@ -171,10 +171,10 @@ struct Camera : Controller {
|
||||
pos = pos + v.normal() * (Core::deltaTime * 2048.0f);
|
||||
#endif
|
||||
if (Input::down[ikMouseR]) {
|
||||
vec2 delta = Input::mouse.pos - Input::mouse.start.L;
|
||||
vec2 delta = Input::mouse.pos - Input::mouse.start.R;
|
||||
angleAdv.x += delta.y * 0.01f;
|
||||
angleAdv.y += delta.x * 0.01f;
|
||||
Input::mouse.start.L = Input::mouse.pos;
|
||||
Input::mouse.start.R = Input::mouse.pos;
|
||||
}
|
||||
|
||||
float height = 0.0f;
|
||||
|
@ -6,10 +6,11 @@ R"====(
|
||||
#endif
|
||||
varying vec2 vTexCoord;
|
||||
varying vec4 vColor;
|
||||
|
||||
|
||||
#ifdef VERTEX
|
||||
uniform mat4 uViewProj;
|
||||
uniform mat4 uModel;
|
||||
uniform mat4 uViewInv;
|
||||
uniform vec4 uColor;
|
||||
|
||||
#ifndef SPRITE
|
||||
@ -17,8 +18,6 @@ varying vec4 vColor;
|
||||
uniform vec3 uLightPos;
|
||||
uniform vec2 uAnimTexRanges[MAX_RANGES];
|
||||
uniform vec2 uAnimTexOffsets[MAX_OFFSETS];
|
||||
#else
|
||||
uniform mat4 uViewInv;
|
||||
#endif
|
||||
|
||||
uniform vec4 uParam; // x - time
|
||||
@ -55,6 +54,7 @@ varying vec4 vColor;
|
||||
vTexCoord = aTexCoord.xy * TEXCOORD_SCALE;
|
||||
coord.xyz -= uViewInv[0].xyz * aTexCoord.z + uViewInv[1].xyz * aTexCoord.w;
|
||||
#endif
|
||||
|
||||
gl_Position = uViewProj * coord;
|
||||
}
|
||||
#else
|
||||
@ -73,13 +73,22 @@ varying vec4 vColor;
|
||||
color *= vColor;
|
||||
#ifndef SPRITE
|
||||
color.xyz = pow(abs(color.xyz), vec3(2.2));
|
||||
float lum = dot(normalize(vNormal.xyz), normalize(vLightVec));
|
||||
vec3 normal = normalize(vNormal.xyz);
|
||||
vec3 lightVec = normalize(vLightVec);
|
||||
vec3 viewVec = normalize(vViewVec);
|
||||
float lum = dot(normal, lightVec);
|
||||
float att = max(0.0, 1.0 - dot(vLightVec, vLightVec) / uLightColor.w);
|
||||
vec3 light = uLightColor.xyz * max(vNormal.w, lum * att) + uAmbient;
|
||||
// apply backlight
|
||||
light *= max(vNormal.w, dot(normal, viewVec) * 0.5 + 0.5);
|
||||
color.xyz *= light;
|
||||
color.xyz = pow(abs(color.xyz), vec3(1.0/2.2));
|
||||
#endif
|
||||
gl_FragColor = color;
|
||||
|
||||
// fog
|
||||
float fog = clamp(1.0 / exp(gl_FragCoord.z / gl_FragCoord.w * 0.000025), 0.0, 1.0);
|
||||
|
||||
gl_FragColor = mix(vec4(0.0), color, fog);
|
||||
}
|
||||
#endif
|
||||
)===="
|
Loading…
x
Reference in New Issue
Block a user