Don't most of these games have custom code for rendering and lighting? How is this able to fit into that custom code automatically?
Or is the automation here very limited and you just have to reverse engineer these and find the right hookpoints, while this project just provides the code that you can hook into the games?
This is the reason it only works with directx 8 or 9: they have a pretty rigid render path with a clearly separated vertex and pixel shader pipeline.
For directx 8, you would for example specify light sources as part of special draw calls to the directx API, which makes it easier to translate them to a ray traced scene graph.
Shader tools like reshare also use heuristics to detect which of the framebuffers contains a depth map to add effects like SSAO to older games.
I imagine that rtx remix can to similar things to detect where in a shader the light coordinates are stored: after all most shaders look pretty similar when it comes to implementing a Phong shader etc.
For everything over it, nvidia would have to expose the byzantine monstrosity that is the drivers they wrote, that detect games and hotswap the buggy developer shadercode out for working nvidia shader code. And they could do that for older titles. It just wouldnt be neat.
It hooks into the DirectX fixed-function pipeline used back in the day (i.e. where you set up model/view/projection matrices and lightsource coordinates and surface materials and sent to OpenGL/Direct3D), so it knows what the programmer wanted to do, and from there it's "easy" to replace everything.
Excerpt: "Scene manager, which uses information coming through the D3D9 fixed function API to create a representation of the original scene, track game objects frame to frame, and set up the scene to be path traced."
This is such a good way to make these old games look really spectacular. 2d graphics of the era haven't aged particularly badly but old 3d games usually look pretty janky (imo!). Being able to literally see them in a new light is wonderful.
There is increasing newfound appreciation for that early 3d visual look though. You can see that in new games being clearly inspired by that look, for example Dusk (with "overwhelmingly positive" rating): https://store.steampowered.com/app/519860/DUSK/
It's very interesting to see this new wave of games that are now evoking the childhood (or the "retro" feeling) of a new generation, in the same way pixelated games did for us not so long ago.
Much like fashion or music, the state of the art of a period consolidates into a style that becomes a design choice.
Childhood trauma bonded acquired taste, like enjoying Surströmming or raw oysters. Same goes for people fondly remembering original Playstation glitchfest.
I also feel like cranking up the quality of scenes like this is just gonna make it more jarring when you talk to an NPC, the world freezes, and their cold, dead eyes stare into your soul as their mouth awkwardly wiggles around and corny voice acting is played at you.
For Morrowind it didn't just upgrade the rendering, it completely changed the aesthetic of the scene. Is that on purpose? At that point you can't call the results better, only different.
It seems like the big change is that the light sources now actually emit light so the scene becomes a lot brighter. Maybe part of the process should be turning down global illumination? That might make dark corners even more dark however, and "hidden" clues that were supposed to be difficult to see may become outright invisible.
It seems you'd certainly be able to go in and just tweak the lighting without doing all the AI touchups, texture upscaling, and model swaps as they did in the video. Pretty wild stuff, either way.
According to the user guide [0], it's as simple as dragging the provided DLL into the game folder.
I'm going to try this out with one of my old favorites today, I doubt it'll be quite this easy.
I believe the DLL alone only makes the game moddable. Thereafter, there's still a lot of work to do to swap out low resolution and poly-count assets for more detailed ones.
I loaded up HL2 with this, it's the only game I've tested so far that actually loads the DLL correctly. I can toogle the overlay menu and I've gotten one of the menu screens to look somewhat OK. After loading into Route Canal or Sandtraps, it's pitch black, aside from the weapon and the buggy. Spent like half an hour messing with the settings but I couldn't get it to work well.
NFS:U2 and GTA:SA do not start at all with the DLL present.
Is Nvidia making good on its promise to Open Source it's drivers a d stuff? They may not give us everything but this must be the third or fourth announcement from Nvidia on some open source they are providing I have seen in the past year or so.
Nvidia really hurt themselves with their long-standing closed source driver position. In many circles (like HN) they burned a lot of goodwill and mindshare because of their driver stance and effect it has had on Linux desktop users. It is an extremely tiny population (in terms of numbers) BUT those users (like the HN users) have an outsized impact due to the tendency for them to be in technical and decision making positions.
However, Nvidia (other than the driver) has a TON of open source work. In addition to contributions all over the place in the relevant open source ecosystems/projects they have 349 repos on Github[0]. They also have a variety of different organizations on Github (for some reason) like Triton Inference Server that has another 30 repos[1]. If you start wandering through these repos these aren't small efforts either - it's clear Nvidia puts a TON of resources and investment in open source.
At the risk of making this another Nvidia vs AMD thread, AMD (the open source desktop darling) by comparison has 39 repos on Github[2]. Their entire project for ML has a total of another 39 repos[3].
If it weren't for the proprietary closed-source desktop driver souring people it would be clear and obvious how much of a supporter of open source Nvidia is.
Counting github repos is too dependent on how projects or organized to be anywhere near a useful metric - especially as one of the major advantages of open source is integration to the corresponding open source projects, like the linux kernel and mesa, which aren't under AMD's github.
It is in NVidia's best interest to foster the ecosystem around their closed system after all, so long as it's all built upon a foundation they control (Their closed source driver, and proprietary interfaces like CUDA). Nobody thought '90s microsoft was an open source beacon, yet they "gave away" a large amount of code - mainly win32 examples and the like.
For someone who claims to be trying to avoid some "Which corporation that doesn't know you exist is the best" fight you have chosen a rather specific unbalanced comparison.
> Nvidia really hurt themselves with their long-standing closed source driver position
> In many circles (like HN) they burned a lot of goodwill and mindshare
I think Nvidia couldn’t really care less about ‘goodwill and mindshare’ (from HN users, of all places) and I’m sure it is really sad at how badly it is hurt by its closed-source driver position, all while rolling in its tens of billions of profit from its gaming and compute divisions.
Oh, and it still has ~90% of the discrete GPU market share.
It's too bad this is a no-go for online/competitive games, which tbh are a decent number of the DX9 games still worth playing. I'd love to use this on Team Fortress 2 but I don't want to risk it on my account with all my items without some kind of explicit approval, since this hooking/injection probably looks just like a hack to VAC.
It might be fine. If it's just messing with the way DXVK is being presented, it's not very different from the "hacking" people use to get DirectX games working on Linux. AFAIK, games aren't really picky about graphics API calls as long as everything behaves as-expected.
Don't most of these games have custom code for rendering and lighting? How is this able to fit into that custom code automatically?
Or is the automation here very limited and you just have to reverse engineer these and find the right hookpoints, while this project just provides the code that you can hook into the games?
For directx 8, you would for example specify light sources as part of special draw calls to the directx API, which makes it easier to translate them to a ray traced scene graph.
Shader tools like reshare also use heuristics to detect which of the framebuffers contains a depth map to add effects like SSAO to older games.
I imagine that rtx remix can to similar things to detect where in a shader the light coordinates are stored: after all most shaders look pretty similar when it comes to implementing a Phong shader etc.
Excerpt: "Scene manager, which uses information coming through the D3D9 fixed function API to create a representation of the original scene, track game objects frame to frame, and set up the scene to be path traced."
Deleted Comment
Much like fashion or music, the state of the art of a period consolidates into a style that becomes a design choice.
The only authority here would be the original designers.
But the old rendering pipeline still exists I guess, and the new one look wicked cool.
[0] https://github.com/NVIDIAGameWorks/rtx-remix/wiki/runtime-us...
NFS:U2 and GTA:SA do not start at all with the DLL present.
However, Nvidia (other than the driver) has a TON of open source work. In addition to contributions all over the place in the relevant open source ecosystems/projects they have 349 repos on Github[0]. They also have a variety of different organizations on Github (for some reason) like Triton Inference Server that has another 30 repos[1]. If you start wandering through these repos these aren't small efforts either - it's clear Nvidia puts a TON of resources and investment in open source.
At the risk of making this another Nvidia vs AMD thread, AMD (the open source desktop darling) by comparison has 39 repos on Github[2]. Their entire project for ML has a total of another 39 repos[3].
If it weren't for the proprietary closed-source desktop driver souring people it would be clear and obvious how much of a supporter of open source Nvidia is.
[0] - https://github.com/NVIDIA
[1] - https://github.com/triton-inference-server
[2] - https://github.com/amd
[3] - https://github.com/RadeonOpenCompute
And even then that count misses a large number of projects, like things under OpenGPU (https://github.com/GPUOpen-Drivers and https://github.com/GPUOpen-LibrariesAndSDKs) for example.
It is in NVidia's best interest to foster the ecosystem around their closed system after all, so long as it's all built upon a foundation they control (Their closed source driver, and proprietary interfaces like CUDA). Nobody thought '90s microsoft was an open source beacon, yet they "gave away" a large amount of code - mainly win32 examples and the like.
For someone who claims to be trying to avoid some "Which corporation that doesn't know you exist is the best" fight you have chosen a rather specific unbalanced comparison.
> In many circles (like HN) they burned a lot of goodwill and mindshare
I think Nvidia couldn’t really care less about ‘goodwill and mindshare’ (from HN users, of all places) and I’m sure it is really sad at how badly it is hurt by its closed-source driver position, all while rolling in its tens of billions of profit from its gaming and compute divisions.
Oh, and it still has ~90% of the discrete GPU market share.
Many companies would dream to hurt themselves that bad.
https://www.remedygames.com/games/max-payne-remake/
But path-traced TF2 would own lol.