diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-05-12 00:35:55 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-05-12 00:35:55 (GMT) |
| commit | d69fc052fabf38b6691970c38abe4c8525eff3e8 (patch) | |
| tree | 857691fe7d792a8dde25167e134ed3e12ce01f9f /includes | |
| parent | d7fa0b139e5a91c3b1d406e63cae4a6ad79d0cd0 (diff) | |
| download | powder-d69fc052fabf38b6691970c38abe4c8525eff3e8.zip powder-d69fc052fabf38b6691970c38abe4c8525eff3e8.tar.gz | |
Fancy motion blur for OpenGL, fix a lot of dialogues in OpenGL, fix gravity lensing in OpenGL, ensure Phot and Neut are PMODE_ADD, not FLAT
Diffstat (limited to 'includes')
| -rw-r--r-- | includes/graphics.h | 29 | ||||
| -rw-r--r-- | includes/powder.h | 1 |
2 files changed, 22 insertions, 8 deletions
diff --git a/includes/graphics.h b/includes/graphics.h index 0f30405..22986a5 100644 --- a/includes/graphics.h +++ b/includes/graphics.h @@ -269,16 +269,29 @@ uniform sampler2D tfY;\ uniform float xres;\ uniform float yres;\ void main () {\ - vec4 transformX = texture2D(tfX, vec2(gl_TexCoord[0].s, -gl_TexCoord[0].t));\ - vec4 transformY = -texture2D(tfY, vec2(gl_TexCoord[0].s, -gl_TexCoord[0].t));\ - transformX.r /= xres;\ - transformY.g /= yres;\ - vec4 texColor = vec4(\ - texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.75, transformY.g*0.75)).r,\ - texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.875, transformY.g*0.875)).g,\ - texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r, transformY.g)).b,\ + vec4 transformX = texture2D(tfX, vec2(gl_TexCoord[0].s, gl_TexCoord[0].t));\ + vec4 transformY = texture2D(tfY, vec2(gl_TexCoord[0].s, gl_TexCoord[0].t));\ + transformX.r /= xres/4.0;\ + transformY.g /= yres/4.0;\ + vec4 texColor1 = vec4(\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.90, transformY.g*0.90)).r,\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.80, transformY.g*0.80)).g,\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.70, transformY.g*0.70)).b,\ 1.0\ );\ + vec4 texColor2 = vec4(\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.95, transformY.g*0.95)).r,\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.85, transformY.g*0.85)).g,\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.75, transformY.g*0.75)).b,\ + 1.0\ + );\ + vec4 texColor3 = vec4(\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.85, transformY.g*0.85)).r,\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.75, transformY.g*0.75)).g,\ + texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.65, transformY.g*0.65)).b,\ + 1.0\ + );\ + vec4 texColor = texColor1*0.6 + texColor2*0.2 + texColor3*0.2;\ gl_FragColor = texColor;\ }"; const char * lensVertex = "#version 120\n\ diff --git a/includes/powder.h b/includes/powder.h index 92310c1..3488d28 100644 --- a/includes/powder.h +++ b/includes/powder.h @@ -283,6 +283,7 @@ struct particle int type; int life, ctype; float x, y, vx, vy; + float lastX, lastY; float temp; float pavg[2]; int flags; |
