1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
// 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;
}
|