Skip to content

plallallla/tiny_renderer

Repository files navigation

Tiny Render

1. What

基于C++实现的软渲染练习,实现了CPU端的光栅化渲染,模拟了包括顶点着色器、光栅化、片元着色器、后处理在内的流程。前面 part_ 开头可执行文件均为ssloy的软渲染教程对应章节的分步实现,最终综合实现版本请直接运行 tiny_renderer 项目。

效果图如下:

tiny_renderer_buffer

项目亮点:

  • 简易渲染管线的完整模拟
  • 完善的顶点着色器与片元着色器模拟
  • 基于重心坐标的精确光栅化
  • 基于切线空间的法线计算
  • Phong与Blinn-Phong着色模型的实现
  • 屏幕空间Shadowmap算法的完整实践
  • SSAO算法的简易实现与集成

2. How

请参考博客中的光栅化渲染管线笔记同步观看,本项目实现的管线流程图如下:

flowchart TD
A[Raw Data]
A-->B
B[Vretex Shader]
B-->|Transformed vertices|C
C[Primitive assembly]
C-->|Primitives|D
D[Rasterizer]
D-->|Fragments|E
E[Fragment Shader]
E-->|Processed fragments|F
F[Output merging]
F-->|Pixels|G
G[Show in screen]
Loading

3. Reference

ssloy的软渲染教程

华中科技大学万琳教授的计算机图形学课程

GAMES101

About

tiny render by c++, learn from ssloy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors