Credits: elliotwoods, colorsound, catweasel
This shader enables you to edge blend in 3D, which is especially useful for projection mapping. This is a bit of a 'kitchen sink' shader which includes some other useful bits for mapping as well.
You need to edit the shader dependin on how many projectors you have.
Edit line #7 in the shader:
and set nRegions to your number of projectors
Set your blend vector to be the unit vector in the direction you want to blend in, e.g. if you're blending across the width of your sculpture, then chances are that you want the blend vector to be (1,0,0). This means that blends are cast across the x dimension.
Then set 'yBlends' (called 'Edge Blend Line' in the help patch) to the places where you want to blend.
Your renderer will need to have seperate viewports for each projector.
Check the help patch!
Also, if you want to project a texture onto the object using a projection matrix, then input your projection matrix into 'tProjection' as set 'useProjection' to 1.
P.S. for calibration,
it's good to input a grid texture, set useProjection to 1, and not use anyting on tProjector.
That way, your grid will be projected directly in x,y onto your object, so you can calibrate.
P.S. This shader generally presumes that all your projectors are in a line facing towards your target.
It doesn't deal with multiple projectors that inwards / outwards onto a scene.
I get the error "failed to open 'Bucubic.fxh'"
correcting line 57 from
will reference the vvvv included .fxh file and thus throw no error
ATI HD6970 the Gamma settings don t seem to have any effect. Didn t have the time to look into the shader for the usual suspects, any take on this?
yay! There a commented out line which works for ATI :
Now, the next step would be a dynamic gamma correction.
Not sure but you should be able to input 4 RGB parameters, for RGB and probably for full white, that would be a projector/lamp color footprint. Based on this footprint a gamma correction should be calculated for every pixel that is shared among more than one viewport.
anonymous user login