Code Monkey home page Code Monkey logo

vulkan's Introduction

Travis CI Coverity Scan MIT licensed Join the chat at https://gitter.im/McNopper/Lobby

Vulkan Vulkan
Vulkan examples using VulKan ToolS (VKTS):

First steps

Building for Android, Linux and Windows

Assets used by the examples

Execute and debug examples

Features of VKTS

Architecture and API design

Gamepad, keyboard, touch and mouse input

Exporter for the scene file format

Used headers and pre-build libraries

Used tools, applications and libraries

Used licenses

Vulkan examples based on VKTS:

VKTS_Example01 - Initializing Vulkan and clearing the background.
VKTS_Example01

This example brings up a simple window and clears the content every frame. No shaders, buffers or graphics pipelines are used.

VKTS_Example02 - Rendering of a red triangle.
VKTS_Example02

This example renders a red triangle by passing NDC coordiantes. This example utilizes shaders, vertex buffers and a graphics pipeline.

VKTS_Example03 - Rendering of a full screen texture.
VKTS_Example03

This example renders a a full screen texture. Main topic of this example is on how to use staging buffers in Vulkan.

VKTS_Example04 - Loading and rendering of an animated, mip mapped textured cube.
VKTS_Example04

This example loads and renders an animated, textured cube modeled in Blender. The crate texture does have several mip levels.

VKTS_Example05 - Phong rendering of a tree and an animated plane with several animations.
VKTS_Example05

This example loads another scene modeled in Blender. This scene has a node tree, having several animations.

VKTS_Example06 - Skeletal animation plus camera movement depending on gamepad input.
VKTS_Example06

This example loads and renders a skeletal animated character modeled in Blender. Also, the scene can be cotrolled with a gamepad.

VKTS_Example07 - Multi-threaded terrain rendering using normal and displacement mapping.
VKTS_Example07

The terrain scene has 64 patches, which are processed in parallel by several threads. Only if a patch is visible by the camera, it is added to the secondary command buffers. After all patches are processed, the primary command buffer is drawing the terrain by executing the above secondary command buffers.

VKTS_Example08 - Calculating and drawing of the Mandelbrot set using the core Vulkan API.
VKTS_Example08

This example uses only the core Vulkan API, so no extensions are activated. A compute shader is calculating the Mandelbrot set and is storing the values into an offscreen image. As soon as the compute shader is done, the final image is saved as a TGA image to the file system.

VKTS_Example09 - Shadow mapping, blending and MSAA.
VKTS_Example09

This example renders into an offscreen framebuffer, writing only the depth value as the shadow map. In the following command, this depth texture is used to generate shadows. The spaceship does have transparent elements, so first the opaque and then the transparent elements are drawed. This content is also rendered into an offscreen multisample framebuffer, which is finally resolved to the visible window.

VKTS_Example10 - Deferred real-time physically based rendering (PBR).
VKTS_Example10 VKTS_Example10

This example uses the exported Cycles materials from Blender to render the diffuse and specular shader into an offscreen G-Buffer. The environment is pre-filtered and stored in several textures and cube maps. This allows to do image based lighting and to resolve the PBR materials in real-time. This example uses no anti-aliasing, which could be either done in a post process or using a multi-sample G-Buffer.

VKTS_Example11 - Voxel-global illumination (WIP).
VKTS_Example11

This example is not finished yet.

VKTS_Example12 - Forward real-time PBR using HDR images and MSAA.
VKTS_Example12

This example is based on Example 10, but a forward PBR renderer is used. Furthermore, the environment is a HDR image and used for the image based lighting. Finally, this example uses MSAA for anti-aliasing.

VKTS_Example13 - glTF 2.0 with PBR materials (WIP).
VKTS_Example13

This example is not finished yet.

VKTS test programs:

VKTS_Test_General - VKTS internal test program, to verify general functions.

VKTS_Test_Input - VKTS internal test program, to verify input functions.

VKTS presentations:

Khronos Munich Chapter Meeting 04/08/2016 - "VulKan ToolS - Filling the gap between driver and application."

vulkan's People

Contributors

mcnopper avatar saschawillems avatar

Watchers

James Cloos avatar  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.