Skip to content

hkzhugc/Scan-Zbuffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scan-Zbuffer

CG homework

图形学课的作业 PS:虽然命名为扫描线Zbuffer,但其实是区间扫描线。。。。。

主要的类有Camera,Renderer,ScanLine

Camera中为利用glm库实现一些简单的模型转换,但其实有一些做的不是很好。。。。

Renderer管理了ScanLine和Camera以及FrameBuffer,提供初始化以及封装了ScanLine和Camera的方法。

ScanLine为作业的主要内容,实现了将Renderer管理的视角变换后的模型转换为扫描线算法所需要的数据结构,从XY空间从上到下完成扫描,主要算法内容在于scan函数,scan_one_line函数,算法还有加速的空间,比如判断AET来判断是否可以不用比较深度直接渲染,比如在每次更新AET的时候,可能可以通过好的数据结构,使得不用每一次都重新排序,管理IPL的数据结构可能也可以优化

总的来说,能在几天时间赶完还是很开心的哈哈哈,虽然视角转换那一块写的不好(而且没有实现从投影后的空间到屏幕空间的转换,而是非常偷懒的将最小值平移到了屏幕00点) 但感觉扫描线那一块写的还行,虽然出写的过程中出bug了,但结构比较清晰所以找的也比较快。

发现一个问题就是自己没有充分利用好VS的DEBUG宏,在debug过程中很多费操作(明明可以用#ifdef debug来对代码预处理的)。反正debug的时候,多利用宏管理自己的代码。

About

CG homework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages