"Jonathan Blow hates ___" every 60 seconds in Africa a minute passes
@figloalds4 ай бұрын
Best way to explain SSR is by looking down and watching the reflection magically disappear in a line as the true render exits the screen space
@MLWJ19934 ай бұрын
Kind of depends on how much time is spent on the reflections. Some games have rather decent real time cubemaps as a fallback to avoid objects completely disappearing (but they do significantly lose detail).
@zanagi4 ай бұрын
real lol holy shit i cant believe i actually ignored these small artifacts T-T
@termitreter65453 ай бұрын
@@zanagi Thats the point tho, its easy to miss the artifacts and problems. Generally SSR looks good, as long as you dont look to closely. Not having SSR usually would look a lot worse. And the alternatives like double-rendering, or raytracing, are too expensive.
@Yoctopory3 ай бұрын
Right! 😂
@mbe96013 ай бұрын
@@termitreter6545 if you know how to optimise raytracing, using it for only reflections isnt that intensive unless you have low end hardware. But using rt for multiple things will get expensive fast, especialy if you dont have dlss or something similar.
@Vitorruy15 ай бұрын
That's like watching Gordon Ransey talk about food but about game graphics
@XeenimChoorch-nx8wx5 ай бұрын
He probably treats his employees about the same !
@Rhodochrone5 ай бұрын
I won't deny he knows lots about rendering but his explanations here are a little flimsy.
@jovi99185 ай бұрын
It’s absolutely not, this guy has made a grand total of two games in the past 16+ years.
@latingm5 ай бұрын
@@jovi9918 not quite true. those are his successful games. he’s made quite a few smaller games that had no success.
@themaskedman92505 ай бұрын
@@latingm could you drop some names
@radicant72835 ай бұрын
"The old way was to render the scene twice back when we had weaker hardware, but now with the power of modern gpus we're using a cheaper method that looks worse."
@leezhieng5 ай бұрын
We also had simpler shaders back then so rendering twice wasn't too bad. With modern shader complexity I don't think it's feasible to render everything twice.
@zonea48605 ай бұрын
@@leezhieng Yeah, that's why VR games are rather simple graphically, because everything has to be rendered twice for each eye
@k0lpA5 ай бұрын
@@zonea4860 screen space fuzziness like we see in the video is so bad in VR because often the effect is not the same for each eye.. in fact in this game, riven remake, the shadows do that all the time, It's like they use some kind of shading for the shadows but it makes the shadows different for each eye which makes it look like they flicker and is really annoying.. I had to put dynamic shadows off.
@MrTomyCJ5 ай бұрын
Back then you rendered a very basic and ugly scene twice. Now you would have to render an extremely complex and highly detailed scene twice. It's not necessarily the same.
@kuklama07064 ай бұрын
Same thing happened in the field of video compression
@dorbie5 ай бұрын
Most screen space rendering techniques are hacks that give you a lot of visual effects richness with minimal overhead but sacrifice geometric accuracy, typically because of occlusion issues or a lack of parallax correction. The glow could have been trivially corrected by layering the scene and not including the foreground content in the reflection calculation, but it needs finesse and control and there's a cost (not huge on modern hardware). The refraction getting disabled above the railing posts seems like some bug or hidden depth occlusion caused by another effect. But might also have been done to prevent refraction sampling the pole itself. i.e. it disabled due to depth sampling to stop a similar artifact we saw with the glow earlier sampling the foreground pole geometry. The solution to improve this would be to render the foreground after the refraction. It's probably doable but a lot of devs just throw stuff into Unreal and flip checkboxes without a lot of thought or understanding. The detail paging when turning his head is just aggressive optimization. I think he's being a little unkind.
@monad_tcp5 ай бұрын
That doesn't bother me much, what's the worst thing ever is mipmap pop-up.
@dorbie5 ай бұрын
@@monad_tcp Can you be specific? I'm very familiar with MIP mapping, anisotropic texturing and texture paging and memory management. Are you referring to paging artifacts as you move or something else?
@HEADSHOTPROLOL5 ай бұрын
100% agreed, while it's good to highlight for the dev as I contend it can be distracting, it's weird to use it as such a put down (specifically towards a smaller studio). It's even better when the guy roasting the devs for these rendering choices seemingly doesn't have a full grasp of what he's talking about himself because as you've brilliantly covered there are solutions to better ground these cheaper effects and make the most of them.
@TiiAye5 ай бұрын
well jon blow is a hack who uses his minor fame to generate controversy in hopes it trickles back
@dorbie5 ай бұрын
@@TiiAye Jon tilts at many windmills most of which deserve to be tilted at. His biggest issue is an industry that pisses performance away, backed by mantras and dogmas that are never adequately tested. Secondarily he complains about quality (in many domains), but most devs don't have the luxury of taking an extra few years to perfect their game / product. I'm glad he's out there doing his thing, it gives voice to some of my own misgivings, just as I'm glad Mike Acton stood up and bitch slapped the entire CppCon in 2014. P.S. FWIW if you're technically savvy and listen to Blow for any length of time you KNOW that he's not a hack and he's not just generating controversy, he has deep technical knowledge about why a lot of software sucks these days and how to fix it for anyone who cares enough to try.
@dustingarner46205 ай бұрын
It was funny when he said "I swear I've seen that in a game sometime" in reference to the Witness when the original Riven also did a similar thing with the frog rock outline
@darrennew82115 ай бұрын
You can also see the reflections of the heaters on the inside of the sub's windows, even though the back of the sub is metal.
@DripDripDrip695 ай бұрын
Totally normal cubmap behavior
@gregkrazanski5 ай бұрын
i have no doubt they could have refined and polished small things like this for years. i guarantee they also know about all these visual artifacts. i'd rather have a game that's overall extremely good than have a perfect game that never gets released
@k0lpA5 ай бұрын
I agree, but I also find screen space a bit jarring at times
@_KondoIsami_4 ай бұрын
while that's true they used Unreal, and these issues are known issues in Unreal for a very long time. multiple AAA studios and epic games themselves all had the opportunity to solve it but so far no one did.
@zanagi4 ай бұрын
I think hes talking specifically about unreal engine.. the game dev cant do anything about it cz its mostly provided by unreal
@TechArtAlex5 ай бұрын
The reason the area around the pole doesn't show correct distortion in the water is because of screen space refraction. They are distorting the image under water by offsetting pixels based on the water normal and depth to simulate refraction, but the pole is occluding the spot that should be sampled. So instead, it just shows the un-refracted image as a fallback. If they didn't do that, then there would be a ghostly duplicate of the pole that would appear as though it was under water - which is also something you'll see in games with worse screen space refraction shaders. Ray traced refraction, or no refraction are the only ways to avoid it completely.
@CaptTerrific5 ай бұрын
If the game can detect the pole occlusion in order to call the fallback, then why not do a heavier worldspace mapping as the fallback effect? Presumably such a small segment of the screen shouldnt be too taxing to skip the culling (or rerender the section afterward)? Then again, I'm not a graphics programmer, I'm just a hack fraud... so maybe there's something obvious I'm missing :D
@NYKevin1005 ай бұрын
@@CaptTerrific I'm not a graphics programmer either, but my general understanding is that GPUs don't do conditional branches. At all. If you want to trigger and un-trigger a graphical effect, either it has to be toggled by the CPU, or you need to express it in terms of matrix multiplies and other GPU-friendly branch-free code. Stopping the refraction from sampling things too close to the player is probably doable branch-free, by computing a value for each pixel that, roughly speaking, represents how "reasonable" it is to sample from that pixel (based on how far away the rendered object is from the water), and then doing math to make the refraction effect vanish as this value gets too far towards the "unreasonable" end of the scale. But if you're going to manually detect when this problem occurs and trigger a more complicated GPU effect, without paying for it most of the time, now you have to do a bunch of branching, which requires back-and-forth between the CPU and the GPU to figure out which part of the screen should get the bonus effects.
@TechArtAlex5 ай бұрын
@@CaptTerrific without raytracing, the data is occluded and simply does not exist to fall back on. With raytracing, it may be possible to detect the failure case and raytrace only those pixels. I don't think Unreal does that for refraction yet, even when Lumen is enabled - but it does mix screen traces and raytracing for reflections and GI with Lumen. Screen space refraction is not usually physically accurate though, but a "good enough" looking approximation, so most likely there would still be unsightly discontinuities where a screen space effect switches to RT.
@ZeroPlayerGame5 ай бұрын
@@NYKevin100 nah, modern GPUs can do branches and loops. Granted, if different pixels in your 4-pixel cluster hit both branches, you'll be paying for both for all of them. The real issue here is to do world-space mapping, you need to prepare world-space data for it, which is the costly bit. Makes no sense to just do it for small artifacts.
@palapapa02015 ай бұрын
Why would the pole occlude more than the area it appears on the screen?
@BlowFan5 ай бұрын
I'm sorry about the spoiler at the start of the video but I found that part too relevant not to be included.
@citricdemon5 ай бұрын
How dare you spoil a videogame from the late 90s? Think of all the people who haven't had time to play it!
@ironhell8135 ай бұрын
Isn’t non point ambient specular light just refraction and not reflection? Especially if it’s screen space…
@DeltaNovum5 ай бұрын
Its not that far into the game I hope, cuz its only a bit beyond where I am at.
@k5josh5 ай бұрын
@@citricdemon That thing is actually totally new to the remake, so it's not from the 90s ;)
@citricdemon5 ай бұрын
@@k5josh don't contradict me, peasant
@AgeCreationTutorials5 ай бұрын
I played the Riven remaster, saw these things, and thought about John and how he would comment that this wouldn't happen if you didin't use "shitty technology" like Unreal :D Thanks for sharing!
@lucy-pero5 ай бұрын
Jonathan Blow on ray tracing: "Real time ray tracing is such a horrible idea. Literally you are wasting so much performance on something that isn't necessary at all. You should focus on cheaper, more simple rendering techniques, like screen space ef- uhmm i mean do something else!!"
@crestofhonor23495 ай бұрын
Also the other method he mentioned, doubling geometry has its own limitations too. Planar reflections and render to texture are very expensive and often times don't take into account stuff like lighting data and are very expensive to render as well, especially at full resolution
@fudjinator5 ай бұрын
There are non-screen space global illumination techniques.
@a365385 ай бұрын
Did this guy really that say, and then record this?
@KillahMate5 ай бұрын
@@fudjinator Yes but those are for global illumination, you can't use them to fix reflection/refraction artifacts. To fix the problems in this video you need ray tracing - _or_ to give up on modern graphics and just forward render everything multiple times for reflections, the way it was done 20 years ago.
@grendel6o5 ай бұрын
@@a36538 Yes, and if you look up, you'll see the word "gullible" on the ceiling!
@iestynne5 ай бұрын
That last bit is a bug unreal has had forever; they have one frame of latency on their GPU visibility culling, so when things (that were being visibility culled) get revealed quickly they pop in one frame too late. You notice it going through doorways in unreal games all the time. I can't really blame them though; it's a very easy and general purpose way to get a huge performance win with no time cost to the game developer.
@Irockman15 ай бұрын
Are you certain about that? If that's the case, then why does it take several frames for the rocks on the ground to appear, and why do they not appear all at the same time?
@iestynne4 ай бұрын
Mm you're right, it might be something else. No shortage of fun bugs in Unreal :)
@_KondoIsami_4 ай бұрын
the culling issue in unreal is extremely annoying and the way people get around it is by either loading the geometry earlier by expanding the volume or by loading the level in blocks instead. I know some indies load the entire level because of this. in this case I have no idea if that's the problem but they could have merged the rock geometries into a larger block and the culling volume might not covering it all, but well Unreal has so many bugs it's impossible to tell without looking at the project.
@Hemlocker3 ай бұрын
That's way more than one frame
@gruntaxeman37403 ай бұрын
@@_KondoIsami_ Instead of streaming massive map, it can be divided to areas and make triggers that load new area to memory in background. Like in puzzle game when some switch is pulled to open door, that also loads area. Or area is loaded to memory in background when player walk somewhere Also it was possible to change whole map nearly transparent way. Old IdTech 2 engine can do trick too. Maps were something like 200..250m ^3 so large game area would require changing whole map, so every map would require same parts overlapping. That kind of tricks are not annoying if made properly.
@NeoTechni5 ай бұрын
A lot of screen space effects would be fixed if they'd render the player character/vehicle/gun after the reflection.
@Quantris4 ай бұрын
this only works in vampire games
@MLWJ19934 ай бұрын
If it's 3rd person you'd be missing a whole ass character in the "reflection" though. It's kind of a difficult problem to solve in reality, unless you go the raytracing route, but as we know, that's quite expensive too...
@emperorpalpatine60805 ай бұрын
one example of why screen space reflections are "bad", is in Control , when you're in the astral plane and there's those large black marble blocks , and even if one is at 30 feet away , you'll see Jessie's "shadow" on it. It's a nice technique when you can hide those kinds of glitches... but hey, the only alternative is maybe having reflective probes , or raytracing it
@HeroOfHyla5 ай бұрын
All the screen space stuff in Control is really bad. I spent so much time tweaking the graphics trying to make that game not give me a headache. Eventually gave up and powered through, but it really soured my experience.
@hovikarnian60355 ай бұрын
Isn’t that game like a tech demo for RT? Why would they cheap out with SS effects?
@PseudoPolish3 ай бұрын
@@HeroOfHylaI feel you so much, reflection artifacts in Control are genuinely not good for health
@termitreter65453 ай бұрын
@@hovikarnian6035 Maybe he didnt/couldnt use RT, or the devs couldnt use enough RT to replace all screen space effects for performance reasons. That said, I wasnt really bothered with SS in Control. The nice thing about SS stuff is that its really easy to ignore/miss, and then its quite nice. Otoh stuff like motoin blur kinda triggers me, but thats luckily kind of a superfluous effect thats used badly most of the time anyway, as well as easy to disable.
@Feral_Pug_Codes5 ай бұрын
What he is talking about is really more of a bug with the screen space effect. You could easily change the rendering to remove the red light on the water. Do the reflections before the occulus rift render, use stencil buffers, etc
@plopoplapa5 ай бұрын
It's not just the pole, it's the whole railing. If you pause, you can see the waves disappear in a straight line.
@k0lpA5 ай бұрын
In VR it's often not at the same spot for each eye so it attracts your eye because there's some kind of fuzz.
@termitreter65453 ай бұрын
@@k0lpA Tbf that might be VR making things complicated, or the game just not being made for VR originally?
@ali32bit425 ай бұрын
6:23 those asset streaming bugs are probably the worst thing about unreal engine games. it always breaks immersion when you enter a new area or just look somewhere and things start poping in
@atimholt5 ай бұрын
Yeah, this stuff was impossible not to notice when playing the Riven remake in VR. It was still a neat experience, just somewhat wonky.
@JaviArte5 ай бұрын
I LOVE the overall graphics of Riven. They have done a great remake, but I also hate the limitations of screen-space reflections. For this reason, I love that ray tracing has come to video games.
@0x00official5 ай бұрын
Is there anything jonathan doesn't hate?
@user-og6hl6lv7p5 ай бұрын
me
@sergeysmyshlyaev97165 ай бұрын
His water filter
@SkankingKyle5 ай бұрын
Trump and Musk
@pkop44 ай бұрын
@@SkankingKyle nice
@Ubreakable-lr2dk4 ай бұрын
this is exactly what modern gaming is modern games are made for other game artists normal people dont even see crap like this or dont even care about it lol
@KhelbenGeldon4 ай бұрын
"That's something I'd expect from an indie game." .. it is an indie game.
@trashtrash21693 ай бұрын
Using the same engine as many AAA games.
@trashtrash21693 ай бұрын
The shaders and culling are part of unreal, highly doubt they're custom.
@KhelbenGeldon3 ай бұрын
@@trashtrash2169 Fair point but the budget of the game is barely 1-2% of many AAA titles which has a correlating impact on the amount of time and resources Cyan can allocate to its development.
@fearedjames3 ай бұрын
@@KhelbenGeldon The point is, the way the rendering work is stock Unreal, and you can only fix it by cheating around the problem.
@Koffiato4 ай бұрын
What he doesn't talk about is how cheap and how Universal SSR is. It isn't perfect but runs fater than a dynamic cubemap while not requiring rendering the scene many times. He talked about planars, which wouldn't fly in any 2024 game apart from super basic ones as your time to render each frame will basically double. And it won't take into account dynamic objects. SSR + Cubemaps + Envmaps (in certain objects like water) is the way to go. Least amount of artifacts for the least amount of performance hit.
@karlack26825 ай бұрын
I also found the TAA ghosting really aggressive in this game. i put this in the engine.ini to help reduce it, there are a million taa parameters for UE 5 perhaps others could tweak these more but its a starting point. r.TemporalAA.HistoryScreenpercentage=200 r.DefaultFeature.AntiAliasing=2 r.TemporalAAPauseCorrect=1 r.TemporalAACatmullRom=1 r.TemporalAACurrentFrameWeight=0.20 r.TemporalAAFilterSize=0.36 r.TemporalAASamples=32 r.TemporalAA.Quality=1 r.CustomDepthTemporalAAJitter=1
@DrTheRich4 ай бұрын
It gets better if you can manage to get the framerate above 120
@termitreter65453 ай бұрын
Aye, settings and configurability can help a lot with this kind of stuff. One thing I really dont like about the Unreal Engine (especially UE4) is how it has these weird "packaged" settings, which by default might put stuff like motion blur or SSR in some generic "post processing" option. Of course thats only default stuff, but its just like terrible default shaders in UE3, a lot of devs just go with it.
@karlack26823 ай бұрын
@@termitreter6545 ya the default settings for a lot of unreal engine stuff generally sucks and adds a lot of blur or smearing to many of the post processing effects. Degrading image quality.
@AshnSilvercorp5 ай бұрын
really... I did not know about this type of reflection rendering in detail... I was watching a newer scene in FFXIV recently and saw that oddball rendering glitch at 4:30 over an entire scene with water. It was horrendously distracting.
@crestofhonor23495 ай бұрын
SSR has been a common rendering technique since the 7th generation. It's a pretty cheap way to do reflections
@bryanedds89224 ай бұрын
@@crestofhonor2349 Well I wouldn't say it's cheap...
@MrNobodyX35 ай бұрын
"that's something I would expect from an indie game" ... well yeah, cyan is an indie developer
@Kowzorz5 ай бұрын
Given his immediately prior mention of Unreal, surely there's an implied "indie game [engine]" in that statement. This video game, if created on unreal, is certainly *not* an indie game engine even if it's an "indie game".
@snooks56075 ай бұрын
in my opinion he has too many opinions
@autochromes5 ай бұрын
@@snooks5607 old man gatekeeping graphics and gamedev, seen it over and over. it's sad his fanbase enables him to do this. i don't even get it, witness is an ugly and boring game nobody wants play/complete. choosing not to render most of the shadows is not an artstyle it's just lazy and ugly. he probably didn't get the sales he expected which made him bitter like this or more bitter i guess. constantly complaining never coming with any solutions. don't understand what all the fuss is about with this guy tbh. i know at least 20 devs much more inspiring and doing actual cool stuff compared to blow and a lot of these people are half his age if not younger. witness is a stale and boring game without any exciting mechanics or features whatsoever.
@ChaoszZChannel5 ай бұрын
I don't think he is criticizing cyan for that, he is trying to take a jab at unreal engine.
@no_no_just_no5 ай бұрын
@@autochromesdid Johnathan Blow bite you when you were growing up?
@Inirdin5 ай бұрын
2:02 bottom left there is hole in the water
@darrennew82115 ай бұрын
I'm not sure why you're bringing it up, but yes, there's literally a hole in the water there through which you climb down to the submarine. It's part of the story that water has holes in it there.
@minuteman10435 ай бұрын
That's a feature of Riven's world. There's a note in the game that mentions a microbe prevalent in the water that acts like a powerful bacterial colony. The colony reacts to the heat of the steam and deforms the water to a maintain a safe distance. Ghen, the antagonist of the game, uses this to form tunnels through the ocean and for dramatic effects to display his 'divinity'.
@Inirdin5 ай бұрын
@@minuteman1043 There is visible tear in the water caused by seam in the mesh and misaligned vertex displacement. Good to know it is lore accurate
@lukkkasz3235 ай бұрын
@@darrennew8211 bottom left man, bottom left, bottom left
@darrennew82115 ай бұрын
@@lukkkasz323 You mean where the steam is coming out? Yes, that's part of the story. You mean the thing that looks like a seam between textures? Yeah, that's probably just a bug, but it could be one of the underwater pipes. I don't remember if there's one there.
@stranger0-005 ай бұрын
Has there been any mention of Braid Anniversary Edition's sales performance? I'm curious about if it might help alleviate some of the costs of running the studio significantly.
@BlowFan5 ай бұрын
I will upload a video about it soon! :)
@stranger0-005 ай бұрын
@@BlowFan thanks!
@mfrunyan5 ай бұрын
when are they going to remaster this to bring it to 1997 level graphics
@wacky.racoon5 ай бұрын
like a de-make ?
@mfrunyan5 ай бұрын
@@wacky.racoon no, to bring it to the quality of pre-rendered graphics from the SGI workstations
@devzozo5 ай бұрын
@@mfrunyan I've watched a few videos where people try to replicate the older pre-rendered graphics, and it's funny how much effort you have to put into downgrading the way light and materials are rendered to get that look.
@DripDripDrip695 ай бұрын
Port the map into POV-Ray and render them yourself.
@happyotter95 ай бұрын
@@devzozo You literally compare real time rendering with old school ray traced pre-renders that typically take hours to process? Are we for real degrading to the moment where people nitpick miniscule graphical glitches? Back in the days, we could only dream about graphics like this, but now, when near total photorealism is here, people start whining over some light specs and refraction errors
@ZdenalAsdf4 ай бұрын
He's not wrong. Screen space reflections and ambient occlusion look absolutely terrible, especially in motion.
@Something_Disgusting3 ай бұрын
Only time I've ever seen good ambient occlusion would be from Source 2 games. Valve uses some fancy shinanigans based upon their custom light-probing systems.
@АлексейЛогинов-ж1ц4 ай бұрын
Thanks you! Always thrilling to see Blow do his thing - blast industry standards, and being awesome at the same time
@MrUbister3 ай бұрын
in that last spot you also have like a branch you see reflected in the ocean 10km over lmao
@TheNeathGame5 ай бұрын
It's funny with how many buffers they draw to to do deferred rendering that they don't just have a reflection in there.
@Lastninjaxoxoxoxox5 ай бұрын
His attention to detail is actually amazing.
@6Twisted5 ай бұрын
The Talos Principle 2 (Unreal Engine 5) has the same problem with screen space water reflections reflecting stuff they shouldn't. It looks really bad.
@bltzcstrnx5 ай бұрын
People (gamers?) complain about distracting graphical glitch stemming from rendering technique optimization. Yes, SSR is an optimization technique. Yet when dev chooses a more proper, more expensive technique, people complain about performance and unoptimized games. The truth is, many of them don't even understand what's going on.
@gruntaxeman37405 ай бұрын
Problem in screen space reflection is that it easily fails when camera tilts. It works well if camera tilting is limited. Trick for planar surfaces rendering twice isn't problem neither while GPU:s are so fast. But that water refraction issue top of poles is just horrible.
@Danuxsy5 ай бұрын
yeah but it doesn't work either if there are things in front of a large body of water, there is this weird halo effect around them where the water lose the reflection and it is very obvious.
@gruntaxeman37405 ай бұрын
@@Danuxsy I think that was a bug and can be solved rendering object what character holds in separate render pass.
@Danuxsy5 ай бұрын
@@gruntaxeman3740 no it's not. the information that would be used for screen space is missing when an object is in front of it.
@gruntaxeman37405 ай бұрын
@@Danuxsy I mean that screen space reflection should be done before rendering object in front. It can be done. Rendering HUD doesn't make that kind of issue.
@Danuxsy5 ай бұрын
@@gruntaxeman3740 not sure if that is possible and what the compute cost would be, might not be worth it.
@nutzeeer5 ай бұрын
3:55 would it take a lot of resources to include the z buffer in these screen space reflections? this way it wouldnt just look up but do another comparison..
@OrangePale2 ай бұрын
Is there anywhere I can watch his full playthrough of this Riven remake? Cant find it on his twitch
@didotb014 ай бұрын
the game hunt: showdown during the pre- cryengine update (before aug 15, 2024) should show the exaggerated version of SSR visual bugs. I'm not sure if they've fixed that post-update (aug 15, 2024) yet.
@theburntcrumpet83715 ай бұрын
Does Jonathan Blow like anything?
@lucy-pero5 ай бұрын
"Jonathan Blow on liking things": "The Profesional People have given up on liking things 15 years ago. If you're here in 2024 thinking about liking a thing, you are just bad. Rethink your life. Liking things has been the worst idea in living engineering since the invention of C++"
@lastburning5 ай бұрын
His water filter, Gravity's Rainbow, Mulholland Drive, and that one solitaire game in The Zachtronics Solitaire Collection.
@titus6635 ай бұрын
He is on record liking Kimagure Orange Road
@Badspot4 ай бұрын
Water refraction is a frame buffer effect - the whole scene is rendered, then the distortion is applied on top. This has a side effect where objects that are in front of the water can appear in the water refraction erroneously (this is visible in many games). The cutouts around the railing are likely some misaligned mitigation of this effect. The witness avoids this problem by not having any water diffraction effects.
@zion66805 ай бұрын
I wonder if it's the colliders on geometry are culling stuff out because they have an alpha material that isn't set up right or has some technical deficiency that makes it so you can't avoid that without significant tinkering with the material.
@TommyLikeTom4 ай бұрын
I realised halfway through this video that this guy has made some of my favourite games
@zdspider67785 ай бұрын
4:25 I think it's because they're rendering a simplified geometry (the collision?) to "clip" into the screen-space distortion. And yeah... it's the entire railing, not just the pole... Like the collision doesn't 100% match it (being simplified and all), and also seems to be shifted upwards a bit. It's definitely a bug, but most players would probably just blaze past that, tbh.
@nerdError0XFАй бұрын
Ending music is from Rain World or am i trippin??
@snaremori5 ай бұрын
I wonder how hard it would be to just tell the renderer to ignore that lens thing and still render the lighting under it normally
@sasuke29105 ай бұрын
It's literally only looking at what's currently on screen to generate the reflections, and there's a bunch of stuff covering the screen. Ignore it and reflect what instead? Edit: I'm wrong, you can use multiple layers.
@charlesleninja5 ай бұрын
There's a comment from @dorbie they posted an hour ago about just that
@KillahMate5 ай бұрын
@@sasuke2910 You _can_ use multiple layers sure, but then you're back to rendering a large portion of the screen twice like Blow was saying - and modern game engines _really_ don't like rendering the viewport more than once, on average it actually performs worse than it used to in old forward-render game engines.
@sasuke29105 ай бұрын
@@KillahMate You can draw the screen to one layer, the overlay to another, then sample the "world layer" only for the reflections. This creates a little bit of overdraw and prevents some z culling, but it's not that bad. You still have other issues that doing multiple angle draws would solve, but you could avoid this specific glow overlay issue.
@sasuke29105 ай бұрын
@@KillahMate To expand, I think the thing JBlow was referring too was planer reflections, where you render the entire scene from a different 3d perspective to collect the reflection information. Not just overdraw, where you have just have to draw an extra fullscreen quad.
@termitreter65453 ай бұрын
Makes me wonder if you 'couldnt just' have a very low detail version of the world reflected in the water, kinda like in old games? After all SSR reflection do a lot of noise anyway, you hardly can make out a detail, so the reflected world could be extremely simplistic.
@doltBmB5 ай бұрын
screen space reflections are amazing for grounding complex surfaces in the lighting environment, any kind of mirror/water reflection is a gross misuse of it. and guess what crysis 2, the originator of the technique does? it uses ssr for objects in the scene and planar reflections for the water, with some cube maps for the static environment, literally perfect.
@roboman24445 ай бұрын
One of my most popular videos is about this exact same thing lol
@BenMorse03 ай бұрын
The fence post is probably a shader drawing part of the water and the mask is messed up
@Tomofdahook173 ай бұрын
I want to know ow how Far Cry 2 used real time reflections that even work with objects in multiplayer such as trees. It’s fascinating. I know it’s some kind of trick but it’s really cool.
@user-og6hl6lv7p5 ай бұрын
Couldn't they use a depth buffer to create a mask of objects that are in-front of the water plane and then use the edges of the mask to blend with the screen-space effects?
@or60605 ай бұрын
the water wasn't reflecting anything at all really
@raulgalets5 ай бұрын
stuff can figure out depth from a single picture now right? can it help screen space?
@EdsEnemy4 ай бұрын
Man's got a point. That feeling of knowing it's a hack stays with you. I remember fooling with this stuff, and then looking at a shadow that moved a little weirdly on my wall as I got up from my chair. I thought to myself instinctively something along the lines of "there's that silly lighting inconsistency again" before I realised it was a real optical illusion that just looked like a bug in a videogame was happening IRL
@Nik-dz1yc5 ай бұрын
I think when you focus too much on a specific sector such as graphics in this case, you forget the main part of the whole thing which is having an actual game to play
@bleyk_2674 ай бұрын
Fr. this is just a basic game bug that hardly changes a thing. that bald guy is clearly just hating it so hard because he clearly likes to complain about everything
@BrgArt4 ай бұрын
@@bleyk_267 i love how you're calling him a "bald guy'. he truly is just a "bald guy' in the end and he should take his ego down some levels.
@jasondads9509Ай бұрын
This is what people watch him for. Not really for the actual game
@johanrojassoderman55904 ай бұрын
I suppose UE could be better configured by default, but ultimately it's up to the devs to use the tool to achieve the desired result. Right? It's not like it's impossible to do anything in UE that's possible in another engine or vice verca. The difference is their unique functionality and setup/workflow that might be more or less suited to a particular style or type of game.
@captainbeatdown62544 ай бұрын
im so happy im not the only person who doesn't like screen based reflections I've always had a feeling it was a shot mash up until they can make something better
@KikkerFish5 ай бұрын
Keep blowing, fan! Love your clips ❤
@BlowFan5 ай бұрын
Thank you! I appreciate it!
@RevolverPicturesYT3 ай бұрын
Screen space reflections look great when they look great and they completely and utterly destroy your immersion when they look bad.
@the.monologueАй бұрын
"i swear seen that in a game sometime" witness reference fr
@PetWanties5 ай бұрын
When looking at the extra clip, is this a UE thing or a developer error / decision? I don't know much about game dev but am curious.
@ollllj5 ай бұрын
screenspace reflections alsmost always get every water reflection wrong. realistically, if a tall structure is far away from a lake, it does nto reflect in the lake, because it is too far. screenspace reflects it anyways, being ignorant of a too large distance, usually because the z-buffer does not handle large distances well.
@m.j.nilsson3 ай бұрын
The whole time I was thinking why does this game I don't recognize feel so familiar
@CaveyMoth4 ай бұрын
How about Unreal Engine 5 Screen Space Ambient Occlusion? It fizzles in and out of existence like crazy. UE5 without ray tracing is rough, man.
@mojoplayer89155 ай бұрын
Those newer Resident Evil remakes have awful screen space reflections, they are soo distracting that i had to turn them of, mostly due to the occlusion problems.
@SkyBorik5 ай бұрын
true
@andersonmat5 ай бұрын
Ray traced reflections are blurry aswell, good old cubemaps is the best option somehow
@SlyNine3 ай бұрын
SSR can be very accurate as far as position. You can see this in games that use RT and overlay ssr details.
@bran_donk5 ай бұрын
My brother makes fun of me for ranting about this every time we play Hunt Showdown. It is a beautiful game, especially by the standards of its release time. But for some reason they chose screen-space reflections on water in a game filled with swampy water surfaces. Whatever your character is holding in front of them creates a huge reflection on water in front of you and it is so incorrect, jarring, and distracting. I am sure there are good reasons for not having player limbs and held items draw in front of and on top of everything else. Not wanting to render those bg pixels again to be overdrawn, some corner cases where dynamic objects can come between the camera and your body, not being able to handle actors colliding, needing the player to be in-world and not a special draw case, etc. But it bumps for me every time. (Of course my brother, sincerely a smart person, didn't even notice it until I pointed it out. Most people don't look for this stuff and their brains just happily filter it out.)
@crestofhonor23495 ай бұрын
They likely chose screen space reflections for performance reasons. Planar reflections are quite a bit more expensive. Ray tracing wasn't much of a thing either at it's release. Redner to texture wouldn't work well either
@Danuxsy5 ай бұрын
it will be replaced with ray traced reflections in future games as the hardware is now (mostly) able to support it.
@bran_donk5 ай бұрын
@@crestofhonor2349 For sure, and crytek invented and/or popularized a lot of these screen space techniques over the years. All cutting edge stuff in their time. I guess I was scratching my head on the "why is the player in the screen buffer being used for the reflection" part.
@bran_donk5 ай бұрын
I see now I said "for some reason they chose screen space reflections for [water in a water game]". I get why they chose the technique, but the implementation has some flaws beyond minor artifacts like half a lake covered by the false reflection of your revolver barrel. I am sure they are aware of this and made smart choices/compromises for overall look. Just a pet peeve.
@crestofhonor23495 ай бұрын
@@bran_donk yeah no one really like SSR but it’s necessary unless you want to do Ray tracing
@c9brown5 ай бұрын
"I swear I've seen something like that in a game before" I mean JB was inspired by Cyan, Cyan inspired by JB. Its all good.
@Stedman753 ай бұрын
I couldn't unsee it after he showed it....
@szczypawa5 ай бұрын
5:12 its a cut to 1 hour later and he started making that noise
@Kknewkles5 ай бұрын
Everytime I see this screenspace shit I can't help but feel it's like one constant away from looking correctly. But it's always this constant away, and ends up looking like shit. I dunno, use a frustum wider than view frustum. Fucking project with more accuracy from the player's viewpoint. How is it so wrong, in the exact same ways, every time.
@Ang3lUki3 ай бұрын
I love how this guy is immediately able to tell when an effect is screenspace vs RT
@Tulip_bip3 ай бұрын
it's really easy to notice, like if it's a water reflection then just look down at only the water, and the reflections will disappear
@Ang3lUki3 ай бұрын
@@Tulip_bip I do graphics programming sometimes for VRChat and it's someting I'm familiar with. It's why I'm so happy he can tell immediately, because so many people just don't understand how difficult and esoteric graphics programming is. That's why I get pissed when people can't tell the difference, like are they blind? How is it not immediately obvious!?!?!?
@RadiantMantra3 ай бұрын
The new EEVEE on Blender does this and it's really a pain to work around it, you have to tweak render settings every time you render it looks great if you do tweak it and refine it, but I agree it's a really janky method
@j-wenning5 ай бұрын
I've learned more about Outer Wilds from this clip than any other offhanded mention of the game on the internet.
@crimsonhawk525 ай бұрын
idk if you mean outer wilds uses this rendering technique, but the game Jon mentions is Outer Worlds, which is different. Wilds = fallout in space. Worlds = puzzle game groundhog day in space
@AleyxLunara5 ай бұрын
@@crimsonhawk52 lol you have it backwards:P
@giampaolomannucci82815 ай бұрын
@@crimsonhawk52 Outer Worlds = fallout in space. Outer Wilds = puzzle game groundhog day in space there, better this way
@hotfightinghistory92243 ай бұрын
SSAO is whats causing the water refraction to disappear above the post.
@Siphonife2 ай бұрын
They shouldn't have used the buffer than puts the oculus on the screen. Render the oculus on a different texture and only sample reflections from the scene buffer and then composite.
@IndieLambda4 ай бұрын
The thing that continues to confuse me is that if we go back to old games, games that predate PBR, predate specular even, we get better reflections than what we ha for a while in full proper PBR games since up until not so long ago with real time Ray Tracing, we kind of just, forgot how to do reflections for about 15 years, I do not understand how or why, at first, we have games that cheat by flipping level geometry and duplicating entities, because doing real reflections was too expensive, but meticulously optimising set pieces allowed to still deliver the effect in a controlled environment, then we have the reflections in Unreal, Half Life 2 an a few other games which are just great, you see the level, with characters, objects and all, including yourself, in third person, as other players would see you, then we get full PBR and screen space and now the reflections are sloppy, off, misaligned, and incomplete, anything you're not seeing, is not reflected, then now, we finally have ray tracing, where not only is the reflection correct again like 20 years ago, but they now deform and shimmer exactly the way they shoul, and you see yourself in the reflections again, except, in first person, you're just a pair of floating arms holding a verticallty sliced hollow gun that has a spare magasine an shell casing floating bellow it, we still haven't got the ability to see ourselves as others see us back, we see only what we're meant to see, as a result, seeing what we're not meant to see, the fact that only the parts of the guns you see exist and that the spare magazine just is always hanging down there, for your floating arms to grab, put in the gun, so it can teleport down there again swapping place with the other one that just stops at the very edge of the screen, nice work going through all the effort of properly animating that illusion, every single puddle an glass window reveals the truth in a way that feels very wrong and unintentional... Maybe in 10 years? Unless we somehow regress back again.
@augustdahlkvist39985 ай бұрын
FYI it would have been possible to avoid the lens glow bleeding into the water. They can just render the lens on a separate render target then composite them later. Honestly screen space are worth it. Most gamers are fixated on FPS rather than high fidelity reflections. Making your GPU do an entire extra render is not worth it. With the extra time saved in the GPU you can do so much more in terms of other effects.
@gtamike_TSGK5 ай бұрын
Games after Half Life 2 just can't make water to that standard anymore
@Booksds4 ай бұрын
@ranga821I think Half-Life 2 used planar reflections for water instead of cubemaps
@JustinBA0073 ай бұрын
@ranga821Don't see why not. I know realtime lighting is good for like, open world games and such, but for many other games, baked lighting looks amazing and takes very little processing power. Halo 3's lighting still looks great to this day, putting many modern games to shame imo.
@zanagi4 ай бұрын
dude when i first tried out UE back in the day i really thought it was just my low res pc spec but no. this happens in ARK too and other games.
@IronShigeru3 ай бұрын
Such a cathartic watch
@wilykary4 ай бұрын
Well in the case of the light glowing on the water, a good screen-space implementation would check the distance between the light source and whatever it's illuminating onto using the G-buffer, so it shouldn't even light up the water. It's not a screen-space problem, but an implementation problem. But I do have to agree screen-space reflections are wank.
@KillahMate5 ай бұрын
Both these rendering artifacts belong to the category of graphics glitches that ray tracing fixes completely. Basically reflections and refractions in general just aren't an issue anymore with ray tracing, they always work and are perfectly accurate.
@KillahMate5 ай бұрын
@@jc_dogen Yeah, as Blow says the forward rendering engines of that generation solved this problem by rendering the screen twice, the second time from the perspective of the reflection. Modern engines/GPUs aren't designed to be able to performantly render the screen multiple times because the industry has traded that ability in when everyone moved their engines to deferred rendering, which has too many other advantages to give it up for the sake of robust reflections.
@mechadeka5 ай бұрын
@@jc_dogen I can tell you have no idea what's being said to you.
@user-og6hl6lv7p5 ай бұрын
@@mechadeka He's not wrong. Deferred rendering has introduced a major problem when it comes to anti-aliasing, basically preventing them from using traditional AA techniques. As a result the industry has settled for Temporal Anti Aliasing which introduces aggressive screen blurring and transparency issues.
@Malkovith23 ай бұрын
okay, but what's the alternative? RTX? That's super expensive.
@sandwich24735 ай бұрын
He shouldn't look at any gameplay footage for a game called hunt showdown I don't know what they did in that game to make the reflections the way that they are, but goodness me
@aleksjenner6773 ай бұрын
They should update this game when DLSS Ray Reconstruction becomes widespread for some flawless pathtracing action.
@ganondorf665 ай бұрын
I've always hated it when reflective surfaces can only show what's already on your screen Thank god for raytracing
@rasmadrak4 ай бұрын
Jesus, we've grown picky over the years. The game looks phenomenal but here we are ... 😂
@GalaxyHighMarshal4 ай бұрын
He should play Half Sword playtest and give input!
@Superabound25 ай бұрын
Oh damn they remade Riven??
@BlowFan5 ай бұрын
Yep!
@microman5024 ай бұрын
was watching happily like "oh who's this guy, maybe he has some cool insight" but nevermind, he made Braid and The Witness lol.
@RandomDude6475 ай бұрын
sure but i like that the water glows red when your magical magnifying glass thingy glows red. it makes the game feel more fantasy-esque edit: oh i dont like the thing at 4:50. Blow has a point, that is janky and weird
@meijiishin56504 ай бұрын
bro sees the matrix
@SpookySkeleton7385 ай бұрын
is there a good reason why screenspace reflections can't use depth buffer and normal information to stop this kind of bleeding?
@Dystisis5 ай бұрын
good question, woulda thought this could be pretty easily fixed but have seen this exact issue in lots of contexts so maybe not
@thesenamesaretaken5 ай бұрын
What would you do with that knowledge though?
@RFC35145 ай бұрын
How would that solve the problem? The issue is that the "reflection" only has access to what's already on the screen, and in some cases it should be reflecting something that _isn't_ on the screen (because its view is blocked by something else). So, your options are either a) "reflect" the (wrong) thing on the screen, or b) "reflect"... what, exactly?
@Spazbo43 ай бұрын
I'd rather have no reflections at all
@CaptTerrific5 ай бұрын
6:00 damn, I dont even know how you could force Unreal to behave that way! It'd take a lot of effort
@leezhieng5 ай бұрын
I think those are screen space decals.
@DjVortex-w3 ай бұрын
Yeah, screenspace reflections are cool in the sense that they are very efficient and thus can be rendered even in weaker hardware. But it causes all sorts of artifacts.
@hiighcalibre3 ай бұрын
I would rather have the frames, I can live with some weirdness here and there for the sake of optimization.
@AluminumHaste3 ай бұрын
Yeah it's relatively cheap, looks relatively good with some downsides. Look at how costly ray tracing reflections are, especially how impossibly slow it is without dedicated hardware.