计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文

计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文

版权所有使用者请联系我 刘创QQ:903188593


7 三角形光栅化原理解析

谈到三角形的光栅化原理,不得不说三角形的重心填充算法,实际上在射线与三角形求交的那部分也讲解到了三角形重心知识。在这里将详细讲解在计算机图形学中是如何光栅化三角形的。

对于场景中的模型网格,我们可以将它们统一归为以三角形基元组合而成。因为把三角形作为几何图元处理的好处有如下几点:

(1) 三角形是表面的分段线性的有效逼近,如同用多条相连的线段分段去逼近一个函数或者曲线

(2) 三角形是最简单的多边形。小于3个顶点就不能构成一个表面。

(3) 三角形是平坦的。含有4个或以上顶点的多边形不一定是平坦的,因为其前三个顶点能定义一个平面,第四个顶点或许会位于该平面之上或之下。

(4) 三角形经过某些变换之后属性仍然是三角形,这对于放射变换以及透视变换也成立。最坏的情况下,从三角形的边去看,三角形有可能会退化为线段。在其他角度观察,仍能维持是三角形。

(5) 几乎所有的商用图形加速硬件都是为三角形光栅化而设计的。从比较传统的PC计算机三维图形加速器开始,其中的渲染硬件只专注于三角形的光栅化而设计。此决策还可追溯到最早期使用的软件光栅化的三维游戏,所以,基于三角形的技术已经牢牢确立在游戏业界,在未来几年应该不会有所大的改变。9

在进行光栅化三角形的时候,我们会先遍历由三角形确定的包围盒(对应的坐标xMinxMaxyMinyMax)内的每个像素点,通过利用直线的隐式方程计算出该点的重心坐标βγ)来判断该点是否位于三角形内部。

(1) 当且仅当αβγ同时大于零表明该点位于三角形内部

(2) αβγ其中一个为零时表明该点位于三角形的某个边上(边界处理)

(3) αβγ其中两个为零时表明该点位于三角形的某个顶点上(边界处理)

除了123)否则该点位于三角形外部,舍弃该点的其他操作。其中α+β+γ= 1,在我们计算重心坐标时,可以只计算出前两个坐标αβ,第三个坐标用γ = 1 - α - β得出,这样减少了一部分计算量进而提高了一定的性能。

当我们用重心插值时,我们可以对三角形三个顶点的位置插值,我们同样也可以对三个顶点的法线进行插值,这样得到的法线再加上Phong模型光照将会得到更加逼真光滑的模型渲染效果,此外,我们还可以对纹理插值,△ABC光栅化如图7.1。对于给定的三个顶点的纹理坐标信息UV,我们可以就像插值顶点一样插值纹理坐标。不过在纹理进行插值时,我们需要纠正由透视导致的不正确纹理插值10。具体原因以及解决方案并不在本课题研究范围之内,故在此不再详细描述。

 

 

 

 

 

 

   

 

     7.1 △ABC光栅化


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值