User Texture Divisor exposed to Material Instance post process overrides

Hey.

I’ve got a simple question regarding a potential feature.

Is there a technical reason why the parameter User Texture Divisor not exposed to the Material Instance post process property overrides?

Because it would help out the general edit-experience of effects that require a lot of User Scene Texture passes.

Cheers!

Tomislav

[Attachment Removed]

I can see how this could be useful, so I’ll bring it up with the team. Out of curiosity, what problem are you trying to solve with it right now?

[Attachment Removed]

So, I was implementing a Dual Kawase Blur which requires a certain amount of downsample passes and the same amount of upsample passes. In our case, I decided to go with 4 down and 4 up. Which ended up being 8 passes, and, with the current workflow, 8 master materials because I need a different user texture divisor for each pass.

In this case, It would’ve been cool to have a divisor exposed to a material instance, so then I could have one master material with a static switch that selects either an upsample or a downsample code. And in instances I would just tweak the divisor and the said static switch.

[Attachment Removed]

Did you find the “Resolution Relative To Input” option anywhere? That should be all you need to use Material Instances instead of completely separate graphs.

[Attachment Removed]

There’s no parameter like that inside the material instance. [Image Removed]That parameter is only inside the material itself.

[Attachment Removed]

Right, but then if you chain a few instances together and set different inputs and outputs on those instances, the user scene texture divisor is going to be relative to the input. For a downscale then upscale you have to do two material graphs, (one for positive divisor and one for negative divisor). If I chain them together like we do in the tutorial I can downscale and upscale as many instances as I want so long as I have another PPM at the end of the chain that samples my last output and draws it to the screen. So it looks like:

PPM_Down

  • User Scene Texture Output = Output
  • Divisor = 2/2
  • Resolution Relative To Input = Input

PPMI_Down1

  • Input = SceneColor
  • Output = Down1

PPMI_Down2

  • Input = Down1
  • Output = Down2

PPMI_Down3

  • Input = Down2
  • Output = Down3

PPM_Up

  • User Scene Texture Output = Output
  • Divisor = -2/-2
  • Resolution Relative To Input = Input

PPMI_Up1

  • Input = Down3
  • Output = Up1

PPMI_Up2

  • Input = Up1
  • Output = Up2

PPMI_Up3

  • Input = Up2
  • Output = Up3

PPM_Apply

  • Input = Up3

[Attachment Removed]

Hey, Matt.

I see. It makes a lot of sense now.

Will try to reimplement it like that.

I kinda missed that functionality of “Resolution Relative to Input”

Thanks for the detailed example.

Cheers!

[Attachment Removed]