1. I'd like to implement velocity based motion blur - just based on camera movement for now not all vertexes. There's a handful of GLSL tutorials for motionblur that uses the vertex position & the change in camera position to fake blurs. However, they all require an input of the 'old' modelviewmatrix. I was wondering at what stage I should be saving the modelviewmatrix, in order to communicate it with the shader in the next frame? Any tips would be helpful.
I actually did try to implement velocity motion blur but didn't get far. The camera matrixes seems fixed, and cgame would need to be modified to accompany this motion blur by sending delta vectors over to the renderer. All that's left of this in the engine now are various GLSL variables unused. Instead I did some simple effect that just blends 5 frames together but unfortunately it's only effective for 120+/240fps. and the method does look similar to Voodoo5's T-Buffer method in that one Q3 hack
2. I'm also having trouble downsampling the GLSL shaders. I've taken a look at how the bloom works (to my understanding) but can't replicate it for the GLSL shader. What I'd like to do is shrink the screen, apply my shader, resize it & set it to 'add'. I can do all of these steps, but for some reason when resizing the shader it still displays as if it was calculated using all pixels - no framerate improvement either. The shader is "blur" based so a lower resolution would be ideal. It seems like the r_bloom_sample_size variable is used in the original postprocess function, yet it seems to make no difference.
The bloom effect is rather old and fixed function. If you do motion blur with the low resolution you'd have a noticable 'halo' effect around sharper edges, as well as more visible mipmap flickering.
3. The game crashes (for me) using GLSL shaders on a resolution higher than about 1680*. I'm not sure of the exact resolution but it definitely doesn't work on 1920* res. I figured this could be due to running into the max texture size while rendering to the postproc effect texture. Is this an engine limitation, and would the downsampling I mentioned above avoid this issue?
This was due to a typo in the caching of the depth texture. This is fixed in the
Git repository.