Git Product home page Git Product logo

unrealengineskyatmosphere's Introduction

Unreal Engine Sky Atmosphere Rendering Technique

This is the project accompanying the paper A Scalable and Production Ready Sky and Atmosphere Rendering Technique presented at EGSR 2020. It can be used to compare the new technique proposed in that paper to Bruneton et al. as well as to a real-time path tracer. The path tracer is using a simple and less efficient noise because I was not sure I could share noise code I had before. The technique is used to render sky and atmosphere in Unreal Engine.

Build the solution

  1. Update git submodules (run git submodule update --init)
  2. Open the solution
  3. Make sure you select a windows SDK and platform toolset you have locally for both projects
  4. In Visual Studio, change the Application project Working Directory from $(ProjectDir) to $(SolutionDir)
  5. Select Application as the startup project, hit F5

Runtime keys:

  • SHIFT + mouse to look around
  • CTRL + mouse to move the sun around
  • C to capture a screenshot
  • T toggle between ray-marching and path tracing (disables the multiple scattering approximation when switch to path tracing)
  • F5/F9 to save/load a state

Submodules

About the code:

  • The code of Eric Bruneton has been copied with authorization from his 2017 implementation.
  • The code in this repository is provided in hope that later work using it to advance the state of the art will also be shared for every one to use.
  • The code has been built from using the Dx11Base demo/test platform.
  • RenderSkyRayMarching.hlsl contains the ray marcher building the different LUTs for the new technique.
  • RenderSkyPathTracing.hlsl contains the basic volumetric path tracer. It is matching PBRT and Mitsuba output for other participating media tests. It could be improved by really following the Radiance transfert Equation path integral as a loop for each event: currently we only handle participating media and intersection with the planet as a special case.
  • This code has been tested on Windows only with visual studio (no build script generation)

Thanks to Epic Games for allowing the release of this source code.

The code is provided as is and no support will be provided. I am still interested in any feedback, and we can discuss if you contact me via twitter.

Seb

unrealengineskyatmosphere's People

Contributors

sebh avatar tcantenot avatar

Watchers

 avatar

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.