Skip to content

Msdjy/rasterizer-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Renderer

github链接 https://github.com/Msdjy/rasterization-c-

主要文件结构

  • core
    • pipeline (管线,大致管线流程和着色器函数的调用)
    • camera (相机)
    • material (材质,只用到了eval函数的pbr计算)
    • math (数学运算库)
  • shader
    • shader(着色器类型的基类,存放了着色器所需要的参数和函数)
    • phone_shader (使用blinn-phone模型渲染)
    • pbr_shader (使用pbr模型渲染)
    • light_shader (用白色立方体显示光源的位置)
    • shadow_shader (渲染深度值到深度缓冲中)
  • main (顶点设置,参数设置,render loop)

代码概括 主要流程

main(){
    设置参数

    render loop{
        渲染深度值

        渲染物体
    }
}


pipeline(){
    for(vertex){
        顶点着色器
        NDC空间变换
        屏幕映射
    }
    for(Triangle){
        背面剔除
        AABB遍历{
            深度测试{
                重心插值
                片段着色器
            }
        }
    }
}

实现PCF软阴影,和PBR材质,未做裁剪,相机靠近物体会出现卡顿或卡死情况

实现功能,(框起来的是参考别人已有的实现代码)

core & platform

  • 向量运算库
  • 模型加载库
  • 图片加载库
  • 窗口控制库
  • 相机
    • mvp
    • 位姿矩阵
    • 移动
      • wasd,鼠标键滑轮
    • 透镜
  • 重心
    • 重心插值正确项
  • 光栅化
    • 抗锯齿
  • 裁剪
    • 面剔除
  • 着色器
    • bingphone
    • pbr
  • 性能优化
  • 纹理
    • 纹理贴图
    • 天空盒
    • mipmap
    • 法线贴图,视差贴图
  • 帧缓冲
    • 阴影
    • ssao
    • 透明混合
    • 延迟渲染

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published