Giter VIP home page Giter VIP logo

miniengineao's Introduction

MiniEngineAO

screenshot screenshot

screenshot screenshot

MiniEngineAO is a SSAO image effect for Unity that was originally developed by Team Minigraph at Microsoft for their MiniEngine library.

MiniEngineAO has several advantages compared to other SSAO implementations -- smooth results, good temporal characteristics, optimized for GPU compute. The most significant advantage may be speed. It's heavily optimized with the compute shader features, especially with the local memory (TGSM/LDS) use, so that it manages to avoid major bottlenecks that can be found in traditional SSAO implementations.

The original design of MiniEngineAO can be explained as a combination of two known SSAO methods: Volumetric Obscurance and Multi-Scale Ambient Occlusion. It's well-tailored to have the advantages of both these methods.

System Requirements

Although Metal (macOS/iOS) is thought to fulfill the requirements, it doesn't work due to a texture array issue (case 926975). This issue has been already fixed in the development branch, so it'll be resolved in a near future release.

Installation

Download one of the unitypackage files from the Releases page and import it to a project.

License

MiniEngineAO inherits the original license of the MiniEngine library. See LICENSE for further details.

miniengineao's People

Contributors

keijiro 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  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  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

miniengineao's Issues

Dithering?

This AO effect seemingly does not use any dithering at all.

If you want to use a sharpening script on the camera, that means that the AO shadows get pronounced banding, which is really ugly:

capture

Could you please add dithering to this asset?

Render Viewport Scale Unsupported

Firstly: MiniEngineAO is awesome. Amazing quality considering how performantly it runs.

Changing VRSettings.renderViewportScale, or specifically making it less than 1, causes MiniEngineAO to render to a smaller portion of the bottom left of the screen.

Here is a quick capture of what happens when adaptively scaling render viewport scale: https://youtu.be/9w9ViiswIRA

I suspect a shader will need 1 / VRSettings.renderViewportScale passing in to scale all incoming UVs in the vertex program.

UnassignedReferenceException: _downsample1Compute not assigned

Hello,

When I use the last sources I have this error message

image

I tried on an empty scene, I don't have any messages, but I can't see the AO.

I tested this issue on two configurations

  • GeForce GTX 980 Windows 10 Creator Update
  • RX 480 8Gb - Windows 10 Fast Ring

Any idea? Thank you for your help!

TODO: Reduce banding in darkened areas

Increasing Strength more than 1.0 introduces banding in darkened areas. This is noticeable in the Statue test scene.

This banding can be removed by using half-float textures for storing AO, but this is not a preferable solution because it requires more memory and bandwidth.

There are two possible solutions:

  • Use gamma encoding/decoding to increase the precision of darkened areas.
  • Apply dithering to reduce banding.

The former approach might be preferable because of simplicity.

SSAO fades out when close to screen edge

Hi there...
awesome SSAO for orthographic cams you got there!
First of all, thanks for sharing!

We run in a little problem with it, maybe we do something wrong or you have an idea how to fix it easy...

When our cam moves away from our walls, at some point near the screen edge the ssao fades out. so all corners light up, wich is very visable and make this effect nearly unusabel for us...

https://drive.google.com/open?id=1bTtlemQEY6EHYlsu4E_7mhHamVM2MuLQ

look at the top corner of this video...

We are using Unity 2018.4+
Orthographic cam:
grafik

Any Ideas? Did we miss something?

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.