question regarding enbbloom.fx

share shaders here
Post Reply
  • Author
  • Message
Offline
*sensei*
Posts: 372
Joined: 28 Jul 2013, 23:26

question regarding enbbloom.fx

Could anyone tell me the logic behind enbbloom.fx ?

I see;

First pass/ Pre pass or whatever you want to call it

"//zero pass HQ, input texture is fullscreen
//SamplerBloom1 - fullscreen texture"

>> SamplerBloom1 is input texture, to which texture is prepass writing? Again to SamplerBloom1 ?

Next...

"//first and second passes draw to every texture
//twice, after computations of these two passes,
//result is set as input to next cycle

//first pass
//SamplerBloom1 is result of prepass or second pass from cycle"

>> First and second passes write to every texture, please, which textures?? There's 8 textures including the SamplerBloom1, will it overwrite SamplerBloom1?
>> SamplerBloom1 is result of prepass or second pass from cycle, so, where is first pass or prepass is considdered first pass or what do you mean?
>> Is original input texture kept anywhere? If it is, in which Sampler is it?

Next...

"//second pass
//SamplerBloom1 is result of first pass"

>> Again, is this first pass or prepass? First pass in techniques is using Prepass shader. That's correct, but than first pass is actually the second pass, and second the third, or am I wrong?


I like to know which pass is using which texture for input and writes to which textures. There's 8 textures...

I see it uses 8 samplers with 8 textures..

texBloom1
texBloom2
texBloom3
texBloom4
texBloom5
texBloom6
texBloom7
texBloom8

SamplerBloom1 is always original, or is result of prepass, does it change with passes or remain same?

As far as I understand this happens
  • * SamplerBloom1 contains input texture
    * technique BloomPrePass overwrites texBloom1 texture
    * technique BloomTexture1 overwrites texBloom1 to 8 texture, using SamplerBloom1 as input
    * technique BloomTexture2 overwrites texBloom1 to 8 texture, using SamplerBloom1 as input again
    * technique BloomPostPass combines all bloom textures together and allows some extra tricks on layers which can be done in 1 pass ( I try understand why, but I don't know... )
Is this correct? This shader, even default that comes with ENB download is unclear to me.

There are notes in enbbloom.fx files that SamplerBloom5 contains only result of BloomPrePass? Correct or not? What is reason of so many textures when there is nobody using them or require them? I see only 4 passes in the file and 8 textures. How many passes can we make in total? Can we write each pass to different texture? Or overwrite only a few textures with a pass and not overwrite all textures?

Any insight would help.
Thanks,
prod

Offline
*sensei*
Posts: 372
Joined: 28 Jul 2013, 23:26

Re: question regarding enbbloom.fx

Nevermind I figured it out

Offline
User avatar
*blah-blah-blah maniac*
Posts: 530
Joined: 30 Jan 2012, 13:18

Re: question regarding enbbloom.fx

That's what I hate, asking questions, figuring out by oneself and then doesn't inform the community what he figured out. Others like me may be interested, too.

Offline
*sensei*
Posts: 372
Joined: 28 Jul 2013, 23:26

Re: question regarding enbbloom.fx

Prepass reads Tex1, write to Tex1. Which is full screen texture.
Tex1 pass reads Tex1 and writes to all textures: 1,2,3,4,7,8 - 1,2,3 full res, 4,7,8 lower res, 8 being lowest
Tex2 pass reads Tex1 and writes to all textures: 1,2,3,4,7,8 - 1,2,3 full res, 4,7,8 lower res, 8 being lowest
Texture 5, 6, both remain original in different resolutions. 6 appears to be full res. output of prepass, perhaps.
Postpass adds all textures and would allow post blur effects... eg ALF or so on.
Bloom output is 512x512 texture. I rather have full screen. But would cost performance with high blur passes ( like 100 pix wide + )

Or at least that is more or less what I got out of it, not much to go by just displaying bloom texture on screen and compare with others. Can't do more, no info available.
Post Reply