Why Jonathan Blow hates screen-space rendering techniques (Riven spoiler?)

  Рет қаралды 117,880

Blow Fan

Blow Fan

Күн бұрын

Пікірлер: 533
@0x00official
@0x00official 5 ай бұрын
"Jonathan Blow hates ___" every 60 seconds in Africa a minute passes
@figloalds
@figloalds 4 ай бұрын
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
@MLWJ1993
@MLWJ1993 4 ай бұрын
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).
@zanagi
@zanagi 4 ай бұрын
real lol holy shit i cant believe i actually ignored these small artifacts T-T
@termitreter6545
@termitreter6545 3 ай бұрын
@@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.
@Yoctopory
@Yoctopory 3 ай бұрын
Right! 😂
@mbe9601
@mbe9601 3 ай бұрын
​@@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.
@Vitorruy1
@Vitorruy1 5 ай бұрын
That's like watching Gordon Ransey talk about food but about game graphics
@XeenimChoorch-nx8wx
@XeenimChoorch-nx8wx 5 ай бұрын
He probably treats his employees about the same !
@Rhodochrone
@Rhodochrone 5 ай бұрын
I won't deny he knows lots about rendering but his explanations here are a little flimsy.
@jovi9918
@jovi9918 5 ай бұрын
It’s absolutely not, this guy has made a grand total of two games in the past 16+ years.
@latingm
@latingm 5 ай бұрын
@@jovi9918 not quite true. those are his successful games. he’s made quite a few smaller games that had no success.
@themaskedman9250
@themaskedman9250 5 ай бұрын
@@latingm could you drop some names
@radicant7283
@radicant7283 5 ай бұрын
"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."
@leezhieng
@leezhieng 5 ай бұрын
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.
@zonea4860
@zonea4860 5 ай бұрын
@@leezhieng Yeah, that's why VR games are rather simple graphically, because everything has to be rendered twice for each eye
@k0lpA
@k0lpA 5 ай бұрын
@@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.
@MrTomyCJ
@MrTomyCJ 5 ай бұрын
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.
@kuklama0706
@kuklama0706 4 ай бұрын
Same thing happened in the field of video compression
@dorbie
@dorbie 5 ай бұрын
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_tcp
@monad_tcp 5 ай бұрын
That doesn't bother me much, what's the worst thing ever is mipmap pop-up.
@dorbie
@dorbie 5 ай бұрын
@@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?
@HEADSHOTPROLOL
@HEADSHOTPROLOL 5 ай бұрын
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.
@TiiAye
@TiiAye 5 ай бұрын
well jon blow is a hack who uses his minor fame to generate controversy in hopes it trickles back
@dorbie
@dorbie 5 ай бұрын
@@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.
@dustingarner4620
@dustingarner4620 5 ай бұрын
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
@darrennew8211
@darrennew8211 5 ай бұрын
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.
@DripDripDrip69
@DripDripDrip69 5 ай бұрын
Totally normal cubmap behavior
@gregkrazanski
@gregkrazanski 5 ай бұрын
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
@k0lpA
@k0lpA 5 ай бұрын
I agree, but I also find screen space a bit jarring at times
@_KondoIsami_
@_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.
@zanagi
@zanagi 4 ай бұрын
I think hes talking specifically about unreal engine.. the game dev cant do anything about it cz its mostly provided by unreal
@TechArtAlex
@TechArtAlex 5 ай бұрын
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.
@CaptTerrific
@CaptTerrific 5 ай бұрын
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
@NYKevin100
@NYKevin100 5 ай бұрын
@@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.
@TechArtAlex
@TechArtAlex 5 ай бұрын
@@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.
@ZeroPlayerGame
@ZeroPlayerGame 5 ай бұрын
@@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.
@palapapa0201
@palapapa0201 5 ай бұрын
Why would the pole occlude more than the area it appears on the screen?
@BlowFan
@BlowFan 5 ай бұрын
I'm sorry about the spoiler at the start of the video but I found that part too relevant not to be included.
@citricdemon
@citricdemon 5 ай бұрын
How dare you spoil a videogame from the late 90s? Think of all the people who haven't had time to play it!
@ironhell813
@ironhell813 5 ай бұрын
Isn’t non point ambient specular light just refraction and not reflection? Especially if it’s screen space…
@DeltaNovum
@DeltaNovum 5 ай бұрын
Its not that far into the game I hope, cuz its only a bit beyond where I am at.
@k5josh
@k5josh 5 ай бұрын
@@citricdemon That thing is actually totally new to the remake, so it's not from the 90s ;)
@citricdemon
@citricdemon 5 ай бұрын
@@k5josh don't contradict me, peasant
@AgeCreationTutorials
@AgeCreationTutorials 5 ай бұрын
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-pero
@lucy-pero 5 ай бұрын
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!!"
@crestofhonor2349
@crestofhonor2349 5 ай бұрын
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
@fudjinator
@fudjinator 5 ай бұрын
There are non-screen space global illumination techniques.
@a36538
@a36538 5 ай бұрын
Did this guy really that say, and then record this?
@KillahMate
@KillahMate 5 ай бұрын
@@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.
@grendel6o
@grendel6o 5 ай бұрын
@@a36538 Yes, and if you look up, you'll see the word "gullible" on the ceiling!
@iestynne
@iestynne 5 ай бұрын
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.
@Irockman1
@Irockman1 5 ай бұрын
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?
@iestynne
@iestynne 4 ай бұрын
Mm you're right, it might be something else. No shortage of fun bugs in Unreal :)
@_KondoIsami_
@_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.
@Hemlocker
@Hemlocker 3 ай бұрын
That's way more than one frame
@gruntaxeman3740
@gruntaxeman3740 3 ай бұрын
@@_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.
@NeoTechni
@NeoTechni 5 ай бұрын
A lot of screen space effects would be fixed if they'd render the player character/vehicle/gun after the reflection.
@Quantris
@Quantris 4 ай бұрын
this only works in vampire games
@MLWJ1993
@MLWJ1993 4 ай бұрын
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...
@emperorpalpatine6080
@emperorpalpatine6080 5 ай бұрын
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
@HeroOfHyla
@HeroOfHyla 5 ай бұрын
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.
@hovikarnian6035
@hovikarnian6035 5 ай бұрын
Isn’t that game like a tech demo for RT? Why would they cheap out with SS effects?
@PseudoPolish
@PseudoPolish 3 ай бұрын
​@@HeroOfHylaI feel you so much, reflection artifacts in Control are genuinely not good for health
@termitreter6545
@termitreter6545 3 ай бұрын
@@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_Codes
@Feral_Pug_Codes 5 ай бұрын
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
@plopoplapa
@plopoplapa 5 ай бұрын
It's not just the pole, it's the whole railing. If you pause, you can see the waves disappear in a straight line.
@k0lpA
@k0lpA 5 ай бұрын
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.
@termitreter6545
@termitreter6545 3 ай бұрын
@@k0lpA Tbf that might be VR making things complicated, or the game just not being made for VR originally?
@ali32bit42
@ali32bit42 5 ай бұрын
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
@atimholt
@atimholt 5 ай бұрын
Yeah, this stuff was impossible not to notice when playing the Riven remake in VR. It was still a neat experience, just somewhat wonky.
@JaviArte
@JaviArte 5 ай бұрын
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.
@0x00official
@0x00official 5 ай бұрын
Is there anything jonathan doesn't hate?
@user-og6hl6lv7p
@user-og6hl6lv7p 5 ай бұрын
me
@sergeysmyshlyaev9716
@sergeysmyshlyaev9716 5 ай бұрын
His water filter
@SkankingKyle
@SkankingKyle 5 ай бұрын
Trump and Musk
@pkop4
@pkop4 4 ай бұрын
@@SkankingKyle nice
@Ubreakable-lr2dk
@Ubreakable-lr2dk 4 ай бұрын
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
@KhelbenGeldon
@KhelbenGeldon 4 ай бұрын
"That's something I'd expect from an indie game." .. it is an indie game.
@trashtrash2169
@trashtrash2169 3 ай бұрын
Using the same engine as many AAA games.
@trashtrash2169
@trashtrash2169 3 ай бұрын
The shaders and culling are part of unreal, highly doubt they're custom.
@KhelbenGeldon
@KhelbenGeldon 3 ай бұрын
@@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.
@fearedjames
@fearedjames 3 ай бұрын
​@@KhelbenGeldon The point is, the way the rendering work is stock Unreal, and you can only fix it by cheating around the problem.
@Koffiato
@Koffiato 4 ай бұрын
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.
@karlack2682
@karlack2682 5 ай бұрын
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
@DrTheRich
@DrTheRich 4 ай бұрын
It gets better if you can manage to get the framerate above 120
@termitreter6545
@termitreter6545 3 ай бұрын
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.
@karlack2682
@karlack2682 3 ай бұрын
@@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.
@AshnSilvercorp
@AshnSilvercorp 5 ай бұрын
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.
@crestofhonor2349
@crestofhonor2349 5 ай бұрын
SSR has been a common rendering technique since the 7th generation. It's a pretty cheap way to do reflections
@bryanedds8922
@bryanedds8922 4 ай бұрын
@@crestofhonor2349 Well I wouldn't say it's cheap...
@MrNobodyX3
@MrNobodyX3 5 ай бұрын
"that's something I would expect from an indie game" ... well yeah, cyan is an indie developer
@Kowzorz
@Kowzorz 5 ай бұрын
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".
@snooks5607
@snooks5607 5 ай бұрын
in my opinion he has too many opinions
@autochromes
@autochromes 5 ай бұрын
​@@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.
@ChaoszZChannel
@ChaoszZChannel 5 ай бұрын
I don't think he is criticizing cyan for that, he is trying to take a jab at unreal engine.
@no_no_just_no
@no_no_just_no 5 ай бұрын
​@@autochromesdid Johnathan Blow bite you when you were growing up?
@Inirdin
@Inirdin 5 ай бұрын
2:02 bottom left there is hole in the water
@darrennew8211
@darrennew8211 5 ай бұрын
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.
@minuteman1043
@minuteman1043 5 ай бұрын
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'.
@Inirdin
@Inirdin 5 ай бұрын
@@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
@lukkkasz323
@lukkkasz323 5 ай бұрын
@@darrennew8211 bottom left man, bottom left, bottom left
@darrennew8211
@darrennew8211 5 ай бұрын
@@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-00
@stranger0-00 5 ай бұрын
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.
@BlowFan
@BlowFan 5 ай бұрын
I will upload a video about it soon! :)
@stranger0-00
@stranger0-00 5 ай бұрын
@@BlowFan thanks!
@mfrunyan
@mfrunyan 5 ай бұрын
when are they going to remaster this to bring it to 1997 level graphics
@wacky.racoon
@wacky.racoon 5 ай бұрын
like a de-make ?
@mfrunyan
@mfrunyan 5 ай бұрын
@@wacky.racoon no, to bring it to the quality of pre-rendered graphics from the SGI workstations
@devzozo
@devzozo 5 ай бұрын
@@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.
@DripDripDrip69
@DripDripDrip69 5 ай бұрын
Port the map into POV-Ray and render them yourself.
@happyotter9
@happyotter9 5 ай бұрын
@@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
@ZdenalAsdf
@ZdenalAsdf 4 ай бұрын
He's not wrong. Screen space reflections and ambient occlusion look absolutely terrible, especially in motion.
@Something_Disgusting
@Something_Disgusting 3 ай бұрын
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ц
@АлексейЛогинов-ж1ц 4 ай бұрын
Thanks you! Always thrilling to see Blow do his thing - blast industry standards, and being awesome at the same time
@MrUbister
@MrUbister 3 ай бұрын
in that last spot you also have like a branch you see reflected in the ocean 10km over lmao
@TheNeathGame
@TheNeathGame 5 ай бұрын
It's funny with how many buffers they draw to to do deferred rendering that they don't just have a reflection in there.
@Lastninjaxoxoxoxox
@Lastninjaxoxoxoxox 5 ай бұрын
His attention to detail is actually amazing.
@6Twisted
@6Twisted 5 ай бұрын
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.
@bltzcstrnx
@bltzcstrnx 5 ай бұрын
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.
@gruntaxeman3740
@gruntaxeman3740 5 ай бұрын
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.
@Danuxsy
@Danuxsy 5 ай бұрын
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.
@gruntaxeman3740
@gruntaxeman3740 5 ай бұрын
@@Danuxsy I think that was a bug and can be solved rendering object what character holds in separate render pass.
@Danuxsy
@Danuxsy 5 ай бұрын
@@gruntaxeman3740 no it's not. the information that would be used for screen space is missing when an object is in front of it.
@gruntaxeman3740
@gruntaxeman3740 5 ай бұрын
@@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.
@Danuxsy
@Danuxsy 5 ай бұрын
@@gruntaxeman3740 not sure if that is possible and what the compute cost would be, might not be worth it.
@nutzeeer
@nutzeeer 5 ай бұрын
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..
@OrangePale
@OrangePale 2 ай бұрын
Is there anywhere I can watch his full playthrough of this Riven remake? Cant find it on his twitch
@didotb01
@didotb01 4 ай бұрын
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.
@theburntcrumpet8371
@theburntcrumpet8371 5 ай бұрын
Does Jonathan Blow like anything?
@lucy-pero
@lucy-pero 5 ай бұрын
"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++"
@lastburning
@lastburning 5 ай бұрын
His water filter, Gravity's Rainbow, Mulholland Drive, and that one solitaire game in The Zachtronics Solitaire Collection.
@titus663
@titus663 5 ай бұрын
He is on record liking Kimagure Orange Road
@Badspot
@Badspot 4 ай бұрын
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.
@zion6680
@zion6680 5 ай бұрын
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.
@TommyLikeTom
@TommyLikeTom 4 ай бұрын
I realised halfway through this video that this guy has made some of my favourite games
@zdspider6778
@zdspider6778 5 ай бұрын
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
@nerdError0XF Ай бұрын
Ending music is from Rain World or am i trippin??
@snaremori
@snaremori 5 ай бұрын
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
@sasuke2910
@sasuke2910 5 ай бұрын
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.
@charlesleninja
@charlesleninja 5 ай бұрын
There's a comment from @dorbie they posted an hour ago about just that
@KillahMate
@KillahMate 5 ай бұрын
@@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.
@sasuke2910
@sasuke2910 5 ай бұрын
@@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.
@sasuke2910
@sasuke2910 5 ай бұрын
@@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.
@termitreter6545
@termitreter6545 3 ай бұрын
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.
@doltBmB
@doltBmB 5 ай бұрын
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.
@roboman2444
@roboman2444 5 ай бұрын
One of my most popular videos is about this exact same thing lol
@BenMorse0
@BenMorse0 3 ай бұрын
The fence post is probably a shader drawing part of the water and the mask is messed up
@Tomofdahook17
@Tomofdahook17 3 ай бұрын
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-og6hl6lv7p
@user-og6hl6lv7p 5 ай бұрын
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?
@or6060
@or6060 5 ай бұрын
the water wasn't reflecting anything at all really
@raulgalets
@raulgalets 5 ай бұрын
stuff can figure out depth from a single picture now right? can it help screen space?
@EdsEnemy
@EdsEnemy 4 ай бұрын
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-dz1yc
@Nik-dz1yc 5 ай бұрын
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_267
@bleyk_267 4 ай бұрын
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
@BrgArt
@BrgArt 4 ай бұрын
@@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
@jasondads9509 Ай бұрын
This is what people watch him for. Not really for the actual game
@johanrojassoderman5590
@johanrojassoderman5590 4 ай бұрын
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.
@captainbeatdown6254
@captainbeatdown6254 4 ай бұрын
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
@KikkerFish
@KikkerFish 5 ай бұрын
Keep blowing, fan! Love your clips ❤
@BlowFan
@BlowFan 5 ай бұрын
Thank you! I appreciate it!
@RevolverPicturesYT
@RevolverPicturesYT 3 ай бұрын
Screen space reflections look great when they look great and they completely and utterly destroy your immersion when they look bad.
@the.monologue
@the.monologue Ай бұрын
"i swear seen that in a game sometime" witness reference fr
@PetWanties
@PetWanties 5 ай бұрын
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.
@ollllj
@ollllj 5 ай бұрын
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.nilsson
@m.j.nilsson 3 ай бұрын
The whole time I was thinking why does this game I don't recognize feel so familiar
@CaveyMoth
@CaveyMoth 4 ай бұрын
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.
@mojoplayer8915
@mojoplayer8915 5 ай бұрын
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.
@SkyBorik
@SkyBorik 5 ай бұрын
true
@andersonmat
@andersonmat 5 ай бұрын
Ray traced reflections are blurry aswell, good old cubemaps is the best option somehow
@SlyNine
@SlyNine 3 ай бұрын
SSR can be very accurate as far as position. You can see this in games that use RT and overlay ssr details.
@bran_donk
@bran_donk 5 ай бұрын
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.)
@crestofhonor2349
@crestofhonor2349 5 ай бұрын
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
@Danuxsy
@Danuxsy 5 ай бұрын
it will be replaced with ray traced reflections in future games as the hardware is now (mostly) able to support it.
@bran_donk
@bran_donk 5 ай бұрын
@@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_donk
@bran_donk 5 ай бұрын
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.
@crestofhonor2349
@crestofhonor2349 5 ай бұрын
@@bran_donk yeah no one really like SSR but it’s necessary unless you want to do Ray tracing
@c9brown
@c9brown 5 ай бұрын
"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.
@Stedman75
@Stedman75 3 ай бұрын
I couldn't unsee it after he showed it....
@szczypawa
@szczypawa 5 ай бұрын
5:12 its a cut to 1 hour later and he started making that noise
@Kknewkles
@Kknewkles 5 ай бұрын
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.
@Ang3lUki
@Ang3lUki 3 ай бұрын
I love how this guy is immediately able to tell when an effect is screenspace vs RT
@Tulip_bip
@Tulip_bip 3 ай бұрын
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
@Ang3lUki
@Ang3lUki 3 ай бұрын
@@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!?!?!?
@RadiantMantra
@RadiantMantra 3 ай бұрын
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-wenning
@j-wenning 5 ай бұрын
I've learned more about Outer Wilds from this clip than any other offhanded mention of the game on the internet.
@crimsonhawk52
@crimsonhawk52 5 ай бұрын
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
@AleyxLunara
@AleyxLunara 5 ай бұрын
@@crimsonhawk52 lol you have it backwards:P
@giampaolomannucci8281
@giampaolomannucci8281 5 ай бұрын
@@crimsonhawk52 Outer Worlds = fallout in space. Outer Wilds = puzzle game groundhog day in space there, better this way
@hotfightinghistory9224
@hotfightinghistory9224 3 ай бұрын
SSAO is whats causing the water refraction to disappear above the post.
@Siphonife
@Siphonife 2 ай бұрын
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.
@IndieLambda
@IndieLambda 4 ай бұрын
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.
@augustdahlkvist3998
@augustdahlkvist3998 5 ай бұрын
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_TSGK
@gtamike_TSGK 5 ай бұрын
Games after Half Life 2 just can't make water to that standard anymore
@Booksds
@Booksds 4 ай бұрын
@ranga821I think Half-Life 2 used planar reflections for water instead of cubemaps
@JustinBA007
@JustinBA007 3 ай бұрын
​@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.
@zanagi
@zanagi 4 ай бұрын
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.
@IronShigeru
@IronShigeru 3 ай бұрын
Such a cathartic watch
@wilykary
@wilykary 4 ай бұрын
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.
@KillahMate
@KillahMate 5 ай бұрын
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.
@KillahMate
@KillahMate 5 ай бұрын
@@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.
@mechadeka
@mechadeka 5 ай бұрын
@@jc_dogen I can tell you have no idea what's being said to you.
@user-og6hl6lv7p
@user-og6hl6lv7p 5 ай бұрын
@@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.
@Malkovith2
@Malkovith2 3 ай бұрын
okay, but what's the alternative? RTX? That's super expensive.
@sandwich2473
@sandwich2473 5 ай бұрын
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
@aleksjenner677
@aleksjenner677 3 ай бұрын
They should update this game when DLSS Ray Reconstruction becomes widespread for some flawless pathtracing action.
@ganondorf66
@ganondorf66 5 ай бұрын
I've always hated it when reflective surfaces can only show what's already on your screen Thank god for raytracing
@rasmadrak
@rasmadrak 4 ай бұрын
Jesus, we've grown picky over the years. The game looks phenomenal but here we are ... 😂
@GalaxyHighMarshal
@GalaxyHighMarshal 4 ай бұрын
He should play Half Sword playtest and give input!
@Superabound2
@Superabound2 5 ай бұрын
Oh damn they remade Riven??
@BlowFan
@BlowFan 5 ай бұрын
Yep!
@microman502
@microman502 4 ай бұрын
was watching happily like "oh who's this guy, maybe he has some cool insight" but nevermind, he made Braid and The Witness lol.
@RandomDude647
@RandomDude647 5 ай бұрын
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
@meijiishin5650
@meijiishin5650 4 ай бұрын
bro sees the matrix
@SpookySkeleton738
@SpookySkeleton738 5 ай бұрын
is there a good reason why screenspace reflections can't use depth buffer and normal information to stop this kind of bleeding?
@Dystisis
@Dystisis 5 ай бұрын
good question, woulda thought this could be pretty easily fixed but have seen this exact issue in lots of contexts so maybe not
@thesenamesaretaken
@thesenamesaretaken 5 ай бұрын
What would you do with that knowledge though?
@RFC3514
@RFC3514 5 ай бұрын
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?
@Spazbo4
@Spazbo4 3 ай бұрын
I'd rather have no reflections at all
@CaptTerrific
@CaptTerrific 5 ай бұрын
6:00 damn, I dont even know how you could force Unreal to behave that way! It'd take a lot of effort
@leezhieng
@leezhieng 5 ай бұрын
I think those are screen space decals.
@DjVortex-w
@DjVortex-w 3 ай бұрын
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.
@hiighcalibre
@hiighcalibre 3 ай бұрын
I would rather have the frames, I can live with some weirdness here and there for the sake of optimization.
@AluminumHaste
@AluminumHaste 3 ай бұрын
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.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
AI Learns to Play Tag (and breaks the game)
10:29
AI Warehouse
Рет қаралды 4,9 МЛН
Small games win big, here's how to make them
14:59
BiteMe Games
Рет қаралды 68 М.
The Problem With Procedural Generation
17:57
Acerola
Рет қаралды 278 М.
3 Hours vs. 3 Years of Blender
17:44
Isto Inc.
Рет қаралды 6 МЛН
Jonathan Blow shops for keyboards
6:18
Blow Fan
Рет қаралды 47 М.
6 DEVS Make a GAME without COMMUNICATING! (HARDCORE edition)
20:12
Blackthornprod
Рет қаралды 1,7 МЛН
Interview with Jonathan Blow at LambdaConf 2024
26:34
LambdaConf
Рет қаралды 25 М.
Jonathan Blow was right about the crash of "tech" jobs?
14:11
Blow Fan
Рет қаралды 116 М.
When Your Game Is Bad But Your Optimisation Is Genius
8:52
Vercidium
Рет қаралды 1,6 МЛН
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН