-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathToDo-ng.txt
170 lines (162 loc) · 9.56 KB
/
ToDo-ng.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
TODO:
------------------------------------------
[v] Guess more aspect ratios:
nope: Guessing is impossible..
[v] Use gauss blur for composite color bleeding?
Tried, does not produce great visible improvements
[v] Vignette and spot could be done earlier at lower res?
Made a bit lighter version right in final_pass instead.
[v] reference new repo from the main one
[v] Noise is not visible on black or white, much more on gray, why?
Probably a matter of post processing
[v] Try to get rid of mark_unneeded() in reflection_blur_y
didit and it is useless, no measurable perf increase.
[v] Why tv presets have +5% brightness?
Because the contrast is pushed too.
[v] First bloom pass: why don't we use an higher lod?
Using an higher lod makes the bloom less prone to detect thinner lines
So, no.
[v] Does bloom quality improve if we sample from original?
yeah!
[v] pragmas to vertex shader to fragment shader
Why and when performances start to degrade?
...It seems it happen when too many UBOs or Push constants are readed
by the Vertex shader and passed to the fragment one.
(not tested if the pass from fragment to vertex is needed to reproduce the issue)
[v] What if i do vmask and darklines (scanlines too in alpha??)
in a little pass that scales to absolute size?
or even a lut with the mask...
No gain, texture lookups are heavier than expected.
[v] textureSize() appears to be quite heavy, consider to make bezel coords fixed.
Done, expected to gain more, if something.
You just use it to calc lods, is it worth?
[v] Reflection blur size, make id not dependand on input resolution.
[v] When colorizing bezel with ambilight, apply noise over it as well
[v] Blur less near the start of the bezel
[v] Make the reflection blur shade point configurable
[v] Rotate image: auto (-1)... Does it work?
yes.
[v] Put blank lines after pragma parameter groups
[v] Bloom: would it make sense to gather the average luminosity in a wide
zone around the current pixel instead of the whole scene?
Yes, it works good.
[v] should min_w in avglum_pass depend on content resolution?
lod = log2(params.SourceSize.y / min_w); in avglum_pass is wrong (w/y?)
Both fixed by specifying the lod instead of doing stupid calculations.mip_lod
So fixed, and achieved what was needed.
[v] When using dynamic zoom, bezel reflection should be dynamically adapted
...this is tough, zomoing reflection wouldn't work.
[v] Further tune reflection shade
[v] Do a debug image with a white object on black backgroud to tune bloom exposure over time
[v] Unbranch phase shift in ntsc pass, trivial
[v] Negative gap brightness produces glitches on bezel (nvidia specific?)
yes, due to negative pow base.
[v] Unrolled blur in relfections is not gaussiany(gaussianx), was that a mistake?
No mistake, they look best that way since we need big blurs.
[v] When colorizing the bezel via ambilight, a small area between the tube and the
bezel border is colored and should not.
[.] Darkline, vmask: whiteness can be pre-calculated outside.
Half done, gained something.
[v] reflection blur: can we make better use of mipmaps instead of blindly use lod = 2.0?
[v] avglum_pass needs to react to content aspect override
[v] Bezel colorization via ambilight acts strangely when the content aspect is shrinked
[v] It also bleeds over alpha channel in the internal frame.
[v] disabled by now till we find a better way to handle it.
This: https://github.com/kokoko3k/koko-aio-slang/commit/1fbbee4f73948cd85e0d53db3a2d4eaab8951a8f is a reference commit
where i switched from a try to a second one.
[v] maybe it can be modulated from the outside via min(coord.x,coord.y)
[v] Ambient light skip coords should be aware of the h/v shift override or black box whould appear
Not a big deal, since it happens when moving the image far, far away.
[v] Does using gap with green-magenta trick f* the underlying rgb match?
Nope, yay.
[v] scanline minimum height does not work with intscale preset ?
it seems coords needs +vec2(0.0001), don't know why.
[v] Provide a static parameter to skip sampling bezel lut in the inner tube
[v] Is it convenient to add a check for blue channel and skip sampling reflection?
yes.
[.] ambilight leds falloff should use a gamma function/pow
...technically correct, but it would be required to do this before applying the color
to the circle mask, or color gamma would suffer.
Unfortunately this is not possible, because ambi_temporal_pass
runs at loooow resolution and lowering gamma there leads to visual artifacts.
[v] When the mask is scaled, is it right to scale the gap too?
Yes and no, probably it has to scale by half, done.
[v] Better debanding?
[.] specular reflections does not 100% follow the image when overriding aspect
This is because in compose_bezel_over we sample avglum_pass which is not 100% aware of them.
the correct and final solution to this would be to sample the first reflection pass which
already exports mipmaps and is 100% aware of aspect override, but this would mean sacrificing
another Sampler2D binding in final pass which is already short.
[v] Remove scanline and vmask code
[v] apply fuzzy main pass: take pixelgrid in consideration
[v] apply_fuzzy_main_pass can be splitted between vertex and fragment shader
[.] Update bezel presets so that inner zoom matches the bezel, then adjust geometry zoom that is aware of reflections
Cant, since the reflected black border looks weird.
[v] Make handheld presets (look at pgrid*.slangp)
[v] deconvergence after glow/halo (done verically in final pass via phosphors)
[v] How does phosphor decon interact with dedotting?
Good looking, move on.
[v] Has dedotting issues with clouds in outrun?
Yes, fixed that, dedot replacement lines were too bright.
[v] mask passed for selective halo plays bad on white text over black background when using scanline deconvergence.
seems that halo needs to light up just scanlines gaps.
It is a win win because it also allow halo to better coloring phosphors too.
[v] Adapt presets to new halo modes and parameter scale
[v] luminosity dependant zoom: hardcode slowness.
[x] does auto glow blur radius work?
ditched.
[v] allow negative glow y
[v] fake pass seems not aware of the halo "ungain"
[v] allow for lower than -1 glox values to trigger more unsharp
[v] provide a dedicated gamma out setting for halo
[v] fake main pass is not aware of halo gamma out.
[v] check branching conditions in first_pass.slang
[v] Auto fake integer scanlines?
[v] Allow to configure new bezel parameters
[v] Adaptive black/dynamic contrast, the more the brigher the content, the less the bezel and back/foreground image?
[v] Add debanding again
[v] Set rgb-h mask power parameter min step = 0.01
[v] Add another 4 sized mask that reduces weird Hardware related artifacts: rgxb (r1,g2,b4)
[v] Sync full screen decon with phosphor decon.
Done, optionally via HW_DECON option
[v] Glow spread in final pass?
Superseeded by warpedglow, yay.
[v] Find a way to smooth borders without cropping the image
Done, via repeated lines
[v] bloom should bleed over when forcing geometry aspect
[v] Halve border update + Deltarender leads to jagged inner frame, why?
Don't really know, but solved by gut feeling by using if ((params.FrameCount % 2) != 0.0)
instead ov if ((params.FrameCount % 2) != 1.0)
[v] Move config-user to config-user-optional-template.txt
[v] Set default aspect ratio to core provided (check for exceptions)
[v] At least 2 scaling algorithm needs linear color space to work good
This requires powing on colortools pass, which i didn't because... can't remember.
...because is a big mess for all the shader.
Optional linearization can be enabled via static config now.
[v] Support for upcoming optional include pragma
[v] Support for upcoming OriginalAspect/Rot
[x] Delta render: ditch DELTA_RENDER define and just check for DELTA_RENDER_FORCE_REFRESH
put DELTA_RENDER_FORCE_REFRESH = 1.0 in config-user.txt
Nope: it would spare some characters but it would increase usage complexity.
[ ] reflection blurriness should not depend on input resolution
[ ] dedicated subtractive sharpness in glow section
[ ] erode/dilate setting in glow section
[ ] why altering glow power alters scanline shape?
[ ] Can we add a slight random error to slotmask height to mitigate moire?
[ ] Better reflections in presets by scaling reflections by 3/4 and raising diffusion to 0.25
[ ] Antimoire to 0.17 works not so good in (eg) super cars 2, can we find a correlation between scanline numbers and the sweet spot?
on super cars 2 it is better set to 0.19.
[ ] Why bezel does not scale correctly when using integer scale?
[ ] why blink debug option does not trig scene change when going from 0.2 to 1.0?
[ ] joind dynamic zoom and override zoom into one zoom?
[ ] Unexcited phosphor grid is not dependant on hmask strength.
easy but not mandatory to fix, it would costs performance and need presets update, unsure what to do.
[ ] Make bloom power not dependant on input signal gain ? Not sure.
[ ] Check for progressive blur correctness in the corners.
[ ] Check if is possible to turn halo's float framebuffers to 10bit unorm and if it provides a performance boost.
If it's ok, check for other possible passes application.
[ ] co_bezel is used to create the ambi mask.
problem is: co_bezel is defined way before its use (used twice in the code)
and that often leads to performance degradation (registers are precious)
would it be possible to pre-compute ambi mask in the ambilight pass?
[ ] fn_border can be superseeded by fuzzy_rect; is it faster?