Part I 空气曲棍球 Chapter4 (4.1 Smooth Shading)

本文探讨了OpenGL中平滑着色(Smooth Shading)的原理与应用,介绍了一种在三角形表面进行颜色混合的方法,使场景呈现更加细腻丰富的色彩。通过在顶点间进行颜色渐变,实现复杂场景的高效渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.1 平滑着色(Smooth Shading)

在第二章中,我们学习了如何使用uniform类型变量定义要绘制的三角形的颜色,如下图所示:


我们已经知道OpenGL只支持绘制点、线、三角形的命令,如果我们想要绘制其它形状那只能从这三种形状组合而成。由于我们只能绘制这三种图元,我们如何使用多种不同的颜色和着色器绘制出一个复杂的场景呢?

有一种方法是使用大量的三角形进行绘制,而每一个三角形都使用不同的颜色进行绘制,假如我们使用的三角形足够多的话,那我们看到的三角形就是有丰富色彩的三角形。虽然这种方法可行,但是内消耗很大,更没有什么性能可言。
假如不用上面的方法,如果可以在同一个三角形串进行颜色混合呢?如果三角形的三个顶点使用不同的颜色进行绘制,并在三角形的表面将这些颜色混合起来,这样的话我们就可以得到一个平滑颜色绘制的三角形,如下图:


4.1.1 在不同的顶点之前进行平滑着色(Smooth Shading Is Done Between Vertices)


OpenGL提供了一种在一条线的两个顶点之间或者三角形的表面进行平滑着色的混合颜色方法,我们将使用这种方法对桌面进行着色,同时使得桌面的中央明亮些,靠近边缘处暗些。但是在那之前,我们先更新下桌面的顶点结构,现在我们使用两个三角形进行绘制,如下图所示:


那我们要怎样才能使得桌面的中央明亮呢?在中央并没有顶点,因此也没有颜色可以进行混合。所以现在我们将会在桌面的中央增加一个顶点,这样的话就可以以桌面中央和边缘处的颜色进行混合,因此桌面的顶点坐标将会更新为如下的结构:

现在我们要做的就是按照上面的图示更新桌面顶点坐标,在下节中我们将引入一种新的绘制三角形的命令,即Triangle Fans。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值