当前位置:知识问问>百科知识>OpenGL中基于位图的六边形复杂图案填充

OpenGL中基于位图的六边形复杂图案填充

2023-07-01 18:30:37 编辑:join 浏览量:640

OpenGL中基于位图的六边形复杂图案填充

陈婷婷(十堰广播电视大学〈教育大学〉湖北十堰442000)[节选]打开l中六边形的填充通常使用一些简单易懂的数字。当使用复杂的模式时,我们需要分解这些模式以得到一个复杂的模式定义。

为了避免复杂的模式定义,提高效率,本文提出了一种基于位图的方案,使OpenGL开发人员能够专注于应用程序的设计。

[key I Division]OpenGL;fill mode;bitmap作为一种开放式的3D图形程序socket规范,OpenGL在与竞争对手的直接竞争中得到了越来越广泛的应用。在CAD设计、游戏开发、虚拟现实等行业。OpenGL可以帮助程序开发人员充分发挥计算机工作站等硬件设备的高性能,赋予应用程序超表达能力。在联通终端(手机、平板电脑笔记本等)的快速发展中,OpenGL嵌入式版OpenGL取得了令人瞩目的成绩。

苹果的IOS平台和谷歌的Android平台都有OpenGLES的3D标准,而在联通通信芯片领域占据主导地位的英特尔也在其显示芯片gpuadmno上对外支持OpenGLES。虽然智能手机的处理速度越来越快,运行资源也越来越多,但考虑到煤炭消耗的减少,程序员在开发过程中仍需要尽可能减少资源消耗。用OpenGL绘制三维场景时,基本上是处理场景的六边形。才能形成真正的治疗效果。通常,我们需要添加纹理,光和其他六边形的效果,然后我们需要消耗更多的资源。在相对简单的场景中,为了减少资源消耗,六边形也可以填充图案代替纹理贴图。通常。OpenGL中的图案填充是一个规则的简单图形,如45度对角线填充、黑白棋盘填充等。复杂充填涉及到充填模式的构建,难度较大。本文提出了一种六边形填充方案,可以实现任意复杂图案。我们知道函数gibe.gin(GL polygon)可以用来绘制OpenGL中的六边形。如果没有指定每个顶点的颜色,OpenGL将用当前颜色填充五角大楼。

如果为每个顶点指定颜色,OpenGL将为每个顶点使用混合颜色填充五角大楼。如果要填充六边形图案,需要设置六边形的轮廓模式。确定六边形模式的函数是gipolygonmode。它可以设置六边形是否以边界线的形式绘制。或者把它装满。甚至可以只绘制组成六边形的几个顶点。

glpolygonmode函数的原型如下,它决定了五边形光栅化的模式。Voidgipolygonmode(glenumface,glenummode);face是指要处理的六边形的边,GL front是指六边形后面的边,GL back是指六边形旁边的边。

GL前面和后面的意思是同时作用于上面和前面。模式是指绘制六边形的形式,GL点是指绘制六边形时只以标注每个顶点的形式:GL线是指绘制六边形轮廓的线段形式;GL填充是指默认的形式。意思是完全填充六边形。

-H+H-ij:?10,10,4■-H-1L出版车;期待21个解释*opengl 多边形填充,+-44o Gan I,“^+10 H+F 1+++,H-I-I 4。

÷L-1:主噪声=书主110 H-P,蓝针^10 Yi F:^桂仁峰?用一个rho,一个RLP,一个F4,一个“叶形图”绘制填充六边形时,填充图案可以定制。定义填充图案的函数是gipolygonstipple。其原型是:voidGlyPolygonStiple(constglubyte+mask);在OpenGL中,填充模式由一个32x32二维数组表示,每一位代表一个像素点,当它是1时表示填充,当它是0时表示不填充。

模式所需的字节数为32x32/8=128。参数掩码是指该图案数据的指针。作者简介:陈婷婷,湖北十堰广播电视大学(教育大学)理工科计算机班主任、讲师。132I科学与技术。五十、 2012年7月第21期科技版《科技版》与线型定义相同opengl 多边形填充,填充图案的处理也从高位开始。图2。例如,45度对角线的填充模式如图1所示,其定义为glubyte模式m0={0)[80,0][80,0][80,0x40,OX40,OX40,O x 20,ox20,O](20,0)【20,0】【10,0】【10,0】【10,O x lo,O x 08,O x 08,O x 08,O x 08,O x0 8 ,O x 04, o , 【04, O x 04, 0)【04,0 x 0 2, o 】 【0 2, O x 0 2, 0 x 0 2,O x 01, O x O l, 0】 ( 0

1, 0)【O l,O x 8 0 , O x 8 0 , O x 8 0 , O x 8 0 ,O x 40, 0x 40, 0x 40, 0x 40,0 x 20 , 0 x 20 , 0 x 20 , 0 x 20 ,O x lO , O x lO , O x lO , O x l0 ,O x 08, 0x 08, 0)【08, 0】 【08,o )【04, 0】 【04, O x 04, 0x 04,o )【0

2, 0】 【02, O x 02, 0)【02,0x 01, 0)【01, 0)【0l, o 】 【0

1,o )【80, 0】 【80, o )【80, o )【80,0】 ( 4JD , O x 40, 0x 40, O x 40,0x 20, 0】 【20, 0】 【20, o x 20,o )( 10 , o )【lO , o x lO , 0 x 10 ,O x 0 8 , o )【0 8 , 0 )c0 8 , 0 x 0 8 ,O x 0 4 , O x 0 4 , O x 0 4 , O x 0 4 ,o 】 ( 0

2, o 】 ( 02, o )【02, o x 02,0)(0L,O]【01,0X 01,O】【0

1,O X 80,0】【80,0】【80,0】【40,O X 40,OX40,OX40,0][20,0][20,0x20,0】(20,O][10,O)[10,0][10,0)[10,ox08,O)[08,ox08,0)[08,ox04,ox04,大阪04,0)[0

2,0][02,0][02,0][02,O][01,ox01,0)[01,0]用填充图案填充正多边形的效果如图2所示,简单的六边形填充,但对于不规则图案,很难使用上面的填充图案定义方法,如图3所示。

这种模式无法得到手工填充的模式数组。图3从填充图案的定义可以看出复杂的填充图案。实质上,填充图案是位图,但仅是单色位图。因此,我们可以用位图来解决复杂图案的设计。这种模式可以是任意的。这样可以保存填充图案的定义。只要你能在画布上画出来,或者用其他图片把它转换成位图。

Windows系统中BMP位图颜色可分为单色、16色、256色、16位色、24位色和32位色,因为填充图案中没有颜色信息。因此,只能使用单色位图。非单色位图必须先转换为单色位图,然后才能用于六边形填充。BMP单色位图的存储形式不同于一般的理解。

0表示有图案,1表示没有图案,0表示白色,1表示红色,这与六边形填充图案的定义相反。因此,在读取位图填充模式时需要执行转换。例如,我们将以下单色32x32位图作为填充图案应用于六边形线。Glubytepattem;fly m号Call···················Call六兖州世界r万方数据2012年7月第21期

标签:OpenGL

版权声明:文章由 知识问问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.zhshwenwen.com/article/182568.html
热门文章