Part I 空气曲棍球 Chapter4 Adding Color and Shade)

由于后面的章节篇幅比较大点,所以我们会把每一章单独分成几篇文章来写(后面将采用这种模式,除非篇幅比较小)。

在实际中,每个物体都会有不同的颜色;比如我们的家里面的墙壁,它都是使用同一种颜色进行粉刷的,但如果我们从不同的角度去看,就会发现有些地方比较明亮有些地方比较暗,问题的关键在于墙壁与环境光的角度问题。我们的大脑使用这些细微的差别进行合成视觉曲线进而表达我们所看到的东西,艺术家们很早就使用这种方式来进行作品了;在这一章节里面,我们将向艺术家们学习,并使用不同的颜色的着色器绘制出不那么单调且更真实的桌面。

在前面一章节中,在把桌面绘制到屏幕之前我们已经做了大量的工作,成功绘制了两个小球、一个分隔线。这里面有很多的准备工作,包括加载着色器、编译着色器及把它们连接成OpenGL程序对象。
    使用OpenGL ES 2.0 的一大好处就是,虽然前面做了很多工作,但是后面将会有很多的代码能够得到复用;虽然接下来还会再写更多的代码,但是之前的很多准备工作中的代码都可以复用;实际上有了前面的准备工作,现在添加颜色和着色器将会简单很多。

接下来,是这一章节的计划:
    1)首先我们将学习如何在每一个顶点定义一个颜色,而不是整个几何体都使用同一个颜色。
    2)然后学习如何平滑的混合每一个顶点的颜色从而绘制出一个完整的几何物体。

 准备工作:
1 复制上一章节中的工作。
2 更改名为AirHockey2。
3 其它的都不用动。。。。

接下来是这一章节内容划分:


4.1 平滑着色(Smooth Shading)


4.2 引入Triangle Fans(Introducing Triangle Fans)


4.3 增加一个新的颜色属性(Adding a New Color Attribute)


4.4 使用新的颜色进行渲染(Rendering with the New Color Attribute)


4.5 ReView(小结)

    在我们已经有了部分模板代码的情况下给每一个顶点增加一个颜色也不是什么难事,首先在顶点数组及顶点着色器中中增加了一个颜色属性数据,同时通过使用stride(步长)告诉OpenGL如何读取这些数据。然后使用varying类型变量对三角形平面颜色进行插值。
    一个需要注意的点是当我们传递顶点数据的时候,需要确保对分量数(component counts)及步长(stride)传递正确值。假如传递了不正确的值,则会导致绘制不正确的颜色到屏幕上(造成花屏)并最终导致应用崩溃。


4.6 Exercise(练习)

1 给桌面中心线添加颜色混合。
2 改变组成矩形的三角形使得三角形的边缘消失(Tips:使用更多的三角形)

下一章我们将会学习向量及矩阵,同时修复当屏幕从竖屏切换到横屏时产生的形变问题。

最后附上本章代码(点击下载

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值