Skip to content

RenderPipeline is an open-source implementation of the book 'Real-Time Graphics Rendering Engine' (《实时图形绘制引擎技术》) framework.

License

Notifications You must be signed in to change notification settings

shanysheng/RenderPipeline

Repository files navigation

RenderPipeline

RenderPipeline is an open-source implementation of the book 'Real-Time Graphics Rendering Engine' (《实时图形绘制引擎技术》) framework.

Table of contents

Overview

  • graphic: vulkan
  • framework: render pipeline

Samples

obj/gltf models

obj model gltf model
Fig 1: obj model Fig 2: gltf model

splat 3dgs models

3dgs points 3dgs quad
Fig 1: 3D Gaussian Splatting points Fig 2: Quad Splat State
3dgs unsorted blending 3dgs sorted blending
Fig 3: Splat Unsorted Blending Fig 4: Splat Sorted Blending

Implementations

vulkan

  • 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

framework

  • RenderPipeline
  • PreRender
    • NodeClassify
  • RenderModule
  • RenderQueue
  • RenderTarget
  • RHIResource, RHIResourceManager
  • Scene, SGNode, MeshBuilder, Mesh, Material
    • MeshBuilder
    • SceneBuilder

model files

  • obj
  • gltf
  • 3dgs
    • Load .splat file
    • projection (compute shader)
    • drawing quad (geometry shader)
    • color blending
    • sort splat
    • optimize: computer shader parser

samples

  • model
  • 3dgs
  • ray tracer

Architecture

RenderEngine


RenderUnit


PreRender


RenderPipeline


Resource

  • 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

License

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:

About

RenderPipeline is an open-source implementation of the book 'Real-Time Graphics Rendering Engine' (《实时图形绘制引擎技术》) framework.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published