Changeset 3235 for GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders
- Timestamp:
- 12/26/08 02:44:45 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/depthOfField.cg
r3232 r3235 7 7 8 8 9 float2 ComputeBlurFactors(float4 color, float sceneRange )9 float2 ComputeBlurFactors(float4 color, float sceneRange, float zFocus) 10 10 { 11 11 float2 result; 12 12 13 const float m = 1.0f; 14 const float focalLen = 1.0f; 15 16 const float scale = 5e4f; 17 13 18 // Compute blur factor based on the CoC size scaled and normalized to 0..1 range 14 //float pixCoC = abs(Dlens * focalLen * (Zfocus - v.fDepth) / (Zfocus * (v.fDepth - focalLen))); 19 //float blur = abs(dLens * focalLen * (zFocus - color.w)) / (1e-6f + abs(zFocus * (color.w - focalLen))); 20 21 const float dist = abs(zFocus - color.w); 22 const float blur = scale * m * focalLen * dist / (sceneRange * (1e-6f + abs(color.w + dist * step(0, zFocus - color.w)))); 15 23 16 //float blur = saturate( pixCoC* scale / maxCoC);24 //float blur = saturate(blur * scale / maxCoC); 17 25 18 26 // Depth/blurriness value scaled to 0..1 range 19 //result = float2(v.fDepth/ sceneRange, blur);27 result = float2(color.w / sceneRange, blur); 20 28 21 29 return result; … … 30 38 ) 31 39 { 32 float average = .0f;40 float4 avgCol = float4(.0f); 33 41 float total_w = .0f; 34 42 35 43 for (int i = 0; i < NUM_DOF_TABS; ++ i) 36 44 { 37 float2 sampleTexCoord = texCoords + filterOffs[i] ;45 float2 sampleTexCoord = texCoords + filterOffs[i] * blurFactors.y; 38 46 float4 sampleCol = tex2Dlod(colorsTex, float4(sampleTexCoord, 0, 0)); 39 47 … … 41 49 float w = 1; 42 50 43 av erage+= sampleCol * w;51 avgCol += sampleCol * w; 44 52 total_w += w; 45 53 } 46 54 47 av erage/= max(total_w, 1e-6f);55 avgCol /= max(total_w, 1e-6f); 48 56 49 return saturate(average);57 return avgCol; 50 58 } 51 59 … … 54 62 uniform sampler2D colorsTex, 55 63 uniform float2 filterOffs[NUM_DOF_TABS], 56 uniform float sceneRange 64 uniform float sceneRange, 65 uniform float zFocus 57 66 ): COLOR 58 67 { … … 60 69 const float4 color = tex2Dlod(colorsTex, float4(IN.texCoords, 0, 0)); 61 70 62 float2 blurFactors = ComputeBlurFactors(color, sceneRange); 71 zFocus = min(zFocus, sceneRange * 0.5f); 72 float2 blurFactors = ComputeBlurFactors(color, sceneRange, zFocus); 73 74 //float4 outCol = float4(color.x, color.y, blurFactors.y, color.w); 63 75 float4 outCol = Blur(color, IN.texCoords, blurFactors, colorsTex, filterOffs); 64 76
Note: See TracChangeset
for help on using the changeset viewer.