OpenGL编程指南之glPolygonStipple函数深入理解

        最近在读《OpenGL编程指南》-红宝石书,发现3D图形编程真的有趣,游戏API,看书有时候乍一看很费解,但经过反复琢磨,加上在纸上拿尺笔画画,网上参考网友的解释,在看看OpenGL API参考手册,最终困难都会克服的,

下面以该书中第38页的图20-10为例解释一下glPolygonStipple的语法:

下面先上该函数的概念、代码、运行效果图(声明:这3个是原书中截图一下来的)

概念:

代码:

运行截图:

刚开始我也死活不明白一堆的二进制数组,就能画出一个蝗虫效果, 不过理解了这个函数,想画一个超级玛丽的效果也就不远啦!

下面先温习一下基础知识:

1、8421码编码规则(大学数字电路这门课必学),其中ABCD分别代表10、11、12、13

2、在计算机里8对应二进制是1000、4对应0100、5对应0101、3对应0011

3、0x代表十六进制,0x04等价于0x0000 0100

有了上面的基础,加上上面提到的概念里最关键的一句话:数值为1的则填充

我分几个步骤结合截图理解一下,不妥之处请大家多多指教。

步骤一:小黑虫分析图如下


这里分析一下:

1、左图蓝色部分的0x00对应有图里的蓝色部分,0x代表十六进制,00代表0000 0000,没有数字1,所有没画黑点。

2、左图红色部分对应右图的红色部分,也就是最底行的小方块。(注这个二维数组的前4个元素代表最低行的小方块,第5-8个元素表示的是底下第2行,也就是说8位数里,1位数占1个小方块,画不画黑点取决于值是不是1)

3、左图绿色部分对应有图绿色部分,正好8个元素对应2行空格。


下面我拿第9,第10个元素印证一下我的理解,

0x03,等价于0000 0011

0x80,等价于0000 1000

看如下图:


其它元素的值读者可以依据此方法分析,如有说明不清楚的地方,请多多包含!




  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值