Code Monkey home page Code Monkey logo

visbuffertessellation's Introduction

Vulkan | Visibility Buffer with Tessellation

The visibility buffer rendering technique is a variant on deferred shading which minimises memory traffic by storing only necessary primitive information to the g-buffer.

Whereas a typical deferred g-buffer may be 24-32 bytes, the visibility buffer consists only of primitive ID and draw call ID packed into a 4-byte per-sample render target in the forward pass. The deferred pass may then access geometry buffers to manually interpolate surface attributes and perform shading as normal.

This project research implements a typical visibility buffer pipeline alongside a second which implements hardware tessellation. In doing so, more information must be stored to the visibility buffer, and hence more bandwidth usage, but the net performance gain by generating detail by tessellation may prove beneficial.

A bespoke Vulkan framework has been built from the ground up, and the two renderers built up in parallel with as much shared resources as possible. Following the thorough testing of both pipelines, I wrote a full research paper on the project. This can be supplied on request, if you're interested!

Further resources surrounding the visibility buffer and it's implementation can be found via the following resources:

Burns and Hunt (2013): http://jcgt.org/published/0002/02/04/

Schied and Daschbacher (2015): http://cg.ivd.kit.edu/publications/2015/dais/DAIS.pdf

Engel (2016, 2018): https://diaryofagraphicsprogrammer.blogspot.com/2018/03/triangle-visibility-buffer.html

visbuffertessellation's People

Contributors

cammymcp 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.