If you are a gamer and game developer, it has been almost impossible to avoid three bold letters - RTX. It has been a subject of awe and hype, but there has been some doubt, and even ridicule about it. Internet is full of comparative images with text "RTX ON/RTX OFF". Yes, real-time ray tracing is the new fad that will make any game 100000 times better - or will it?
Not a new kid on the block
In my experience people always need some "shining star" that they believe will lead everybody and everything into a technological nirvana. It changes almost annually, sometimes it is a solid improvement, sometimes it is just big words and vapourware, rarely it is a world shattering or revolutionary breakthrough (I hate the word "disrupting" which is used too much nowadays).
Ray tracing itself is nothing new. The principle is old as … quite old. It has been used in movies for some time for all kinds of CGI, but until now it has always been offline rendering. It has been impractical for real-time games. But now it is possible, and it works (sort of) with these new RTX video cards.
To develop for RTX or not to develop
Whenever some new technology emerges, I have to consider it as a game developer whether it is something that I should take notice, and how it could affect the development (and marketing) of my game development projects. A small-time developer has limited resources and limited workhours. Is it really worthwhile to invest more development hours (perhaps) to integrate any new tech in the project? Does it increase the interest and sales enough, or does the game manage without it? Most importantly, does it really make game better, more immersive, easier to play, and bring more gaming value?
Of course, these RTX cards are quite expensive. It means that only few gamers will have them, since early-adopters are only a very small percentage of the gamers. Nvidia has opted that new drivers would enable RTX in some previous GTX models, but even then I suspect that the RTX performance in them is probably quite poor. True RTX cards have specific hardware for real-time ray tracing, while older cards have to manage with old hardware.
Technically this real-time ray tracing does not demand from developer that much extra work, assuming that you are already using PBR materials, and you have aimed for realistic outlook in your game project - and your game engine supports it. But after that, there is some extra work and experimenting waiting for developer to optimize everything for RTX, and that can be a huge task, involving hundreds of hours tweaking and testing.
It is not full ray tracing anyway…
Unreal Engine 4.22 has real-time ray tracing available, more specifically Microsoft DirectX Raytracing (DXR), as early access feature. However, this is a good example of the fact, while media touts about RTX, the whole concept is left a bit vague, and people probably get a wrong idea what is really going on. RTX ON does not necessarily mean that everything is ray traced in real-time, and rarely it is, because it is still very expensive, RTX card or not.
On the contrary, current RTX ON means that some processes, like shadows, reflections, translucency and image-based lighting, may or may not be passed to ray trace. Otherwise they are handled just like they have been until now. So, in reality this is not full real-time ray trace, not yet. It is just a mix of old solutions with some ray trace as an icing on the cake.
If you thought that this is going to be a miracle solution that you just switch on and everything is magically transformed into ultrarealistic and stunning scenery - while having a wonderful performance due to RTX - then you better reset your brains. Because it simply is not an On/Off solution, a developer should use lots of time testing which things will be ray traced and which are not, to achieve good balance between performance and good outlook.
Some testing with Quake II RTX
Currently there isn't many new games that support RTX, and even their ray tracing is limited. However, Nvidia has produced a kind of tech demo. Well, it is a full game, and also fully ray traced, but it happens to be Quake II. You can grab Quake II RTX for free, and if you already own original Quake II, you can play whole game as fully ray traced version.
But… Quake II is quite old, and it still uses that old content, old chunky models etc. They are totally different thing than high poly content of modern realistic games. So it is more like a tech demo, and also a great learning tool, since the source code is available in GitHub. I happen to have an RTX card, and it was interesting to test how it works, how it looks like and what is the performance.
I have included some screenshots of Quake II RTX gameplay. This kind of mix between old graphics and some realistic effects show quite well, that you really have to think carefully how to use realistic ray tracing. In this case it does not make this game better looking, but quite opposite. So you can conclude from this, that ray tracing is not something that you just "drop in". It needs careful design and fitting with other elements.
You can also watch a gameplay video on my Facebook page
https://www.facebook.com/mikelaakso/videos/891587017841158/
Check those reflections…
Another noteworthy thing are the new possibilities for unexpected and unwanted reflections that could reveal things that should not be revealed. As you can see in the images, the underwater surface reflection shows clearly that player has no body, but just hands grabbing the gun. Of course we all know this, but this shows that there could appear other reflections showing things that break the immersion in the game. This means that you have to be more careful how you implement things in your game.
Also, the performance was not fantastic, on the contrary, it was something like 40-60 FPS. Totally playable with high-end PC, but not great. Considering, that Quake II is an old game, this convinces me that fully real-time ray traced game with modern realistic content and scenery is still a dream, almost realized, but not quite yet real. Mixture of old techniques and ray tracing works, but it needs careful optimization.
Conclusions
To wrap it up, I would not put my money on RTX horse at this moment. It is an interesting novelty, but not something that I would consider “a must” to implement in a game. It adds some quality to scenery, if the scenery is already of high quality. But not much. And anyway, games are much more than just the visual outlook. RTX does not make your game automatically AAA level. With current level of technology it does not really make games that much better, considering the price in money and performance. Perhaps in couple of years.
So is it worth it? Yes and no. I would say that it is worth to keep your eyes on, kind of a long term investment. I would not give it high priority, but check now and then how it works, and how it has improved. If there is extra time for RTX optimization, then it may give some edge in marketing your game, but then there is also the possibility that people have false expectations, and get very disappointed when performance drops.
Grab that source code
Anyone who is interested in the implementation of real-time ray tracing will probably benefit from the Quake II RTX. The source code is available in GitHub
https://github.com/NVIDIA/Q2RTX
There is also some material with short introduction to ray tracing. This is a great opportunity to see how it is implemented.