Git Product home page Git Product logo

atmosphererenderer's Introduction

Atmosphere Renderer

A C++/DirectX 11 implementation of "A Scalable and Production Ready Sky and Atmosphere Rendering Technique"

Features

  • interactive edition of atmosphere model parameters
  • efficient generation of low-resolution sky-view LUT and aerial perspective LUT
  • volumetric shadow

Build

git clone --recursive https://github.com/AirGuanZ/AtmosphereRenderer.git
cd AtmosphereRenderers
mkdir build
cd build
cmake ..

Control

  • move: W, A, S, D, Space, LShift
  • show/hide cursor: Ctrl.

Performance

Crucial shader performance measured on NVIDIA GTX 1060:

  • Sky-view LUT generation (64 * 64): 0.036 ms
  • Aerial perspective LUT generation without volume shadow (64 * 64 * 32): 0.03 ms
  • Aerial perspective LUT generation with volume shadow (200 * 150 * 32): 0.2 ms

Shaders can actually be further optimized by replacing feature flags in constant buffers with compile-time macros.

Using LUTs with higher resolution or ray marching with more number of steps results in better quality and of course, lower performance.

Screenshots

Tips

  • Planet-scale rendering are not considered. Thus the sky may become strange when camera is out of the atmosphere.
  • Terrain renderer is just used to show the aerial perspective effect (transmittance and in-scattering), so multi-scattering related to terrain is simply ignored.
  • Terrain occlusion is ignored when computing multi-scattering LUT.
  • Sunlight is approximated as a directional light when computing atmosphere scattering. Thus a very big sun disk will always have an unnatural appearance.

atmosphererenderer's People

Contributors

airguanz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

atmosphererenderer's Issues

demo 的代码有参考的文章吗

大佬你好, 请问 demo 中的代码有参考的出处吗?
非常想学习您的代码, 但是有许多 lut 生成的代码看不明白, 其中论文也没提到
感谢你把demo开源, 祝你好运

窗口交互无反应

运行后可以出现画面 但是键盘交互没有反应 相机只能移动视角 按下ctrl后 imgui上的鼠标交互也没有反应 程序右上角的关闭也没反应 请问这是什么问题导致的

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.