Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.78 KB | None | 0 0
  1.     private void getSampleOffsetsBlur(int width, int height, float[] offsets, int numOffsets, boolean bHorizontal, float fDeviation, float fMultiplier) {
  2.         float tu = 1.0f / (bHorizontal ? width : height);
  3.         float halfTexel = tu * 0.5f;
  4.  
  5.         // center
  6.         offsets[0 * numOffsets + 0] = 0.0f;
  7.         offsets[0 * numOffsets + 1] = 0.0f;
  8.         offsets[0 * numOffsets + 2] = fMultiplier * gaussianDistribution(0, 0, fDeviation);
  9.  
  10.         // offsets to the right, these are all in-between texels samples (bilinear filtering must be enabled)
  11.         int numMiddleTaps = (numOffsets - 1) / 2;
  12.         for (int i = 1; i <= numMiddleTaps; i++) {
  13.             offsets[i * numOffsets + 2] = fMultiplier * gaussianDistribution((float) i, 0, fDeviation);
  14.  
  15.             if (bHorizontal) {
  16.                 offsets[i * numOffsets + 0] = (float) (i * 2 - 1) * tu + halfTexel;
  17.                 offsets[i * numOffsets + 1] = offsets[0 * numOffsets + 1];
  18.             } else {
  19.                 offsets[i * numOffsets + 0] = offsets[0 * numOffsets + 0];
  20.                 offsets[i * numOffsets + 1] = -((float) (i * 2 - 1) * tu + halfTexel);
  21.             }
  22.         }
  23.  
  24.         // mirror the other half
  25.         for (int i = numMiddleTaps + 1; i <= (numMiddleTaps * 2); i++) {
  26.             offsets[i * numOffsets + 2] = offsets[(i - numMiddleTaps) * numOffsets + 2];
  27.  
  28.             if (bHorizontal) {
  29.                 offsets[i * numOffsets + 0] = -((float) ((i - numMiddleTaps) * 2) * tu - halfTexel);
  30.                 offsets[i * numOffsets + 1] = offsets[0 * numOffsets + 1];
  31.             } else {
  32.                 offsets[i * numOffsets + 0] = offsets[0 * numOffsets + 0];
  33.                 offsets[i * numOffsets + 1] = ((float) ((i - numMiddleTaps) * 2) * tu - halfTexel);
  34.             }
  35.         }
  36.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement