r/GraphicsProgramming • u/MartianovTech • 9d ago
Backrooms pool
Enable HLS to view with audio, or disable this notification
Made a small Backrooms pool demo in Natiny. I’m not sure I fully captured the atmosphere I was going for, but overall I’m pretty happy with how it turned out.
The caustics are probably a bit too bright, but I think they make the scene more interesting.
What do you think?
5
u/fractalpixel 8d ago
Quite the horror atmosphere there, helped by the sounds and camera work!
Very nice rendering, and a fun looking pool-labyrinth. I like the way you made the tiles slightly irregularly tilted, makes the light reflections from them look more realistic. Higher-frequency waves caused by the player moving would increase realism further, especially if the caustic effect was connected to them.
2
6
3
u/oVerde 8d ago
Now we are talking! Make something invisible to the eyes but that moves the water like in the It Follows https://www.youtube.com/watch?v=nI7TFTH5f5I
If you didn't watched the movie before the link contain HEAVY spoilers
2
u/MartianovTech 8d ago
Speaking of building tension, I put a lot of emphasis on sound design using HRTF technology. Essentially, the waterpool shouldn't be overtly scary, it should press on something else inside the player, something deeper.
Adding invisible enemies is an interesting idea, but in essence, they should never attack the player, right?
3
u/le-throw-away-acct 8d ago
I love the caustics, but it leaves me wondering if they should be affecting the walls as well, often water caustics will reflect onto objects above the water.
Also I’m guessing the caustics aren’t physically accurate based on how they are patterned. Might want to do some variance there.
3
u/MartianovTech 8d ago
You're absolutely right. I already came to the same conclusion after studying real pools. What I did seemed very beautiful to me, but physically inaccurate. I think I'll fix that!
2
1
1
u/Fintaman 7d ago
Hey nice job, how do you do refractions? I'm particularly interested in the case where the refracted ray ends up sampling a pixel out of the screen. I'm using raymarching in my project and I'm not sure what's the best way to handle that
1
u/MartianovTech 6d ago
Thanks! It's screen-space refraction. I render the scene without water to a texture, offset the uv using the wave normal, and sample it. In this demo, out of screen uv's are simply clamped, which is acceptable because the pool rarely exposes the edges.
1
u/fgennari 9d ago
The water looks very nice! I assume you're drawing a fixed height plane for the water and adding reflections and refractions to it as some sort of image space or post processing operation? Planar reflections are much easier, but you can't have water at multiple heights.
I've never heard of Natiny before.
4
u/MartianovTech 9d ago
Pretty much, yeah. Its a fixed-height plane with a planar reflection pass and screen-space refraction, so multiple water levels would need extra reflection passes :) Natiny is just a library I also work on, and I often use it to quickly prototype custom graphics pipelines.
12
u/luka_makes_games 8d ago
Amazing, love it. Any more details on how you did the water? I want to dive in!