So, which value did you use?
1.0, though I’d raise it even more if I could
You should try the Glow Brightness user param too. It does something like that, though not exactly the same.
Yep! Raised it to 3.0 and made the fadeout 0.75 (and lowered bezel reflection strength).
Coolest shader ever
New release: Uborder-v0.2.1
- Add support for koko-ambi shaders;
- Add user param to control border brightness over ambient-light.
In order to make koko-ambi works with uborder, you need koko-aio installed, or at least its standalone ambi shaders in the original folder.
The default ambient-light will be the standard, because it’s faster. If you desire to use koko’s implementation, inside ‘base_presets/uborder-ambient-light’ folder there’s a uborder-koko-ambi preset as an example on how easy it is to modify any other ambient-light preset to insert koko-ambi. You just need to swap the first three shaders from any preset.
Editing the image paid off:
Hands down, I couldn’t ask for more in a shader. Nice work, Hylian!
Edit: I’ve updated my pack, in case anyone wants it!
I’ve had the chance to take a look to your slangp files incorporating the standalone version of ambient-light from koko-aio, and noticed this:
shader2 = "../../../koko-aio/_standalone-shaders/koko-ambi-standalone/2_koko-ambi-temporal.slang"
alias2 = ambi_temporal_pass
filter_linear2 = true
mipmap_input2 = false
scale_type2 = source
scale2 = 4.0
float_framebuffer2 = true
But if you look at mine:
shader2 = 2_koko-ambi-temporal.slang
alias2 = ambi_temporal_pass
filter_linear2 = true
mipmap_input2 = false
scale_type2 = viewport
scale2 = 0.1
float_framebuffer2 = true
I opted for a “0.1 * viewport”, which translates to “384 × 216” on a 2160p and “192x180” for a 1080p output resolution, where yours “4.0 * source” translates to “1280*896” even on low res content, where it means a 3x+ to 6x+ increase in gpu resource use, just for that pass.
I don’t know if that 4x scaling is absolutely needed by your pass strategy, but if not, I strongly suggest you to reconsider
If you look at the next shader, it downscale by 0.25, which means the sourcesize. That’s because uborder shader needs native res after the ambient shader chain. It was the easiest way to make koko easy to be compatible without changing any shader.
I could use x2 and 0.5x after. Maybe it works the same way and much faster. I’ll do some tests. Better yet, using just 1.0x on both passes. I don’t kbow why I concluded it was necessary some upscale followed by downscale.
Yes I noticed the scale invertion afterwards!
Indeed, by nature, koko ambilight needs very low resolution, even 0.5x source suffices
Just tested here using 1x 1x and it works very fast! Using 0.5x 2x doesn’t work correctly, though, so I think 1x 1x is the best for this case. I think it can be the default now. I’ll put the shaders inside support folder in the next release.
Oh, that’s untested by my side; the intended use would be 0.5x->viewport with a bit of noise to hide banding, but I understand it could be troublesome to integrate then.
New release: Uborder-v0.2.2
- Add koko-ambi flavor.
Now koko-ambi is a new flavor in parallel to the main folder. It is well optimized now (thanks to @kokoko3k). The standalone shaders were incorporated inside support shaders, so that you don’t need to download koko’s shaders now.
So, there are two ambient-light versions for each preset you can use. Each one has its own implementation and params.
It seems D3D stopped working with uborder, is that normal? I’m aware that D3D is problematic with other shaders as well.
Indeed, looks like D3D is gone for good. I don’t know which kind of error is that. So, only vulkan and glcore for now. Looks like D3D has some restrictions and it isn’t easy to debug, because it doesn’t point the line where the error happens. Those lines are internal I think.
EDIT: Just found the problem.
There’s a loop that I changed when inserting the reflection quality/performance param. It’s like this:
for(int i = 0; i < bz_blur_iter; i++)
bz_blur_iter is now a user param and looks like D3D doesn’t ‘like’ this. Vulkan and glcore does. I don’t know why D3D doesn’t work with that loop.
The only way to fix this is fixing the number of iterations and getting rid of that user param. Would you trade that user param in exchange for D3D compatibility?
I’m honestly not sure, the D3D compatibility issues will probably not just end here; as your shader grows in the future.
I think @kokoko3k can give you more insight on this. He provides D3D as an optional static param, and turning it on will disable some features:
* Performance optimizations when drawing anything outside the game content area
* Delta render
* Luminosity tied zoom
* Leds scene change detection
Oh I have an off-topic question if you don’t mind Hyllian:
Did anyone by chance convert Mr. RetroLust’s Lights Out! Retroarch Bezels into a uborder shader pack yet? I’ve seen a couple of nice arcade conversions by @bitman and @Boz1978 and thought it would be cool to see these systems also get their own pack with ambilight and stuff:
Just some feedback once messing with Uborder a little. I would recommend a way to make the bezel longer on one side, blur the ends of the middle bezel and curve radius of bezel and screen independent of each other. If at all possible without affecting load times.
Uborder has been loading really fast for me.
I faced that as well, you can prepend a min() or clamp() function to the parameter before the cycle, so that the compiler will be able to unroll the loop and figure out by its own better what would happen, instead of spitting out hypotetical problems… geez!
So, is D3D that important? When you have vulkan and glcore available? Who uses d3d?
@Boz1978 is working on arcade overlays of the same author. I’m very busy working on uborder core now, so I expect volunteers take that chalenge of making overlays compatible.
Let me try to understand what you mean. Do you need the thickness on each side to be independent?
I’ll see if that’s easy to do.
It’s possible, though it affects performance, because I’d need calling warp function multiple times instead just one. I’ll evaluate this too. Thanks for the feedback.