更全的杂志信息网

openGL中基于位图填充的图案掩模分析与设计

更新时间:2016-07-05

1 openGL的应用前景分析

openGL作为一种开放的3D图形程序接口规范,在智能手机移动终端领域有着卓越的成就。苹果手机的IOS平台和Aandroid平台的3D标准都是openGL ES,而移动通讯领域的霸主高通在其移动显示芯片GPUAdreno也全部内置支持openGL ES[1]

尽管现在的智能手机运行速度越来越快,可运行的资源也越来越多,处理能力超强,但考虑到减少能耗,程序员们仍然需要在开发过程中尽量优化程序以减少或降低资源开销[1]

2 openGL中的多边形填充模式分析

利用openGL绘制场景时,基本上就是对组成场景的多边形进行处理。在计算机图形学中,多边形的填充是最基本的知识点,主要包括镂空、单色填充、插值填充、纹理填充及图案填充。镂空或者单色填充都比较简单,且效果单一。在绘制场景时,为了产生真实效果,通常需要给多边形区域加上纹理光照等效果,就会消耗很多的软硬件资源,我们在设计场景时就尽量要降低其能耗,常用方法就是在简单场景设计时用图案填充代替纹理贴图,这就需要我们提前定义好所需图案。图案掩模的定义是多边形填充的重要知识点,详细分析了掩模的设计、定义及应用。

3 案例应用分析

3.1 多边形单色填充

在openGL中,我们考虑的多边形填充都是凸多边形,且默认时都是使用glColor3f()函数设计的颜色来填充多边形。如果用以上函数只单一地设置了一种颜色,则填充的多边形为单色实心区域,如用红色填充一个三角形:

其填充效果如图1所示。

加强安全生产制度化建设。随着公司规模的扩大,建设任务日益加重,运营项目不断增多,各种事故发生的概率也随之增加,公司总体面临的安全形势十分严峻。2013年,中国水务公司以“推进公司安全生产制度化建设,全面提升管控水平”为主题,狠抓各项安全生产工作。根据水利部综合事业局的统一部署,先后开展了公司所属水库专项蓄水安全检查、汛前安全生产检查、全国水利大检查、汛前工程建设和项目运营安全检查及安全生产大排查等一系列工作,在发现和彻底整改安全隐患的同时,不断强化所属公司的安全生产意识,实现了全年安全生产无事故的目标。

3.2 多边形插值填充

“以流域为基础实施水资源综合管理,已被越来越多的国家和地区认可。”国家发展改革委副主任杜鹰充分肯定了我国流域综合管理的成绩,“近年来,中国在流域综合管理体制改革方面取得了积极进展,积累了一些好的做法和经验。在‘十一五’‘十二五’两个水利发展五年规划中,都明确把流域综合管理体制改革作为重点工作。2007年以来开展的流域综合规划修编工作也融入了许多流域综合管理的理念。”

正因为陈仲子的独特性和唯一性,在很多专家和老师的眼里,王仁杰老师编剧的这部《陈仲子》是优秀且珍贵的剧作,但舞台表演则“没戏”。《陈仲子》曾在1990年公演,但第一场也是最后一场,可见其搬演难度。

图1 多边形单色填充效果

其填充效果如图2所示:

若在填充多边形时采用多颜色来绘制,则系统会根据各顶点颜色间的插值创建线性填充,如采用红绿蓝三颜色的插值来创建一个线性填充三角形:

图2 多边形插值填充效果

3.3 多边形图案填充及掩模设计

3.3.1 掩模的设计

为了用图案填充多边形,openGL中规定了必须定义一个32*32位的图案掩模,掩模中的每一位表示一个像素,取值为1或0。当为1时表示该点显示,为0时表示当前点不显示图案,如下图3、图4显示了一个32*32位的箭头图案掩模及其十六进制表示值。

填充效果如图5所示:

图3 32*32位的图案掩模

图4 十六进制表示值

以上掩模是定义了一个箭头,且该箭头完整的占满了1024位,其值在表示时用十六进制来表示,每4位转位1位十六进制,存储时以字节为一单位存储,以上的掩模如果存储时是从底部开始表示如下:

图5 32*32位掩模填充效果

如果多边形中利用该掩模来填充,则箭头与箭头间会没有空隙,如若想在多边形填充时留有空隙,则在设计掩模时刻意留点空隙,如图6所示。

3.3.2 掩模的改进

3.3.3 图案掩模大小的处理

图6 多边形掩模改进填充效果

小磨河水利工程在实际工程中,各防治区水保措施完成良好,各项水土保持措施基本与主体工程同步实施,防治水土流失效果显著。一方面,建设单位在工作中建立并完善了水土保持管理和运行机制,并设立水保科,由专职人员负责水土保持设施的运行与日常维护;另一方面,水保科结合实际水保工程,制定了相关岗位责任、技术规程,真正做到了管理责任明确,规章制度落实到位,确保水土保持工作的顺利实施。

2)比较两种函数的运算结果,发现conv()输出长度为 6 的序列[3,5,11,17,8,16],filter()输出长度为 4 的序列[3,5,11,17],但两个序列的前 4 个元素相同。

在设计掩模时,如果设计的大小不足32*32位时,即不足128个字节时,系统会将不足的部分用内存中的随机值填充,这样就不能达到理想要求了,如下图7中还是定义该箭头,但在定义掩模时只用了10*16位[2],则这该掩模来填充多边形时没有定义足的部分由系统内存随机给出,在显示的结果图中就会出现很多的随机点。

图7 掩模定义

其执行结果如图8所示。

4 图案掩模的弊端

通过以上案例的详细分析,可以看出,图案掩模是可以随意定义的,在定义时只需要将32*32位的位图画出即可。但在实际应用中这样的方法显得笨拙且效率低下,每次设计图案掩模时都要先画出二进制图形,再将其转换为十六进制,工作量非常大,且全都是手工操作难以提高效率。为了提高掩模的设计实用性,可以借助一些位图画图软件,图windows自带的画图软件,利用软件绘制出基本的图案后,再存储该图案为bmp文件类型即可。在openGL中调用以上图案掩模时需要用到文件读取的操作。

图8 10*16掩模填充效果

5 小结

图案填充在计算机图形学里是最基础的图形处理操作,很多学生在学习本知识点时稀里糊涂的,根本没有弄清楚如何定义掩模,只是从网上找一些已定义好的位图字节信息来直接调试,结果是有了,但过程并不清楚,如果让他们自己独创设计一个掩模就有难度。本文通过多个案例详细介绍了掩模的原理、设计方法、设计技巧、注意事项等,同时也提出了改进掩模设计难度的方法。

参考文献:

[1]陈婷婷.openGL中基于位图的多边形复杂图案填充[J]. 科技视界,2012:132~134.

[2]蔡士杰,杨若瑜译.计算机图形学[M].北京:电子工业出版社,2016:59.

[3]和平鸽工作室.openGL高级编程与可视化系统开发之系统开发篇.北京:中国水利水电出版社,2006.

[4]和平鸽工作室.openGL高级编程与可视化系统开发之高级编程篇.北京:中国水利水电出版社,2006.

杨薇,李燕
《保山学院学报》 2018年第2期
《保山学院学报》2018年第2期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息