C++ Vulkan Renderer for gRPC-Streaming
This project is a Vulkan-based renderer written in C++ designed for high-performance graphics rendering and streaming over gRPC. It allows for efficient transmission of rendered frames across networks using the gRPC framework, making it ideal for remote rendering applications, visualization, or cloud-based rendering services.
- Real-time Vulkan Rendering: Leverages Vulkan for optimized and low-level graphics rendering.
- gRPC Integration: Uses gRPC for streaming rendered frames to clients over the network.
- Cross-Platform Support: Designed to run on Linux and Windows (other platforms may require additional adjustments).
- High Performance: Vulkan API and gRPC provide a performant solution for remote graphics applications.
Before you begin, ensure you have the following installed:
- C++ Compiler: A modern C++ compiler that supports C++17 or newer.
- Vulkan SDK: Install the Vulkan SDK from LunarG.
- gRPC and Protocol Buffers: Install gRPC and Protocol Buffers libraries.
- CMake: Version 3.12 or higher.
Clone the repository and its submodules (if any):
git clone https://github.com/chevp/vulkan-grpc-renderer.git
cd vulkan-grpc-renderer
-
Install Dependencies (if needed):
-
For Ubuntu:
sudo apt update sudo apt install -y build-essential cmake libvulkan-dev
-
For Windows:
- Install the Vulkan SDK from LunarG.
- Use a compatible C++ compiler, such as Visual Studio 2019 or later.
-
-
Build the Project:
- Configure and build with CMake:
mkdir build cd build cmake .. make -j4 # Adjust `-j4` to the number of CPU cores for faster build
- Configure and build with CMake:
-
Running the Renderer:
- Start the gRPC server to stream the rendered frames:
./vulkan_grpc_renderer
- Start the gRPC server to stream the rendered frames:
The server will render frames using Vulkan and stream them to connected clients via gRPC. To receive the streamed frames, connect your client application to the gRPC server's endpoint.