Code Monkey home page Code Monkey logo

dlss's Introduction

Deep Learning Super Sampling (DLSS) for Flax Engine

DLSS is a revolutionary breakthrough in AI-powered graphics upscaling technology that massively boosts performance. This repository contains a plugin project for Flax Engine games with DLSS.

Minimum supported Flax version: 1.5.

Installation

  1. Ensure to have proper system setup for C++ Scripting - see Flax Docs

  2. Clone repo into <game-project>\Plugins\DLSS

  3. Add reference to DLSS project in your game by modyfying your game <game-project>.flaxproj as follows:

...
"References": [
    {
        "Name": "$(EnginePath)/Flax.flaxproj"
    },
    {
        "Name": "$(ProjectPath)/Plugins/DLSS/DLSS.flaxproj"
    }
]
  1. Setup plugin

Now, open Flax Editor and add new DLSS settings (via Content window New -> Settings, select Type to DLSSSettings). The you can provide AppId or ProjectId for NVIDIA DLSS. Also, you might want to get official DLSS SDK and update DLL files in this repo.

  1. Test it out!

Finally you can use DLSS for image upscaling. DLSS extension will be visible in Plugins window (under Rendering category). It implements CustomUpscale postFx to increase visual quality when using low-res rendering. To test it simply start the game and adjust the Rendering Percentage property in Graphics Quality Window. Use plugin API to adjust DLSS quality and setup proper RenderingPercentage of the game rendering based on optimal settings from NVIDIA.

Supported Platforms

Platforms:

  • Windows x64
  • Linux x64 (untested)

Graphics APIs:

  • DirectX 11
  • DirectX 12
  • Vulkan (untested)

API

In order to access DLSS API in C++/C# scripting import it in your code module (modify Game.Build.cs file):

public override void Setup(BuildOptions options)
{
    base.Setup(options);
    
    // Adds DLSS module to PrivateDependencies if supported on current platform (eg. Windows/Linux x64)
    DLSS.ConditionalImport(options, options.PrivateDependencies);
}

DLSS is implemented as a GamePlugin and can be accessed as follows to configure effect:

// Get DLSS plugin
var dlss = PluginManager.GetPlugin<DLSS>();

// Check if DLSS is not supported
if (dlss.Support != DLSSSupport.Supported)
    return;

// Adjust quality and sharpness
dlss.Quality = DLSSQuality.UltraQuality;
dlss.Sharpness = 0.1f;

// Use automatic settings based on output resolution and quality
// Sets main render task RenderingPercentage and DLSS Sharpness
dlss.ApplyRecommendedSettings(DLSSQuality.UltraPerformance);

// Enable/disable effect
dlss.PostFx.Enabled = true;

License

See official NVIDIA DLSS License.

Trademarks

NVIDIA and the NVIDIA logo are trademarks and/or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.

dlss's People

Contributors

mafiesto4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

cybersys swiggies

dlss's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.