Skip to content

CG_demo of Z-Buffer, Scanline Z-Buffer and Hierarchical Z-Buffer

Notifications You must be signed in to change notification settings

Yuqifan1117/CG_demo

Repository files navigation

CG_demo

实现了计算机图形学基本光栅化算法,主要是z-buffer系列算法,包括普通的z-buffer、扫描线z-buffer、层次z-buffer以及八叉树z-buffer算法

  • 普通Z-Buffer算法:直接光栅化所有多边形,并根据光栅化的结果更新Z缓存器和帧缓存器。
  • 扫描线Z-Buffer算法:从上到下扫描每一行像素,在这一过程中维护与扫描线相交的多边形和边,即更新活化多边形表和活化边表,并根据相交线段更新Z缓存器和帧缓存器。
  • 普通层次Z-Buffer算法:使用四叉树维护Z缓存器,将所有多边形依次在四叉树中进行查询。查询时找到包含这一多边形的深度最大的四叉树节点,如果通过了深度测试,就将多边形光栅化,并将光栅化得到的像素在这一子树中继续进行查询。
  • 带场景八叉树的层次Z-Buffer算法:在普通层次Z-Buffer算法的基础上,把所有的多边形使用场景八叉树维护,然后将场景八叉树在四叉树中进行查询。一开始两棵树都位于根节点中,每次先将八叉树中属于当前节点的多边形进行光栅化,然后在四叉树中进行查询。之后再对八叉树的子节点进行递归,递归的同时要在四叉树中移动到相对应的节点。

Results of Rendering

result.png

About

CG_demo of Z-Buffer, Scanline Z-Buffer and Hierarchical Z-Buffer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages