Files
scummvm-cursorfix/engines/hpl1/engine/impl/shaders/hpl1_PostEffect_Motion.vertex
2026-02-02 04:50:13 +01:00

48 lines
1.1 KiB
Plaintext

// Copyright 2006-2010 (C) - Frictional Games
//
// This file is part of HPL1 Engine
//
// For conditions of distribution and use, see copyright notice in LICENSE-shaders
//
///////////////////////////////////////////////////////
/// SIMPLE DIFFUSE COLOR VERTEX PROGRAM ////////////
///////////////////////////////////////////////////////
vec4 position = gl_Vertex;
vec3 normal = gl_Normal;
vec3 color = gl_Color.xyz;
out vec4 vVtxPos;
out vec4 vPrevVtxPos;
uniform mat4 modelView;
uniform mat4 prevModelView;
uniform mat4 worldViewProj;
uniform mat4 prevWorldViewProj;
uniform float blurScale;
void main()
{
//Get the positions in eye space
vec4 pos = (modelView * position);
vec4 prevPos = (prevModelView * position);
//Transform normal to eye space
vec3 eyeNormal = mat3(modelView) * normal;
// calculate eye space motion vector
vec3 motionVector = pos.xyz - prevPos.xyz;
//Get the positions in window space.
pos = (worldViewProj * position);
prevPos = (prevWorldViewProj * position);
//Interpolate the previous according to blurscale
prevPos = mix(pos, prevPos, blurScale);
gl_Position = pos;
vVtxPos = pos;
vPrevVtxPos = prevPos;
}