a GPU-based renderer
This is a rendering engine in development, primarily for educational purposes. I have been trying to keep the code understandable and maintainable, such that it's easy to implement ideas and to customize complicated pipeline. Source codes of the following demos can be found under the 'Apps' folder.
Prerequisite
This is a visual studio project runs on Windows, and relying on NVIDIA graphics cards for atomic float operations. Dependencies are included in the project.
Major implementations.
実装した項目
- Deferred rendering
- Physically based rendering
- Image-based lighting
- Skeletal animation
- Post-processings(Bloom,Outline,SSAO,SSR)
- NPR pipeline
- GPU particles
- GPU cloth
Snapshots
PBR
Physically based Material with gbuffer visualization.
The buffers in the following are relatively:
- Metallic , Roughness, ViewDepth, ShadowMap
- Position , WorldNormal, gWorldTangent, Albedo
NPR
A basic non-photorealistic rendering pipeline.
- cel shading
- face shadow by lightmap
- Postprocessings(Bloom,Outline)
- flow chart showing the pipeline data flow. (visualization using Blender shader graph)
GPU particles
- lifetime management
- camera-facing sprites
GPU cloth
- by PBD(position-based dynamics)
Roadmap
これからやりたいこと
- Build methods & Documentation (after the framework is stablized)
- Temporal techniques (TAA, temporal denoising)
- MMD animations with physics
- Particle sorting/Collision handling
- SoftBody simulation
- Fluid simulation
- Volume rendering
- Subsurface scattering