Quake II RTX: Re-Engineering a Classic with Ray Tracing Effects on Vulkan
nvidia.com
nvidia.com
That said… gimme gimme gimme Half Life 1, plssssssss :D !
> they added PBR layers
and fluid simulation for explosions
I'd rolling in joy for Max Payne and GTA San Andreas :)
It feels more like a reboot than a remaster
I agree with you that there is asset work to be done, but I bet there are tools out there that can simplify and automate this process quite a bit today.
https://www.resetera.com/threads/ai-neural-networks-being-us...
https://captrobau.blogspot.com/2019/03/remastering-star-trek...
This is not just RTT; there's a big amount of rework. Likely, any old game would look significantly better with such development effort (in other words, with any good remastering).
This could be considered a great market stunt - the graphical improvement is touted to be due to RTX (ray tracing), while it's actually due to many factors.
On top of that, it misleads people into thinking that this type of improvement is typical of ray tracing, and that it comes at virtually no cost, while currently, ray tracing takes a big performance hit, and it's generally hard to notice.
Q2VKPT is close to the concept "improved with ray tracing", and while certainly impressive, it doesn't yield the same "AMAZING!" effect.
To add to this point, at 1:35 in the video they compare with / without volumetric ligthing except, well, volumetric lighting has been used in games for a while now.
The "before" should show a non-RTX lighting instead of just nothing at all.
I think the MMX era was the start of Intel's tradition of hyped up graphics related press releases followed by a total lack of execution.
All comes down to Microsoft and Intel coming up with a concept of purely software peripherals around 1997. Intel released things like MMX, AC'97, Communications and Networking Riser (CNR), and audio/modem riser (AMR) standards, all in an effort to push hardware vendors out of the market by handling those roles in software by the CPU. More work for CPU = more demand for fast CPUs = more profit.
Funnily enough AMDs 1998 3DNow! did actually add floating point support to MMX and was useful for 3D acceleration until hardware T&L came along 2 years later.
Intel Paid few dev houses to release make believe MMX enhancements, like POD (1997)
https://www.mobygames.com/images/covers/l/51358-pod-windows-...
1/6 of box covered with Intel MMX advertising while game used it only for some sound effects. Intel repeated this trick in 99 while introducing Pentium 3 with SSE. Intel commissioned Rage Software to build a demo piece showcasing P3 during Comdex Fall. It worked .. by cheating with graphic details ;-) Quoting hardware.fr "But looking closely at the demo, we notice - as you can see on the screenshots - that the SSE version is less detailed than the non-SSE version (see the ground). Intel would you try to roll the journalists in the flour?". Of course Anandtech used this never released publicly cheating demo pretending to be a game in all of their Pentium 3 tests for over a year.
https://www.vogons.org/viewtopic.php?f=46&t=65247&start=20#p...
I'll never forgive the computer store guy when I was 14 who pushed me to buy the $40 cheaper S3 Trio3D instead of the Voodoo. Instead of something useful, I ended up with a glorified paperweight that only worked well for Direct3D. Guess how many games back then bothered to use that?
I think I got Quake 1 with some shitty hacked MiniGL driver working _once_.
All my school friends had 3dfx cards. Didn’t get to do 3D gaming until I bought a Radeon 8500 many years later!
Still have my 3dx actually...it was a very interesting card:
Also, Qualcomm’s popular Adreno line on Android GPUs has its roots in the Xbox360 GPU.
Most obvious to me in the quake logo/skull on the left of this[1] image.
1. https://images.nvidia.com/geforce-com/international/comparis...
The only downside that can be pointed out is that you are hardware dependent. Would be amazing to see thing in a console, all games with dynamic lighting would help developer and gamers.
In the linked demo video they also use new high resolution textures. Which include not only color data as in the original Quake, but also normal maps and maps with PBR parameters (metalness, roughness).
[1] just look at Doom 2016: https://cdn.arstechnica.net/wp-content/uploads/2016/05/20160...
If they hadn't done the hard work of basically retexturing every single surface, it wouldn't look half as good. Without depth, ray-tracing looks incredibly flat, like this: http://builder.openhmd.net/blender-hmd-viewport-temp/_images...
Adding things like health regen, cover, alternate fire modes, and so on ultimately just distracts from the action in my opinion. We don't really have any more games like Quake nowadays.
Your lighting point is reasonable in the sense that this demo was made to demonstrate the dramatic lighting without respect to gameplay. On the other hand games are already clearly going toward HDR and physical and dramatic lighting. If Quake had HDR lighting, it would look just as good but it would be less distracting because it would have been directed and designed to support the gameplay.
This version also has dynamic adaptation which would have been awesome to have back in the day - some of the dark areas are too dark and it’s great to have the lighting automatically adjust so that at least I can see.
Anthem has some buildings that have an older feel out in the freeplay areas, but even that would be a stretch.
this is not to diminish artists working today. (I'm one of them!)
Adrian Carmack though, comes from a whole other breed of creators who had to be both artistically brilliant as well as technically resourceful enough to create art within EXTREMELY tight constraints.
the menagerie for doom, which he is responsible for are still a masterwork in readability, efficiency of design, and communication of purpose in many ways (the textures in that game very easily still hold up today)
I work with a ton of amazingly talented artist, and still, it's rare that I see both artistic, illustrative, and technical talent all in one person. (helps that teams are enormous and so those skills can be spread amongst multiple people)
Instead of "wow" you get "well, duh, that's how things should look".
Games are handling this by dialling the amplitude of RTX effects way down and having a smoothing pass. After all that is done, the wow effect is gone and you're just left with a more dynamic version of the same or worse aesthetics that we're already used to.
I expect it'll truly take off on next gen hardware, whenever that rolls out.
Here's what RTX+DLDN actually looks like if not dialled down and smoothed: https://youtu.be/CuoER1DwYLY?t=553
My takeaway is yes that quake 2 demo looks really cool, but you just know that they used every black magic hack in the book to get there, and most of it can't be replicated in a modern high fidelity game. It's definitely not a case of flicking an 'RTX on' switch.
If you thought the official 3DS one was pretty, wait until you see the fan work done on a UE4 version:
Until you ask them whether a scene is a photo or a render. They won't know to look for shadow acne, but they will still make a judgement that includes it. RTX has a few things that we've had for years, but it seems to do a way better job at energy preservation.
I wonder if in the end (should we eventually see universal adoption) raytracing will prove more of a boon towards developers rather than end users, as it has been with many other hardware advancements.
That's the key thing though, RTX removes the need for all those tricks (which are tricky to get right, humans are good at spotting lighting flaws in a scene) which is a net win for the game developers who can focus that time/effort elsewhere.
It reminds me of what it was like to first see 3dfx OpenGL mode in Quake II when I got a Voodoo graphics card.
I just remember seeing all of the ambient lights and glows and thinking how amazing it looked. Specifically some early campaign map where you're going through dark sewers that had a bunch of little lights that emit a glow.
But after the coolness factor wore off, it was back to using the most minimal settings possible to maximize visibility and frame rates to play it online.
But yeah, the biggest improvement was putting it into Glide/OpenGL and watching all the new lights appear.
http://dk.toastednet.org/Q2DOS/
No Glide though, so it won't run under emulation it needs an actual 3dFX card.
Other things like more accurate reflections and specular effects add more to VR where subtle head movements that don't produce the correct response our brain expects impact immersion even when we're not able to consciously identify why the rendering is not quite right.
The additional performance demands of VR mean it will be a while before we really see these benefits realized but I think when it all comes together it will really improve immersion.
There are some other potential benefits to basing VR rendering around ray tracing too that might take even longer to realize. For example you can directly compensate for the optics of the lenses when generating rays and avoid the whole post process warping step and foveated rendering is very easy to incorporate naturally.
Grass and particle effects are secondary....
How many FPS AAA titles today use sprites for enemies and weapons?
Nothing's stopping someone from adding code to render 3D models or "portals" in the game, and in fact it has already been done, with no 3D acceleration needed.
Quake was a whole new paradigm, it was based on a true 3D engine and its maps were generated in three dimensions. You could stand under stairs, under the room above, and underneath lifts.
A nitpick: DooM (1 and 2), just as well as Duke Nukem 3D were indeed "2.5D" elaborate fakery of 3D. One of examples of the ruse: a level was basically a (floor, ceiling) height map, and there could be no two overlapping rooms one above the other.
On the other hand, Quake (1) was an early pioneer [1] of real, actual 3D, including an OpenGL backend and all that. That's one of the reasons it required significantly beefier hardware: needing a Pentium for smooth gameplay, while DooM would run perfectly fine on a mid-end 486, which is a generation older.
[1] cf. Marathon
The Quake rasterizer with its overlapped divide for perspective correction is a thing of beauty and possibly my favourite piece of code ever. If there's anyone out there who loves optimisation and hasn't read Abrash's "black book", it's well worth a read.
Double nitpick: Duke Nukem could actually have stacked floors and bridges over other playable areas.
As such, if it didn’t use “real” 3D, its 2.5D scheme were considerately more elaborate than Doom or Wolfenstein.
Basically you still drew in 2d but you could overlap rooms with other lines that wouldn't intersect with any already existing lines, and that would configure 'a room above/below the current room'. Then you had to slope the floor until it actually connected with the newer room.
It was pretty strange but yeah, some people built insanely detailed things with Duke3D :-)
Elaborating a bit -- the Build engine had a feature called "sector effectors" that, when triggered, would teleport the player to a completely different sector in the map. The transition was seamless and permitted interesting effects like the illusion of having stacked floors.
The designers used this feature to most profound effect in the level Lunatic Fringe. In order to complete a full circuit of the central ring room, the player had to move through a 720-degree circle to return to the entrance. It was _extremely_ confusing playing that level for the first time.
https://dukenukem.fandom.com/wiki/Lunatic_Fringe
Fabian Sanglard wrote an excellent series about the engine here: https://fabiensanglard.net/duke3d/
https://media.moddb.com/images/members/1/240/239733/qv1.gif
Curiously, explosions were still sprite + particles. But I can't remember anything else outside of UI that was using a sprite.
Q2 took it even further - it has 3D models for explosions, and even puffs of smoke when bullets hit walls (these were simple particle effects in Q1). IIRC the only thing that was a sprite was the BFG10K plasma ball?
Back then, I just found it strange. In retrospect, I wonder if it was an attempt to associate some kind of "uncompromising real 3D" branding with id engines. It's interesting that Q3 - which was the first engine id released after they got serious competitors in that space (Unreal, Source) - switched back to sprites for fire, smoke and explosions. And Unreal especially made it a point that it wasn't just 3D, but it was shiny:
If you look at the water reflections, you will however see your gun model and a disembodied/floating hand holding it.
Somehow... it almost works....
As for me Quake 2 was kind of a disappointment after Duke Nukem 3D. Only Half-Life brought back the depth Duke Nukem 3D had. E.g. seeing something like a ventilation cover and not being able to break it and climb through felt infuriating.
When I was porting Quake 2 to MS-DOS, I have to admit that it's the most I ever played of it. It really fell into Carmak's view that stories have no place in gaming.
It's a shame Valve found a much bigger market than games, but it leaves the mantle for others to pick up.
When q2 had shipped out I was so busy working I never had time to play it seriously.
Quake 4 felt far more engaging to me. And q3.. I had the tin box set for Linux. Remember that push to make retail Linux gaming a thing? Shame it never panned out.
What does this mean? Being told and participating in a story has always been by far the primary thing I play a game for. Interactive visual fiction experience inducing compassion and involvement bundled with moderate challenge, a degree of freedom and realism (that's why I don't like rail-nailed heavily scripted games) is what I want of a game. The visual part should be reasonable (mostly needed for the atmosphere) and controls should be convenient. In my opinion Half-Life and Fallout (all the parts) were the best games I ever played. The story unveiling and the sense of helping people in the imaginary world heroically (something that is a way too hard and dangerous for an average Joe to do in the real life where you can't save&load) and exploration are the things that make a game addictive for me.
> Story in a game is like a story in a porn movie. It's expected to be there, but it's not that important.
It's why DooM was such an incredible novelty of fast paced 3d shooter, and Quake... Well.. Its devoid of character.
It's why HL & Fallout are so beloved.
I'm 100% with you
And iD did a great job of writing modular and portable code.
It was really exhilarating to get it running on a different platform with essentially no real changes, other than platform code and initially removing the DLL support.
Thankfully DJGPP had progressed far enough that its DLL support works great.
https://sourceforge.net/projects/hx-dos/
when the author disappeared from the face of the earth I uploaded everything I had regarding it. It's an incredible extender, sure, but it's nothing like having a native port.
Seems a strange omission.
> As Christoph states on his site [1] ...
[1] http://brechpunkt.de/q2vkpt [2] https://github.com/cschied/q2vkpt
“But what’s new with Quake II RTX compared to Q2VKPT?”, you ask. A lot. We’ve introduced real-time, controllable time of day lighting, with accurate sunlight and indirect illumination; refraction on water and glass; emissive, reflective and transparent surfaces; normal and roughness maps for added surface detail; particle and laser effects for weapons; procedural environment maps featuring mountains, sky and clouds, which are updated when the time of day is changed; a flare gun for illuminating dark corners where enemies lurk; an improved denoiser; SLI support (hands-up if you rolled with Voodoo 2 SLI back in the day); Quake 2 XP high-detail weapons, models and textures; optional NVIDIA Flow fire, smoke and particle effects, and much more!
--
[1] http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePos...
I would be interested how RTX compares to the other Quake2 renderers that it originally came with.
About speed: it's still very hard to do real-time, but it seems like denoising algorithms are getting good enough that it's getting doable. Keep in mind that it is a game, so small graphical glitches aren't that big of a deal.
These days, it does tend to mean doing global illumination using ray tracing.
Originally, the term “path tracing” was used to refer to taking a single random scatter at every step along a path of connected segments, as opposed to the idea of taking multiple random scatters at a point and averaging them, recursively. It’s a way of thinking of Monte Carlo rendering as taking one sample in a very high dimensional space - where a chain of ray segments, or “path” is a single sample - rather than thinking of each ray segment separately as a sample.
Ray tracing, FWIW, can sometimes refer to situations where you’re not even rendering. It has a more general meaning of doing line based visibility queries, which you can use for lots of things.
Ray tracing = initiate rays from light sources, bounce them around, accumulate them on camera. This is accurate but incredibly inefficient. This is how pre-baked light mapping and GI works.
Path tracing = initiate rays from camera, induce bounce rays toward light sources. Not quite as accurate but orders of magnitude mode efficient in terms of producing an acceptable image.
i've read a few technical articles about ray-tracing, but they mostly describe it as a rudimentary (largely outdated) way of achieving 3d effects with relatively little code, and with severe limitations (walls must be orthonormal, changes in elevation require extra work, etc.). i understand ray-tracing at this level (break the view into columns, set the fill height of the column according to the distance of the ray).
then i see marketing-style articles like this one that use the same term to describe advanced lighting effects, material reflections, etc. and i don't understand the technological jump. what am i missing?
edit: i was thinking of "ray casting", not "ray tracing". thank you for the corrections below.
Ray casting is the old Wolfenstein 3D look: https://en.wikipedia.org/wiki/Ray_casting
Ray tracing is what Pixar uses for Toy Story, Monsters Inc, etc... https://en.wikipedia.org/wiki/Ray_tracing_(graphics)
And then the new hotness for offline rendering is Path Tracing, which is a form really good but really hard to accelerate form of ray tracing: https://en.wikipedia.org/wiki/Path_tracing
And yes fundamentally all of these are "shoot rays out from the camera", hence the very specific terminology used for each to disambiguate which approach to shooting out rays from the camera is being used and what happens when rays hit a thing.
Roughly speaking, ray tra in techniques are variations on the concept of tracing a ray from the camera back into the screen and seeing where is ends up. The different variations distinguish themselves by what happens at a ray intersection. Classical ray tracing will spawn a shadow ray towards light source. Path tracing will stochastically sample some distribution of ray directions (usually based on a combination of light locations and material properties) in order to do Monte Carlo integration of the rendering equation. There are other variations.
Ray tracing (w/ only shadow rays) doesn't give you global illumination. Path tracing (this work) does.
Ray tracing as used here means simulating light rays bouncing off of objects - it's a high fidelity technique generally not used in games in the past, because it is so slow. https://en.wikipedia.org/wiki/Ray_tracing_(graphics)
Of course that doesn't get you this ray tracing thingy, although you might be able to run that when they release it and if your hardware supports it.