Announcement

Collapse
No announcement yet.

Getting render size for RetainerBox UserInterface material

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Getting render size for RetainerBox UserInterface material

    I'm trying to write a UserInterface blur material to use on the contents of a RetainerBox. However it seems like GetPostProcessInputSize(0) and View.ViewSizeAndSceneTexelSize don't work.

    What should I use?

    Here's my shader:

    Code:
    float4 res = 0;
    // !!Doesn't work!!
    float2 invSize = GetPostProcessInputSize(0).zw;
    
    // !!Doesn't work either!!
    float2 invSize = View.ViewSizeAndSceneTexelSize.xy / View.RenderTargetSize;
    
    
    float weights[] =
    {
      0.01, 0.02, 0.04, 0.02, 0.01,
      0.02, 0.04, 0.08, 0.04, 0.02,
      0.04, 0.08, 0.16, 0.08, 0.04,
      0.02, 0.04, 0.08, 0.04, 0.02,
      0.01, 0.02, 0.04, 0.02, 0.01
    };
    float offsets[] = { -2, -1, 0, 1, 2 };
    
    UV *= 0.5;
    for (int i = 0; i < 5; ++i)
    {
      float v = UV.y + offsets[i] * invSize.y;
      int temp = i * 5;
      for (int j = 0; j < 5; ++j)
      {
        float u = UV.x + offsets[j] * invSize.x;
        float2 uvShifted = UV + float2(u, v);
        float weight = weights[temp + j];
        float4 tex = Texture2DSample(Texture, TexSampler, uvShifted);
        res += tex * weight;
      }
    }
    
    return res;
Working...
X