115 lines
2.5 KiB
C++
115 lines
2.5 KiB
C++
#define float4 vec4
|
||
#define float3 vec3
|
||
#define float2 vec2
|
||
|
||
|
||
|
||
|
||
varying vec3 normal;
|
||
varying vec2 texture_coordinate_1;
|
||
varying vec4 position;
|
||
varying vec4 thecolor;
|
||
|
||
uniform mat4 ProjectionMatrix;
|
||
|
||
|
||
void main()
|
||
{
|
||
mat4 Billboard;
|
||
|
||
vec4 glVertex=gl_Vertex;
|
||
|
||
vec4 Next_Position;
|
||
|
||
//gl_Position = gl_TextureMatrix[0] * gl_Vertex;
|
||
|
||
|
||
float4 MotionBlurPos_current=gl_TextureMatrix[0]*gl_Vertex;
|
||
float4 MotionBlurPos_previous=gl_TextureMatrix[1]*gl_Vertex;
|
||
|
||
|
||
|
||
float3 MotionBlurmotionVector=MotionBlurPos_current.xyz-MotionBlurPos_previous.xyz;
|
||
|
||
|
||
float4 MotionBlurNormalDirection=float4 (0.0,0.0,0.0,0.0)-gl_Vertex.xyzz;
|
||
MotionBlurNormalDirection= -gl_Normal.xyzz*1.0;
|
||
|
||
///MotionBlurNormalDirection=gl_TextureMatrix[0]*MotionBlurNormalDirection;
|
||
// normalize (MotionBlurNormalDirection);
|
||
|
||
|
||
|
||
float MotionBlurflag=dot (MotionBlurmotionVector.xyz,MotionBlurNormalDirection.xyz);
|
||
float4 MotionBlurstretch;
|
||
|
||
float smm=0.0;
|
||
if (MotionBlurflag>-0.0)
|
||
{
|
||
MotionBlurstretch = MotionBlurPos_current+(MotionBlurPos_previous-MotionBlurPos_current)*1.0;
|
||
smm=1.0;
|
||
}
|
||
else
|
||
{
|
||
smm=0.3;
|
||
MotionBlurstretch= MotionBlurPos_current;
|
||
}
|
||
|
||
|
||
|
||
//MotionBlurstretch = MotionBlurPos_current+(MotionBlurPos_previous-MotionBlurPos_current)*1.0;
|
||
|
||
|
||
|
||
|
||
//MotionBlurPos_current.xyz=MotionBlurPos_current.xyz/MotionBlurPos_current.w;
|
||
//MotionBlurstretch.xyz=MotionBlurstretch.xyz/MotionBlurstretch.w;
|
||
//MotionBlurstretch=MotionBlurPos_previous;
|
||
gl_Position = gl_ModelViewProjectionMatrix* MotionBlurstretch;
|
||
|
||
float3 MotionBlur_dP=MotionBlurstretch.xyz-MotionBlurPos_current.xyz;
|
||
|
||
float4 Mot=MotionBlur_dP.xyzz;
|
||
Mot=gl_ModelViewProjectionMatrix*Mot;
|
||
MotionBlur_dP.xyz=Mot.xyz;
|
||
|
||
MotionBlur_dP+=float3 (1.0);
|
||
MotionBlur_dP*=0.5;
|
||
|
||
|
||
thecolor =MotionBlur_dP.xyzz;
|
||
//thecolor =MotionBlurNormalDirection.xyzz;
|
||
//thecolor=float4 (smm);
|
||
//thecolor=(MotionBlurPos_previous-MotionBlurPos_current).xyzz+float4 (0.5,0.5,0.5,0.5);
|
||
//thecolor=gl_TextureMatrix[0]*gl_Normal.xyzz;
|
||
//gl_Position= gl_ModelViewProjectionMatrix*gl_TextureMatrix[0]*gl_Vertex;
|
||
|
||
//thecolor=MotionBlurstretch.xyzz;
|
||
|
||
|
||
// Transforming The Normal To ModelView-Space
|
||
// normal = gl_NormalMatrix * gl_Normal;
|
||
//normal = gl_Normal;
|
||
//texture_coordinate_1 = vec2(gl_MultiTexCoord0);
|
||
|
||
//position=(glVertex).xyzw;
|
||
//ShadowPosZ= ProjectionMatrix * gl_TextureMatrix[0]*gl_Vertex;
|
||
//position=g
|
||
// Transforming The Vertex Position To ModelView-Space
|
||
// vec4 vertex_in_modelview_space = gl_ModelViewMatrx * gl_Vertex;
|
||
|
||
// Calculating The Vector From The Vertex Position To The Light Position
|
||
// vertex_to_light_vector = vec3(gl_LightSource[0].position – vertex_in_modelview_space);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|