Hillsguy
@hillsguy.bsky.social
hi hemlo i develop videogames and draw (sometimes)
my games: https://samael-kethill.itch.io
my games: https://samael-kethill.itch.io
While I think that this effect looks great in open locations, sometimes I find it a bit weird looking in interiors.
October 29, 2025 at 12:53 AM
While I think that this effect looks great in open locations, sometimes I find it a bit weird looking in interiors.
Also note the hexagonal grid structure.
My guess is that hexagonal grid aligns better with radial gradients, resulting in reduced amount of aliasing artifacts compared to regular polygonal grid.
My guess is that hexagonal grid aligns better with radial gradients, resulting in reduced amount of aliasing artifacts compared to regular polygonal grid.
October 29, 2025 at 12:53 AM
Also note the hexagonal grid structure.
My guess is that hexagonal grid aligns better with radial gradients, resulting in reduced amount of aliasing artifacts compared to regular polygonal grid.
My guess is that hexagonal grid aligns better with radial gradients, resulting in reduced amount of aliasing artifacts compared to regular polygonal grid.
This is how individual passes look when applied:
October 29, 2025 at 12:53 AM
This is how individual passes look when applied:
This effect is applied in two passes:
First pass uses regular alpha blending with constant alpha.
Second pass uses additive blending, light sources are also a bit smaller.
First pass uses regular alpha blending with constant alpha.
Second pass uses additive blending, light sources are also a bit smaller.
October 29, 2025 at 12:53 AM
This effect is applied in two passes:
First pass uses regular alpha blending with constant alpha.
Second pass uses additive blending, light sources are also a bit smaller.
First pass uses regular alpha blending with constant alpha.
Second pass uses additive blending, light sources are also a bit smaller.
The Future Sound Of London - Room 208
August 17, 2025 at 10:42 AM
The Future Sound Of London - Room 208
Car model is from Need for Speed: Undercover (J2ME)
July 25, 2025 at 2:35 PM
Car model is from Need for Speed: Undercover (J2ME)
Wow, thanks for those insights and for your repost!
Effects like this deserve more attention, I was surprised that there's no related publications on Valve site
Effects like this deserve more attention, I was surprised that there's no related publications on Valve site
June 14, 2025 at 2:33 PM
Wow, thanks for those insights and for your repost!
Effects like this deserve more attention, I was surprised that there's no related publications on Valve site
Effects like this deserve more attention, I was surprised that there's no related publications on Valve site
Not really. Gradient maps are similar to palettes, but they are not interchangeable, both have their own limitations. Maybe some modifications of this technique could be applied to gradient maps too.
June 11, 2025 at 9:10 PM
Not really. Gradient maps are similar to palettes, but they are not interchangeable, both have their own limitations. Maybe some modifications of this technique could be applied to gradient maps too.
Thanks!
I'm not familiar with WebGL, but considering that WebGL 2 is based on GLES 3, I think it should be mostly doable.
I'm not familiar with WebGL, but considering that WebGL 2 is based on GLES 3, I think it should be mostly doable.
June 11, 2025 at 9:08 PM
Thanks!
I'm not familiar with WebGL, but considering that WebGL 2 is based on GLES 3, I think it should be mostly doable.
I'm not familiar with WebGL, but considering that WebGL 2 is based on GLES 3, I think it should be mostly doable.
I also wanted to check out that famous bottle shader, but I don't think that I can pinpoint anything useful without looking at shaders.
All I see is that bottle is fully opaque and doesn't use any colors from the framebuffer. Looks like only cubemaps and per-pixel lighting are used for refractions.
All I see is that bottle is fully opaque and doesn't use any colors from the framebuffer. Looks like only cubemaps and per-pixel lighting are used for refractions.
June 11, 2025 at 12:58 AM
I also wanted to check out that famous bottle shader, but I don't think that I can pinpoint anything useful without looking at shaders.
All I see is that bottle is fully opaque and doesn't use any colors from the framebuffer. Looks like only cubemaps and per-pixel lighting are used for refractions.
All I see is that bottle is fully opaque and doesn't use any colors from the framebuffer. Looks like only cubemaps and per-pixel lighting are used for refractions.
The next one in the pipeline is water, but I've already covered it earlier.
Only after all of this the player viewmodel is rendered. CS2 has a separate pass for the viewmodel SSAO, which feels like overkill to me.
Only after all of this the player viewmodel is rendered. CS2 has a separate pass for the viewmodel SSAO, which feels like overkill to me.
June 11, 2025 at 12:58 AM
The next one in the pipeline is water, but I've already covered it earlier.
Only after all of this the player viewmodel is rendered. CS2 has a separate pass for the viewmodel SSAO, which feels like overkill to me.
Only after all of this the player viewmodel is rendered. CS2 has a separate pass for the viewmodel SSAO, which feels like overkill to me.
Two sets of buffers with different resolutions are used for smokes at different distances. Close ones are rendered in ¼ buffers, and distant ones in ½ buffers.
Fire is also rendered separately and merged with OIT later, but only 4 ½ res buffers are used.
Fire is also rendered separately and merged with OIT later, but only 4 ½ res buffers are used.
June 11, 2025 at 12:58 AM
Two sets of buffers with different resolutions are used for smokes at different distances. Close ones are rendered in ¼ buffers, and distant ones in ½ buffers.
Fire is also rendered separately and merged with OIT later, but only 4 ½ res buffers are used.
Fire is also rendered separately and merged with OIT later, but only 4 ½ res buffers are used.
Smoke is rendered separately in a bunch of low-res buffers and is combined with OIT buffers later.
A whopping SIX (!) buffers are used! (R 32F, RG 32F, RGBA 32F, RGBA 16F, RG 16F, R 8UI).
The first 4 buffers seem to be the same as the OIT buffers, but I'm not sure about the rest.
A whopping SIX (!) buffers are used! (R 32F, RG 32F, RGBA 32F, RGBA 16F, RG 16F, R 8UI).
The first 4 buffers seem to be the same as the OIT buffers, but I'm not sure about the rest.
June 11, 2025 at 12:58 AM
Smoke is rendered separately in a bunch of low-res buffers and is combined with OIT buffers later.
A whopping SIX (!) buffers are used! (R 32F, RG 32F, RGBA 32F, RGBA 16F, RG 16F, R 8UI).
The first 4 buffers seem to be the same as the OIT buffers, but I'm not sure about the rest.
A whopping SIX (!) buffers are used! (R 32F, RG 32F, RGBA 32F, RGBA 16F, RG 16F, R 8UI).
The first 4 buffers seem to be the same as the OIT buffers, but I'm not sure about the rest.
Two render passes and one final composing pass is used for transparent geometry (see moment-based OIT).
First pass uses 3 render buffers (R 32F, RG 32F, RGBA 32F).
Second pass uses previous data as input and renders color data in RGBA 16F buffer.
Final pass combines this data with framebuffer data.
First pass uses 3 render buffers (R 32F, RG 32F, RGBA 32F).
Second pass uses previous data as input and renders color data in RGBA 16F buffer.
Final pass combines this data with framebuffer data.
June 11, 2025 at 12:58 AM
Two render passes and one final composing pass is used for transparent geometry (see moment-based OIT).
First pass uses 3 render buffers (R 32F, RG 32F, RGBA 32F).
Second pass uses previous data as input and renders color data in RGBA 16F buffer.
Final pass combines this data with framebuffer data.
First pass uses 3 render buffers (R 32F, RG 32F, RGBA 32F).
Second pass uses previous data as input and renders color data in RGBA 16F buffer.
Final pass combines this data with framebuffer data.
CS2 also uses some flavor of order-independent transparency for particles, glass, smoke and fire. Most likely, moment-based OIT is used.
June 11, 2025 at 12:58 AM
CS2 also uses some flavor of order-independent transparency for particles, glass, smoke and fire. Most likely, moment-based OIT is used.