Skip to content

ycymio/z-buffer-scan-line

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

z-buffer

图形学的作业的一个简单的实现。完成于3月31日,原谅我最后一天才提交:)。

编程环境

VS 2010 + OpenGL, 涉及到OpenGL的一些库。

文件要求

面片由三角面片组成,绘制时没有使用纹理,每个面片的颜色是随机生成的,obj文件的三角面片格式需要是 "f x y z"的形式,即没有法线和纹理坐标,可支持大量面片(文件夹下的obj_teapot_sample.obj和obj_camper_sample.obj等都可以执行),。 文件存储在源代码文件夹下,直接输入文件名,或者为默认文件名。为了显示完全,这里需要提供一个xmax与ymax的最大比,但这个值设置不好还是会显示不出来。由于取了整,坐标范围都在(0,1)之间的这种显示不出,尽量放大倍数。

数据结构:

  • Faces3ui:存储对应点的序号
  • Triangle3vec:存储三角形的三个点
  • DepthColor: 存储一个点的最大深度和对应颜色
  • ClassifiedTriangles:分类多边形表
  • ClassifiedLines:分类边表
  • ActivatedTriangles:活化多边形表
  • ActivatedLines:活化边表

P.S.

为了调整图像被看见,可能每根扫描线之间有间隙,没有进行处理,面片坐标数值较大时间隙不明显。 默认的背景颜色通过OpenGL绘制,因而只选择绘制有图案的部分。

小唠叨

拖了很久没写的作业,又一次任性么,可是红皮书好厚。。。最后还是没看。。。=。= 编程有些不好的习惯,一些像float最小值的宏定义也不熟悉,导致改了近一天的bug才满意了点。 还好一些实现出来效果还不错,譬如车和茶壶。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published