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
|
const std::string transfFragVertexShader =
R"(#version 130
out mat4 newViewMatrix;
out mat4 projMat;
void main() {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
gl_FrontColor = gl_Color;
newViewMatrix = gl_ModelViewMatrix;
projMat = gl_ProjectionMatrix;
})";
const std::string transfFragFragmentShader =
R"(#version 130
uniform mat4 oldViewMatrix;
in mat4 newViewMatrix;
in mat4 projMat;
uniform vec3 resolution;
uniform sampler2D oldFrameBuffer;
void main() {
vec4 oldFragPos = inverse(projMat) * gl_FragCoord;
oldFragPos /= oldFragPos.w;
oldFragPos = inverse(newViewMatrix) * oldViewMatrix * oldFragPos;
oldFragPos /= oldFragPos.w;
oldFragPos = oldFragPos * projMat;
vec2 position = (resolution.xy / oldFragPos.xy);
gl_FragColor = texture2D(oldFrameBuffer, position);
})";
Edit / Delete Edit Post Quick reply to this message Reply Reply With Quote Reply With Quote Multi-Quote This Message |
Partager