Bringing the raytracing experiment to Xonotic - Printable Version +- Xonotic Forums (https://forums.xonotic.org) +-- Forum: Creating & Contributing (https://forums.xonotic.org/forumdisplay.php?fid=10) +--- Forum: Xonotic - Suggestion Box (https://forums.xonotic.org/forumdisplay.php?fid=20) +--- Thread: Bringing the raytracing experiment to Xonotic (/showthread.php?tid=8761) |
Bringing the raytracing experiment to Xonotic - MirceaKitsune - 09-15-2021 To be clear from the start: I'm obviously not suggesting this as some new default feature, the technology is nonviable to most players for at least another potential decade. I'm thinking of it solely as an experiment that would be really cool to make... most likely as a fork of the engine, though a hidden feature in the default code would be neat if it weren't too hard to maintain. It also wouldn't be recommended for any competitive online gameplay for obvious reasons. The idea is inspired by videos popping up of fans editing the engines of their favorite old titles to implement realtime raytracing, from Quake 2 to Serious Sam. We have an open source engine, good code and assets to use it with, a development team of cool geeks who understand... don't see why we shouldn't consider seeing how Xonotic with raytracing would look like! And of course other games that use Darkplaces, as this would also make Quake RTX a possibility with anything else using the engine. The obvious hurdle would be code and driver support, making sure this works on both Nvidia / AMD / Intel and under both Windows / Linux / IOS. We'll surely need Vulkan for this, though to my knowledge Vulkan has the basics for shooting light rays builtin and ready to use? As far as textures go we don't have PBR materials and prolly no one willing to redo all the images and shaders, though we should be able to get away with interpreting the current texture setup intelligently and not even having to recompile any existing maps: Standard texture remains albedo, normal / bump map unchanged, gloss texture as roughness (inverted), reflect texture as metallicity (may be unnecessary for now), glow texture as emission. Light source entities and lightmaps would be ignored by this renderer, the glow textures of lamps / neons in the map now responsible for casting light alongside the sky cubemap where one is available... maps will obviously be much darker but like I said this would be a gorgeous experiment not some official graphical upgrade we can expect to be always playable and look the same as the ridiculously ancient lighting system we presently use. RE: Bringing the raytracing experiment to Xonotic - MirceaKitsune - 09-15-2021 RE: Bringing the raytracing experiment to Xonotic - MirceaKitsune - 09-15-2021 RE: Bringing the raytracing experiment to Xonotic - _para - 09-15-2021 https://reshade.me/forum/shader-discussion/5450-guide-to-ray-tracing-with-reshade RE: Bringing the raytracing experiment to Xonotic - MusicGoat - 09-15-2021 id love to run a super fast arena fps at 30fps RE: Bringing the raytracing experiment to Xonotic - MirceaKitsune - 09-16-2021 A little something I unfortunately need to say before continuing: Expect me to put this and other Xonotic related things on second place for the time being. Don't want to dive in detail but some unsolicited personal drama was thrown straight into my face out of nowhere by someone with admin status last night, while I was trying to work on this with other engine developers in the chat. I don't know when and how it's going to be resolved, but at the moment I'm out of a place to even communicate with the DP team properly because of it. Thank you for understanding. What I managed to do before things unfolded: I've been playing with the existing bouncegrid implementation, which as someone accurately pointed out is the closest thing we already have to realtime raytracing. Its downside is it requires rtlights / dlights to work, no support for emission map tracing from *_glow surfaces... even if it had that its performance is understandably abysmal at high settings, making it viable only for calculating bounce light at a low detail. After a few hours of playing with the settings, I managed to come up with some good options for the dynamic implementation, which appears to offer great bounce lighting at great performance for stuff like projectile lights. Create a bouncegrid.cfg and paste the following in, use exec to run it from the console at startup: Code: set r_shadow_realtime_world_lightmaps 0 |