derpius / gmod-dxr Goto Github PK
View Code? Open in Web Editor NEWGarry's Mod rendered using DirectX Raytracing
License: MIT License
Garry's Mod rendered using DirectX Raytracing
License: MIT License
Describe the solution you'd like
Implement an antialiasing pass
Describe the solution you'd like
Use a stack to store the current mediums we’ve entered, then when we enter a medium, use the value at the top of the stack as the current medium, and the hit medium for refraction calcs, then push the hit medium to the stack.
When we exit a medium, pop from the stack (ie the medium we’re exiting), use the hit medium as the current medium (hit will be a backface of the thing we’re inside for exiting), and the new top of the stack as the medium we’re entering.
The only problem with this is that it assumes we start in whatever our default medium is (for most cases this will be air, or more likely vacuum), even if the camera is placed inside another medium in the scene, however allowing the user to set the default medium would mitigate this issue for most use cases, for instance an underwater render.
Describe the solution you'd like
Currently, for simplicity, initial hit positions from the camera are computed by tracing camera rays, this allows for more accurate thin lens depth of field, however doing DoF as a post processing step is far more efficient.
Given that not being able to simulate DoF directly is fine, the current method of tracing camera rays could be replaced with a far more efficient rasterised GBuffer pass, although just how much of a performance increase that would give is debateable given most of the performance hit comes from subsequent rays.
Is your feature request related to a problem? Please describe.
While diffuse lighting already has barely any noise, indirect diffuse lighting and more importantly caustics are poor, and in the case of caustics they’re not effected by direct light.
Describe the solution you'd like
BDPT is an unbiased method for drastically reducing the variance created by these light interactions, compared to the arguably simpler to implement but biased photon mapping.
Unlike with backwards path tracing, there’s no simple step by step guides that explain the logic (e.g. scratchapixel), however after reading a paper and a few articles on it, it doesn’t seem entirely out of my reach, and wouldn’t take "much" more to upgrade to metropolis light transport.
https://github.com/NVIDIAGameWorks/Falcor/releases/tag/4.4
Falcor version 4.4 has been released, and with it has come major changes that will completely break a lot of my current code, however it fixes a bunch of stuff and adds even more so the hassle of migrating is well worth it.
Only issue is I'm still mid way through implementing BDPT, so I'll probably need to wait to migrate until after that's all working.
Describe the solution you'd like
Add support for the image based LUTs.
Describe alternatives you've considered
A more difficult but higher fidelity option would be to implement LUT file formats, however I doubt the visual quality increase will be distinctly better than the texture version.
Additional context
https://defold.com/tutorials/grading/
https://wwwimages2.adobe.com/content/dam/acom/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf
Describe the solution you'd like
Use the texture's filename, possibly coupled with entity ID like [57] bricks.png
.
Additional context
A more long term solution would be to make a TOOL that allows assigning material properties to entities in GMod, which are then read by GModDXR.
Describe the solution you'd like
Couple the OptiX AI denoiser with the Falcor renderer, which will require conversion between Falcor textures and whatever the OptiX denoiser takes in and spits out.
Describe alternatives you've considered
Using a simple box blur with thresholds would work for direct anything and indirect diffuse surfaces, however completely ineffective for anything exhibiting indirect specular.
Additional context
https://raytracing-docs.nvidia.com/optix7/guide/index.html#ai_denoiser#nvidia-ai-denoiser
Self-explanatory.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.