VS2012下基于Glut OpenGL GL_POLYGON_STIPPLE示例程序:

本文介绍了在VS2012下使用OpenGL的GL_POLYGON_STIPPLE函数实现多边形镂空效果。通过glEnable启用镂空模式,利用glPolygonStipple设置镂空样式,创建32x32像素的遮罩来控制镂空区域。示例程序展示了即使在旋转坐标系下,图案仍保持平面填充,不同于纹理效果。

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

直线可以被画成虚线,而多边形则可以进行镂空。

首先,使用glEnable(GL_POLYGON_STIPPLE);来启动镂空模式(使用glDisable(GL_POLYGON_STIPPLE)可以关闭之)。

然后,使用glPolygonStipple来设置镂空的样式。

void glPolygonStipple(const GLubyte *mask);

其中的参数mask指向一个长度为128字节的空间,它表示了一个32*32的矩形应该如何镂空。其中:第一个字节表示了最左下方的从左到右(也可以是从右到左,这个可以修改)8个像素是否镂空(1表示不镂空,显示该像素;0表示镂空,显示其后面的颜色),最后一个字节表示了最右上方的8个像素是否镂空。

Demo的显示效果如下:可以发现即使是在旋转坐标系时图案还是平面填充的,和纹理不一样。

源代码如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值