49 karma · joined June 21, 2014
I'm surprised that people find this to be an example of clickbait. If I cared about views, I'd imagine an honest title like - "I turned my c64 into a digital fireplace" - would have probably been more appealing, no?
I do care about the blog being snappy and working also on very low-end, vintage hardware though, so that also somewhat achieves that goal.
What I meant to say is that we live at a time where rendering every single pixel all the times is simply a waste of resources - that can be better spent somewhere else.
And you're still saying it's "blurry" - that's not the point. Certainly temporal reprojection will -always- be blurrier than not using it. But you're not considering what you're -gaining- by that blur. The real question is - would it be better to say, have a world with 1 million objects at 4k, a bit blurry, or a perfectly sharp image, at 2k, with 100k objects...
Temporal reprojection saves time that then can be invested in other things.
Lastly. CP2077 ALWAYS uses temporal reprojection. ALWAYS. If you disable DLSS it uses its own TAA instead. If you disable TAA (which cannot be done in the settings menu, but there are hacks to force it) is STILL USES temporal for most of its rendering before the final image.
DLSS is not the end-solution to rendering, well, nothing is, but it's an AMAZING piece of technology. All these temporal and dynamic resolution techniques are here to stay as they -improve- the look of games no matter the HW.
What do I mean? Obviously dynamic resolution and temporal reprojection are worse than say, a fixed 8k rendering at 240hz! Yes, true! But, that's not the correct math.
The more correct math would be, on a given hardware, say a 3080, would you rather spend the power to render each single pixel exactly, or would you rather "skip" some pixels and have smart ways to recover them for a fraction of the price, almost equal to the real deal, so now you have extra power to spend somewhere else?
Of course if you just do less work with DLSS or similar technologies, you're losing something, it's bad. But that's never the equation. The real equation is that no matter how powerful the HW, the HW is a fixed resource. So if you spend power to do X, you cannot do Y, and you have to chose whether or not X is more valuable than Y.
Makes sense?
Now, all that said, it's also true that sometimes you max out everything in a game, you cannot have more of anything because that's literally all the game has to render, and at that point sure, it's reasonable to spend power even in things that are not that great bang-for-the-buck because literally you cannot do anything else anyways! So for the very top PC HW, you end up doing silly things, like rendering in native 4k because you cannot use that power in any other way.
But that's in a way "bad", it's a silly thing that we have to do as there is no other option! If we had the option though, it would be much better even on a 3080 to render say a 2k or 1080p upscaled to 4k via DLSS, and use the remaining power to say, have 2/3 times the detail in textures or geometry or number or shadow-casting lights etc etc...
One is entitled to think it's stupid, and get a bad impression of the company, and refuse an offer if one gets made, but you don't go and tell that is "unfair" and just refuse to answer, that is totally and utterly inappropriate.
I would have understood if he/she said to prefer a test on a computer, if there was the possibility of doing that. But not just refusing to answer.
And the WORST traits that a candidate can show don't lie in technical expertise, but in attitude and character. So this was totally deserving of getting booted out of the door without a second of hesitation.
I've included a few pictures of stuff I recently used, maybe it can help to give more context.
- http://1.bp.blogspot.com/-YA10ftXFFQ0/U6-iAdAUtGI/AAAAAAAAAn...
This one was done for debugging, as I do often. The code that I was debugging took some geometry and generated some texturemaps from it, it's really hard to debug why the maps are wrong when they are, what happened to the geometrical calculations. So I just added a std::vector<float> debugStuff and pushed values from various locations, then wrote it as a CSV. In processing I load this bunch of floats I know the meaning of and plot them in 3d as a point cloud. Each point in the cloud is clickable to show more of what happened at that position.
- http://1.bp.blogspot.com/-EFgdBffKEU0/U6-h9QweujI/AAAAAAAAAn...
This was for performance. A particular system computes tens of thousands of generated code snippets according to some rules, that will then used in runtime in various ways. Testing in runtime is hard because it's hard to cover all of them and it would take a long time. So I rigged the system to extract statistics about the generated code and save them to a CSV. Then in Mathematica I categorize and plot these datapoints and I can compare what changed between two different runs of the system. When I see in the data that a given change seems promising enough, I do the expensive test in runtime
I've added a few (well many) links at the bottom of the article but if you have any suggestions on resources/software/etc please let me know
That's why unfortunately I still recommend something like processing, then you can write your own small IPC to send data to your visualization code from any host