RenderPipeline is an open-source implementation of the book 'Real-Time Graphics Rendering Engine' (《实时图形绘制引擎技术》) framework.
- graphic: vulkan
- framework: render pipeline
![]() |
![]() |
---|---|
Fig 1: obj model | Fig 2: gltf model |
![]() |
![]() |
---|---|
Fig 1: 3D Gaussian Splatting points | Fig 2: Quad Splat State |
![]() |
![]() |
---|---|
Fig 3: Splat Unsorted Blending | Fig 4: Splat Sorted Blending |
- Device: VkInstance, VkPhysicalDevice, VkDevice, VkQueue
- Swapchain: VkSwapchainKHR, VkImage, VkImageView, VkFramebuffer, VkRenderPass
- Texture: VkImage, VkImageView, VkDeviceMemory, VkSampler
- Buffer: VkBuffer, VkDeviceMemory
- Graphic Pipeline: VkPipeline, VkPipelineLayout, VkDescriptorSetLayout, VkDescriptorSet, VkShaderModule
- Computer Pipeline: VkPipeline, VkPipelineLayout, VkDescriptorSetLayout
- Shader: Vertex shader, Geometry shader, Fragment shader, Compute shader
- RenderPipeline
- PreRender
- NodeClassify
- RenderModule
- RenderQueue
- RenderTarget
- RHIResource, RHIResourceManager
- Scene, SGNode, MeshBuilder, Mesh, Material
- MeshBuilder
- SceneBuilder
- obj
- gltf
- 3dgs
- Load .splat file
- projection (compute shader)
- drawing quad (geometry shader)
- color blending
- sort splat
- optimize: computer shader parser
- model
- 3dgs
- ray tracer
- vulkan: C++ examples for the Vulkan graphics API.
- vulkan tutorial: Tutorial for the Vulkan graphics and compute API.
- vulkan 3dgs: Vulkan-based Gaussian Splatting viewer.
- tinygltf: Header only C++11 tiny glTF 2.0 library
- tinyobjloader: Tiny but powerful single file wavefront obj loader
The main project is licensed under MIT.
This project uses several third-party libraries. Here is a list of these libraries along with their respective licenses:
- GLM: MIT License.
- ImGUI: MIT License.
- VkRadixSort: MIT License.
- glfw: zlib/libpng license.
- tinygltf: MIT License.
- tinyobjloader: MIT License.