VPP is a high-level C++ rendering and GPU computation API based on Vulkan. Vulkan is the new API for 3D graphics rendering and GPU computation developed by Khronos Group. VPP adds high-level, object-oriented C++ interface over Vulkan. The goal is to make Vulkan programming easier and more intuitive. VPP provides the following features: - Intuitive, object-oriented abstractions over Vulkan concepts: devices, queues, render passes, pipelines, shader resources, synchronization objects and others. - Isolation from the C-style interface of Vulkan. - Easy, conceptual design of render passes and pipelines. - Unique ability to write all shader code directly in C++ (as class methods), without any need to use GLSL or other intermediate language. No separate compiler passes required. Any C++ 14 compliant compiler should work. No compiler extensions required. No hardware vendor or OS dependencies. All types of shaders supported. - C++ shaders are automatically integrated into a pipeline and can access shader resources in straghtforward, object-oriented manner. Bindings and locations are automatically generated. Entire Vulkan shader interface is supported. Shaders may easily access: vertex inputs, uniform buffers, all kinds of image resources, attachments, push constants, builtin variables, inter-shader communication variables. - C++ shaders can be subject to advanced C++ programming and design techniques: parametrization, templating, macros, modularization, OO design. - Support for multithreading and automatic host synchronization of objects where Vulkan requires it. - Compile-time detection of some Vulkan usage errors. - Integration with third party libraries (currently GLM). Current project status: pre-beta. All core features implemented. However, currently tested only on Windows/Visual Studio platform (CL and clang compilers). Other compilers and Linux / Android platform support in plans.
This page is a skeleton web page which was automatically set up by OSDN system. The purpose of this page is to encourage the full use of the project web.
You can use the project web area to freely build Web sites to provide project information. For more details on the functions and rules of the project Web and how to use it, please read the documents regarding web site hosting.