CN102306391A - 基于OpenGL的倒影显示处理装置及方法 - Google Patents
基于OpenGL的倒影显示处理装置及方法 Download PDFInfo
- Publication number
- CN102306391A CN102306391A CN201110279959A CN201110279959A CN102306391A CN 102306391 A CN102306391 A CN 102306391A CN 201110279959 A CN201110279959 A CN 201110279959A CN 201110279959 A CN201110279959 A CN 201110279959A CN 102306391 A CN102306391 A CN 102306391A
- Authority
- CN
- China
- Prior art keywords
- object model
- inverted image
- vertex
- model parameter
- color
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012545 processing Methods 0.000 title claims abstract description 24
- 238000013507 mapping Methods 0.000 claims abstract description 68
- 230000008569 process Effects 0.000 claims abstract description 39
- 238000004040 coloring Methods 0.000 claims abstract description 15
- 230000009466 transformation Effects 0.000 claims abstract description 6
- 238000005520 cutting process Methods 0.000 claims abstract description 5
- 239000012634 fragment Substances 0.000 claims description 39
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 238000009966 trimming Methods 0.000 claims description 27
- 238000005070 sampling Methods 0.000 claims description 9
- 238000003672 processing method Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 21
- 238000003860 storage Methods 0.000 abstract description 5
- 230000008859 change Effects 0.000 description 9
- 238000010612 desalination reaction Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 239000003595 mist Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004456 color vision Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种基于OpenGL的倒影显示处理装置及方法,其方法包括:加载及计算物体模型参数,获取物体模型的纹理贴图像素数据和/或默认顶点颜色值;对物体模型参数进行顶点位置空间转换以及裁剪操作;对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;根据纹理贴图像素数据,对光栅化处理后的物体模型参数进行片段着色处理,生成物体模型的倒影图像,输出至显示设备进行显示。本发明在OpenGL绘图过程中,通过参数控制实现物体模型的倒影效果,模拟现实更逼真,节省存储空间,减少CPU的运算量和内存占用量;为GPU带来更高效的灵活性和适应性,实现更好的画面效果和流畅度;且减轻了UI设计师的负担。
Description
技术领域
本发明涉及图像显示技术领域,尤其涉及一种基于OpenGL的倒影显示处理装置及方法。
背景技术
在3D UI(User Interface,用户界面)设计或现实场景模拟时,有时需要模拟倒影效果,使画质视觉效果更逼真,更符合现实世界,如水面、玻璃等平整光泽面的倒影效果。OpenGL(Open Graphics Library,开放的图形程序接口)是一个功能强大、调用方便的底层图形库,通过OpenGL可以实现多种倒影效果。
目前,使用OpenGL绘制倒影效果的方法主要有以下几种:
方式一:在产生倒影面的上下各绘制一次物体模型,再在倒影的前面即视点前方,绘制一个经过精心制作的蒙板面片,与倒影混合,使倒影看起来具有现实中朦胧渐变淡化的效果。
方法二:分别绘制物体模型和该物体模型的倒影,物体模型的倒影纹理图像不同于物体本身的纹理图像,需要美工分别设计,才可产生朦胧渐变淡化的效果。
方法三:与方法二类似,只是倒影纹理图像取自物体模型的原始纹理图像,经过程序处理后,具有朦胧渐变淡化效果,产生倒影的纹理对象,但是这样比较消耗CPU资源,且只是易于处理面片类型的倒影,对于非平面三维立体物体的倒影的处理则很困难。
上述现有的几种倒影绘制方式中,方法一虽然通用,但是根据物体模型的位置不同或场景不同,需要重新制作蒙板,由于蒙板面片制作复杂,使得倒影绘制速度慢;对于方法二,美工工作量大,制作过程不灵活,三维模型的面片制作复杂,需要进行纹理坐标拆分映射;方法三,占用CPU资源过多,内存消耗较大,纹理也比较多,且对于非平面物体模型难处理。
发明内容
本发明的主要目的在于提供一种绘制过程简单、占用资源少且倒影逼真的基于OpenGL的倒影显示处理装置及方法。
为了达到上述目的,本发明提出一种基于开放的图形程序接口OpenGL的倒影显示处理方法,包括:
加载及计算物体模型参数,获取所述物体模型的纹理贴图像素数据和/或默认顶点颜色值;
对所述物体模型参数进行顶点位置空间转换以及裁剪操作;
对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
根据所述纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示。
优选地,所述对物体模型参数进行顶点位置空间转换以及裁剪操作的步骤包括:
对所述物体模型参数进行坐标转换,以及裁剪操作;
根据坐标转换及剪裁操作后的物体模型参数确定所述物体模型的倒影范围;
计算所述物体模型的倒影的颜色因子值及透明度值。
优选地,所述根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示的步骤包括:
当所述物体模型具有纹理贴图时,根据所述物体模型参数中的纹理坐标的映射关系,采样并计算所述纹理贴图像素数据中各顶点的像素颜色;
根据所述各顶点的像素颜色及所述透明度值,计算各顶点的最终像素颜色值;
将所述各顶点的最终像素颜色值贴在所述物体模型上,生成所述物体模型的倒影图像,输出至显示设备进行显示。
优选地,所述根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成并显示所述物体模型的倒影图像的步骤包括:
当所述物体模型不具有纹理贴图时,根据所述默认顶点颜色值以及所述透明度值,计算各顶点的最终像素颜色值;
将所述各顶点的最终像素颜色值贴在所述物体模型上,生成并显示所述物体模型的倒影图像。
优选地,所述物体模型参数至少包括:顶点数据、高度、倒影方向、深度;所述顶点数据包括:位置信息、法线、颜色及纹理坐标。
本发明还提出一种基于OpenGL的倒影显示处理装置,包括:
主控模块,用于加载及计算物体模型参数,并获取所述物体模型的纹理贴图像素数据和/或默认顶点颜色值;
顶点着色模块,用于对所述物体模型参数进行顶点位置空间转换以及裁剪操作;
光栅化模块,用于对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
片段着色模块,用于根据所述纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示。
优选地,所述顶点着色模块包括:
坐标转换单元,用于对所述物体模型参数进行坐标转换,以及裁剪操作;
倒影范围确定单元,用于根据坐标转换及裁剪操作后的物体模型参数确定所述物体模型的倒影范围;
因子计算单元,用于计算所述物体模型的倒影的颜色因子值及透明度值。
优选地,所述片段着色模块包括:
纹理采样单元,用于当所述物体模型具有纹理贴图时,根据所述物体模型参数中的纹理坐标的映射关系,采样并计算所述纹理贴图像素数据中各顶点的像素颜色;
像素颜色计算单元,用于根据所述各顶点的像素颜色及所述透明度值,计算各顶点的最终像素颜色值;
上色单元,将所述各顶点的最终像素颜色值贴在所述物体模型上,生成所述物体模型的倒影图像,输出至显示设备进行显示。
优选地,所述像素颜色计算单元,还用于当所述物体模型不具有纹理贴图时,根据所述默认顶点颜色值以及所述透明度值,计算各顶点的最终像素颜色值;
所述上色单元,还用于将所述各顶点的最终像素颜色值贴在所述物体模型上,生成并显示所述物体模型的倒影图像。
优选地,所述物体模型参数至少包括:顶点数据、高度、倒影方向、深度;所述顶点数据包括:位置信息、法线、颜色及纹理坐标。
本发明提出的一种基于OpenGL的倒影显示处理装置及方法,在OpenGL绘图过程中,通过参数控制实现物体模型的倒影效果,模拟现实更逼真,朦胧渐变淡化不依赖于物体模型的原始纹理图片,也不依赖于原始纹理图像的格式、颜色通道数量、颜色字节长,只需一张纹理图片或不需要纹理图片(但物体模型要有颜色),不需要特殊处理倒影纹理图像,也不需要专门设计算法去处理倒影纹理图像,即可产生倒影纹理,节省了存储空间,减少CPU的运算量和内存占用量,为CPU腾出更多时间去做其它计算,充分发挥GPU的能力,实现更好的画面效果和流畅度;而且减轻了UI设计师的负担,改变了GPU的固定流水线作业方式,为GPU带来更高效的灵活性和适应性,充分发挥GPU性能。
附图说明
图1是本发明基于OpenGL的倒影显示处理方法一实施例流程示意图;
图2是本发明基于OpenGL的倒影显示处理方法一实施例中对物体模型参数进行顶点位置空间转换以及裁剪操作的流程示意图;
图3是本发明基于OpenGL的倒影显示处理方法一实施例中根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成物体模型的倒影图像,输出至显示设备进行显示的流程示意图;
图4是本发明基于OpenGL的倒影显示处理装置一实施例的结构示意图;
图5是本发明基于OpenGL的倒影显示处理装置一实施例中顶点着色模块的结构示意图;
图6是本发明基于OpenGL的倒影显示处理装置一实施例中片段着色模块的结构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
本发明实施例解决方案主要是:通过CPU加载及计算物体模型参数,获取物体模型的纹理贴图像素数据和/或默认顶点颜色值;之后由GPU依次对物体模型参数进行顶点位置空间转换以及裁剪操作、光栅化处理及片段着色处理,生成物体模型的倒影图像,输出至显示设备进行显示。通过参数控制实现物体模型的倒影效果,模拟现实更逼真,朦胧渐变淡化不依赖于物体模型的原始纹理图片,也不依赖于原始纹理图像的格式、颜色通道数量、颜色字节长,以节省存储空间,并减少CPU的运算量和内存占用量。
本发明通过OpenGL图形编程技术以及OpenGL Shader Language显卡编程技术实现。其中涉及的硬件包括CPU(Central ProcessingUnit,中央处理器)、GPU(Graphic Processing Unit,图形处理器)以及显示设备。GPU中有光栅化器、纹理内存等硬件实体以及顶点着色器、片段着色器程序。
以下实施例中提及的R、G、B、A值分别对应颜色成分的红、绿、蓝三色以及透明度alpha。一副图像的像素格式不一定有上述颜色成分,但可拼装成上述颜色成分格式。将纹理映射到物体模型表面或给物体模型上色时,传递物体模型的高度到相应的着色器,根据高度和倒影方向计算对应位置的R、G、B、A因子值,通过片段着色器在物体模型场景等转化为像素,绘制到帧缓存区中颜色缓存之前对最终倒影的像素颜色控制操作,结合OpenGL固有的混合功能,达到参数控制实现倒影效果。本发明把像素颜色的计算应用到GPU中处理,操作灵活,也充分发挥GPU的性能。并且可在像素输出到帧缓存区前进行一次处理,效率高,可以大面积成块处理。
具体地,如图1所示,本发明一实施例提出一种基于OpenGL的倒影显示处理方法,包括:
步骤S101,加载及计算物体模型参数,获取物体模型的纹理贴图像素数据和/或默认顶点颜色值;
本步骤可以在CPU中完成,由CPU加载及计算物体模型参数,首先,由CPU启动OpenGL应用程序,加载OpenGL图形动态库,初始化应用程序,调用OpenGL图形动态库的API;之后,由API调用对应的硬件驱动程序接口;经过后续的GPU进行图形处理后,将得到的倒影图像输出到显示设备上。
其中,物体模型参数包括:顶点数据、模型物体的高度、倒影方向、深度、光线及雾坐标等。
顶点数据包括:位置信息、法线、颜色及纹理坐标。
本实施例中物体模型可以为具有纹理贴图的物体模型,也可以为不具有纹理贴图的物体模型,而该物体模型本身具有默认的物体颜色即本实施例所称默认顶点颜色值。根据物体模型是否具有纹理贴图,后续对物体模型的上色过程则不相同(详见步骤S104)。
CPU除了加载及计算物体模型参数,还需获取物体模型相应的像素颜色参数,对于具有纹理贴图的物体模型,则获取物体模型的纹理贴图像素数据,对于不具有纹理贴图的物体模型,则获取物体模型的默认顶点颜色值,也可能是上述两种数据均获取(针对具有物体颜色且具有纹理贴图的物体模型)。
CPU将加载及计算的物体模型参数,以及获取的物体模型的纹理贴图像素数据和/或默认顶点颜色值发送至GPU,由GPU进行后续的图像处理。
其中获取的物体模型的纹理贴图像素数据存储在GPU中的纹理内存,默认顶点颜色值则保存在GPU中的像素操作模块。
步骤S102,对物体模型参数进行顶点位置空间转换以及裁剪操作;
本步骤通过GPU中的顶点着色器程序来完成,通过顶点着色器程序处理CPU传送过来的物体模型参数,进行空间位置数据变换以及R、G、B、A因子计算。
具体将物体模型参数的世界坐标转换为视点坐标系统中,然后根据坐标转换后的物体模型参数确定物体模型的倒影范围,再根据物体模型参数中的高度和倒影方向计算物体模型的倒影的颜色因子值及透明度值(即R、G、B、A因子),作为片段着色器的输入。
以某个代码举例说明R、G、B、A因子值的具体计算原理:将物体模型倒影的方向与位置高度相乘,得到的结果与倒影深度相比较,若结果在倒影深度以内的,则计算指定一种R、G、B、A因子值;若结果大于倒影深度,则R、G、B、A因子不变,都为1.0。该计算方法简洁、通用、快速、方便且高效。
步骤S103,对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
光栅化是一种将基本图元转化为二维图像的处理。转化后的图像的每个像素点都包括诸如颜色和深度的信息。因此,基本图元的光栅化由两部分工作组成。第一部分工作是决定窗口坐标中的哪些整型栅格区域被基本图元占用;第二部分工作是分配一个颜色值和一个深度值到各个区域。处理的结果会被传递到GL的下一个平台(片段操作),在那里利用消息区更新帧缓存中的适当区域。此处的光栅化操作是指上述第一部分工作。
本实施例中光栅化处理是指在视点坐标系中对物体模型栅格图元化,具体进行点、线、多边形、位图及像素矩形等的光栅化处理。
步骤S104,根据纹理贴图像素数据,对光栅化处理后的物体模型参数进行片段着色处理,生成物体模型的倒影图像,输出至显示设备进行显示。
本步骤在GPU中的片段着色器完成,片段着色器根据物体模型参数中纹理坐标的映射关系,进行纹理采样,输出像素颜色。
由帧缓存区接受片段着色器输出的像素颜色,以及像素深度等信息或接受直接由像素操作功模块输出的数据(对于不具有纹理贴图的物体模型)。
之后,提取纹理图像数据,指定纹理维数和过滤器等参数,生成纹理对象,产生倒影图像,输出到显示设备进行显示。其中,纹理操作的数据也可以直接从帧缓存区中获取,而不一定来自外部的纹理图像数据。
具体地,如图2所示,步骤S102包括:
步骤S1021,对物体模型参数进行坐标转换,以及裁剪操作;
步骤S1022,根据坐标转换及裁剪操作后的物体模型参数确定物体模型的倒影范围;
步骤S1023,计算物体模型的倒影的颜色因子值及透明度值。
如图3所示,步骤S104包括:
步骤S1041,判断物体模型是否具有纹理贴图;若是,则进入步骤S1042;否则,进入步骤S1045;
步骤S1042,根据物体模型参数中的纹理坐标的映射关系,采样并计算纹理贴图像素数据中各顶点的像素颜色;
步骤S1043,根据各顶点的像素颜色及透明度值,计算各顶点的最终像素颜色值;
步骤S1044,将各顶点的最终像素颜色值贴在物体模型上,生成物体模型的倒影图像,输出至显示设备进行显示。
步骤S1045,根据默认顶点颜色值以及透明度值,计算各顶点的最终像素颜色值;并进入步骤S1044。
在具体实施过程中,用GLSL语言正确编写着色器程序,成功编译连接着色器程序对象。设置物体模型的高度参数,倒影方向和深度信息后,在顶点着色器中,计算倒影朦胧渐变淡化位置对应的R、G、B、A因子值,传递到片段着色器,在片段着色器采样纹理颜色或直接接受物体颜色输出此片段最终像素颜色前,把倒影的R、G、B颜色因子值以及透明度值alpha应用到此颜色上,重新计算最终颜色值。这样,此片段的最终输出像素的颜色就不同于倒影的原始物体模型颜色,与帧缓存区中已有的颜色按照指定的混合方式进行混合,即可达到理想逼真的倒影效果。
下面举例进行说明:
对于动态倒影的制作,传统做法或者是设计多张倒影纹理图像,或者设计某个算法,以原始纹理图像为基础,每帧都需要重新计算修改纹理图像,生成纹理对象,这种多张蒙板的设计方法不切实际,而且增加了美工的工作量,对内存的消耗及CPU的占用率也非常高,使得程序效率低。
对于物体模型与倒影面不是完全对称,物体模型位置方向倾斜的倒影的实现,如玻璃平面上斜放一个盒子,倒影也是倾斜,要求渐变淡化。现有方法一,采用蒙板的方法虽然可以实现上述效果,但是美工工作量大,程序效率不高,而且需要多绘制一个面片,CPU资源占用率高;现有的方法二,通过算法处理,由于不知纹理图像与物体模型的纹理坐标映射关系,纹理图像的哪些部分该处理,哪些不用都无法得知,因此该方法无法实现上述效果。
而本发明方法解决了已知方法的上述难点,在使用时,只需要根据物体模型的高度和倒影方向,计算物体模型的哪些部分颜色需要渐变处理和对应的颜色视觉效果值,即可实现,该方法使用简单,成块处理,且高效通用。
本实施例在不增加其他硬件成本的情况下,也不需要过多的纹理贴图,节约了存储空间,并大大节约内存占用量,减轻了CPU负担,给其他任务腾出更多的CPU时间片,大大提高了CPU的效能,并减轻了UI设计师的工作量。实现对物体模型倒影的参数控制接口函数后,即可对用户界面上的3D物体模型倒影深度、颜色、变化程度进行参数处理,倒影效果更逼真,UI显示效果、更美观、时尚,从而提升产品的竞争力。
如图4所示,本发明一实施例还提出一种基于OpenGL的倒影显示处理装置,包括:主控模块401、顶点着色模块402、光栅化模块403及片段着色模块404,其中:
主控模块401,用于加载及计算物体模型参数,并获取所述物体模型的纹理贴图像素数据和/或默认顶点颜色值;
顶点着色模块402,用于对物体模型参数进行顶点位置空间转换以及裁剪操作;
光栅化模块403,用于对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
片段着色模块404,用于根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成物体模型的倒影图像,输出至显示设备进行显示。
上述模块中,主控模块401可以设置在CPU中,顶点着色模块402、光栅化模块403及片段着色模块404分别对应GPU中顶点着色器程序、光栅化器、片段着色器程序。
首先,由CPU中主控模块401启动OpenGL应用程序,加载OpenGL图形动态库,初始化应用程序,调用OpenGL图形动态库的API;之后,由API调用对应的硬件驱动程序接口;经过后续的GPU的顶点着色模块402、光栅化模块403及片段着色模块404进行图形处理后,将得到的倒影图像输出到显示设备上。
其中,物体模型参数包括:顶点数据、模型物体的高度、倒影方向、深度、光线及雾坐标等。
顶点数据包括:位置信息、法线、颜色及纹理坐标。
本实施例中物体模型可以为具有纹理贴图的物体模型,也可以为不具有纹理贴图的物体模型,而该物体模型本身具有默认的物体颜色即本实施例所称默认顶点颜色值。根据物体模型是否具有纹理贴图,后续对物体模型的上色过程则不相同。
主控模块401除了加载及计算物体模型参数,还需获取物体模型相应的像素颜色参数,对于具有纹理贴图的物体模型,则获取物体模型的纹理贴图像素数据,对于不具有纹理贴图的物体模型,则获取物体模型的默认顶点颜色值,也可能是上述两种数据均获取(针对具有物体颜色且具有纹理贴图的物体模型)。
主控模块401将加载及计算的物体模型参数,以及获取的物体模型的纹理贴图像素数据和/或默认顶点颜色值发送至GPU的顶点着色模块402,由GPU的各模块进行后续的图像处理。
其中主控模块401获取的物体模型的纹理贴图像素数据存储在GPU中的纹理内存,默认顶点颜色值保存在GPU中的像素操作模块。
之后,通过顶点着色模块402处理主控模块401传送过来的物体模型参数,进行空间位置数据变换以及R、G、B、A因子计算。
具体将物体模型参数的世界坐标转换为视点坐标系统中,然后根据坐标转换后的物体模型参数确定物体模型的倒影范围,再根据物体模型参数中的高度和倒影方向计算物体模型的倒影的颜色因子值及透明度值(即R、G、B、A因子),作为片段着色器的输入。
以某个代码举例说明R、G、B、A因子值的具体计算原理:将物体模型倒影的方向与位置高度相乘,得到的结果与倒影深度相比较,若结果在倒影深度以内的,则计算指定一种R、G、B、A因子值;若结果大于倒影深度,则R、G、B、A因子不变,都为1.0。该计算方法简洁、通用、快速、方便且高效。
之后,通过光栅化模块403对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理。
光栅化是一种将基本图元转化为二维图像的处理。转化后的图像的每个像素点都包括诸如颜色和深度的信息。因此,基本图元的光栅化由两部分工作组成。第一部分工作是决定窗口坐标中的哪些整型栅格区域被基本图元占用;第二部分工作是分配一个颜色值和一个深度值到各个区域。处理的结果会被传递到GL的下一个平台(片段操作),在那里利用消息区更新帧缓存中的适当区域。此处的光栅化操作是指上述第一部分工作。
本实施例中光栅化模块403的光栅化处理是指在视点坐标系中对物体模型参数进行裁剪,具体进行点、线、多边形、位图及像素矩形等的光栅化处理。
光栅化模块403处理后的数据传输给片段着色模块404,片段着色模块404根据物体模型参数中纹理坐标的映射关系,进行纹理采样,输出像素颜色。
由帧缓存区接受片段着色器输出的像素颜色,以及像素深度等信息或接受直接由像素操作功模块输出的数据(对于不具有纹理贴图的物体模型)。
之后,提取纹理图像数据,指定纹理维数和过滤器等参数,生成纹理对象,产生倒影图像,输出到显示设备进行显示。其中,纹理操作的数据也可以直接从帧缓存区中获取,而不一定来自外部的纹理图像数据。
具体地,如图5所示,顶点着色模块402包括:坐标转换单元4021、倒影范围确定单元4022及因子计算单元4023,其中:
坐标转换单元4021,用于对物体模型参数进行坐标转换,以及裁剪操作;
倒影范围确定单元4022,用于根据坐标转换及裁剪操作后的物体模型参数确定物体模型的倒影范围;
因子计算单元4023,用于计算物体模型的倒影的颜色因子值及透明度值。
如图6所示,片段着色模块404包括:纹理采样单元4041、像素颜色计算单元4042及上色单元4043,其中:
纹理采样单元4041,用于当物体模型具有纹理贴图时,根据物体模型参数中的纹理坐标的映射关系,采样并计算纹理贴图像素数据中各顶点的像素颜色;
像素颜色计算单元4042,用于根据各顶点的像素颜色及所述透明度值,计算各顶点的最终像素颜色值;
上色单元4043,将各顶点的最终像素颜色值贴在物体模型上,生成物体模型的倒影图像,输出至显示设备进行显示。
进一步的,像素颜色计算单元4042,还用于当物体模型不具有纹理贴图时,根据默认顶点颜色值以及所述透明度值,计算各顶点的最终像素颜色值;
上色单元4043,还用于将各顶点的最终像素颜色值贴在物体模型上,生成并显示物体模型的倒影图像。
本实施例在OpenGL绘图过程中,通过参数即可控制实现物体模型的倒影效果,模拟现实更逼真,朦胧渐变淡化,不依赖于其原始纹理图片,也不依赖于原始纹理图像的格式、颜色通道数量、颜色字节长,只需一张纹理图片或不需要纹理图片(但物体模型要有颜色),不需要特殊处理倒影纹理图像,也不需要专门设计算法去处理倒影纹理图像,产生倒影纹理。节省存储空间,减少CPU的运算量和内存占用量,为CPU腾出更多时间进行其它计算,改变了GPU的固定流水线作业方式,为GPU带来更高效的灵活性和适应性,可更加发挥GPU的能力,实现更好的画面效果和流畅度;更减轻了UI设计师的负担。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于开放的图形程序接口OpenGL的倒影显示处理方法,其特征在于,包括:
加载及计算物体模型参数,获取所述物体模型的纹理贴图像素数据和/或默认顶点颜色值;
对所述物体模型参数进行顶点位置空间转换以及裁剪操作;
对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
根据所述纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示。
2.根据权利要求1所述的方法,其特征在于,所述对物体模型参数进行顶点位置空间转换以及裁剪操作的步骤包括:
对所述物体模型参数进行坐标转换,以及裁剪操作;
根据坐标转换及剪裁操作后的物体模型参数确定所述物体模型的倒影范围;
计算所述物体模型的倒影的颜色因子值及透明度值。
3.根据权利要求2所述的方法,其特征在于,所述根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示的步骤包括:
当所述物体模型具有纹理贴图时,根据所述物体模型参数中的纹理坐标的映射关系,采样并计算所述纹理贴图像素数据中各顶点的像素颜色;
根据所述各顶点的像素颜色及所述透明度值,计算各顶点的最终像素颜色值;
将所述各顶点的最终像素颜色值贴在所述物体模型上,生成所述物体模型的倒影图像,输出至显示设备进行显示。
4.根据权利要求2所述的方法,其特征在于,所述根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成并显示所述物体模型的倒影图像的步骤包括:
当所述物体模型不具有纹理贴图时,根据所述默认顶点颜色值以及所述透明度值,计算各顶点的最终像素颜色值;
将所述各顶点的最终像素颜色值贴在所述物体模型上,生成并显示所述物体模型的倒影图像。
5.根据权利要求2、3或4所述的方法,其特征在于,所述物体模型参数至少包括:顶点数据、高度、倒影方向、深度;所述顶点数据包括:位置信息、法线、颜色及纹理坐标。
6.一种基于OpenGL的倒影显示处理装置,其特征在于,包括:
主控模块,用于加载及计算物体模型参数,并获取所述物体模型的纹理贴图像素数据和/或默认顶点颜色值;
顶点着色模块,用于对所述物体模型参数进行顶点位置空间转换以及裁剪操作;
光栅化模块,用于对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
片段着色模块,用于根据所述纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示。
7.根据权利要求6所述的装置,其特征在于,所述顶点着色模块包括:
坐标转换单元,用于对所述物体模型参数进行坐标转换,以及裁剪操作;
倒影范围确定单元,用于根据坐标转换及裁剪操作后的物体模型参数确定所述物体模型的倒影范围;
因子计算单元,用于计算所述物体模型的倒影的颜色因子值及透明度值。
8.根据权利要求7所述的装置,其特征在于,所述片段着色模块包括:
纹理采样单元,用于当所述物体模型具有纹理贴图时,根据所述物体模型参数中的纹理坐标的映射关系,采样并计算所述纹理贴图像素数据中各顶点的像素颜色;
像素颜色计算单元,用于根据所述各顶点的像素颜色及所述透明度值,计算各顶点的最终像素颜色值;
上色单元,将所述各顶点的最终像素颜色值贴在所述物体模型上,生成所述物体模型的倒影图像,输出至显示设备进行显示。
9.根据权利要求8所述的装置,其特征在于,
所述像素颜色计算单元,还用于当所述物体模型不具有纹理贴图时,根据所述默认顶点颜色值以及所述透明度值,计算各顶点的最终像素颜色值;
所述上色单元,还用于将所述各顶点的最终像素颜色值贴在所述物体模型上,生成并显示所述物体模型的倒影图像。
10.根据权利要求7、8或9所述的装置,其特征在于,
所述物体模型参数至少包括:顶点数据、高度、倒影方向、深度;所述顶点数据包括:位置信息、法线、颜色及纹理坐标。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110279959.XA CN102306391B (zh) | 2011-09-20 | 2011-09-20 | 基于OpenGL的倒影显示处理装置及方法 |
PCT/CN2012/081034 WO2013040983A1 (zh) | 2011-09-20 | 2012-09-06 | 基于OpenGL的倒影显示处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110279959.XA CN102306391B (zh) | 2011-09-20 | 2011-09-20 | 基于OpenGL的倒影显示处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102306391A true CN102306391A (zh) | 2012-01-04 |
CN102306391B CN102306391B (zh) | 2015-01-07 |
Family
ID=45380249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110279959.XA Expired - Fee Related CN102306391B (zh) | 2011-09-20 | 2011-09-20 | 基于OpenGL的倒影显示处理装置及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102306391B (zh) |
WO (1) | WO2013040983A1 (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102740025A (zh) * | 2012-06-08 | 2012-10-17 | 深圳Tcl新技术有限公司 | 屏幕菜单色彩的处理方法及装置 |
WO2013040983A1 (zh) * | 2011-09-20 | 2013-03-28 | 深圳Tcl新技术有限公司 | 基于OpenGL的倒影显示处理装置及方法 |
CN105321196A (zh) * | 2014-07-21 | 2016-02-10 | 上海羽舟网络科技有限公司 | 一种3d图像的处理方法及系统 |
CN105513138A (zh) * | 2015-12-11 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向OpenGL实现的坐标系统处理方法 |
CN106204703A (zh) * | 2016-06-29 | 2016-12-07 | 乐视控股(北京)有限公司 | 三维场景模型渲染方法和装置 |
CN106327557A (zh) * | 2015-06-18 | 2017-01-11 | 中国石油化工股份有限公司 | 一种大规模数据的快速渲染方法 |
CN106846454A (zh) * | 2017-01-17 | 2017-06-13 | 网易(杭州)网络有限公司 | 镜头光晕绘制方法及装置 |
CN107103581A (zh) * | 2017-04-21 | 2017-08-29 | 努比亚技术有限公司 | 一种图像倒影处理方法、装置及计算机可读介质 |
CN107483771A (zh) * | 2017-06-13 | 2017-12-15 | 青岛海信电器股份有限公司 | 一种图像生成的方法和图像显示装置 |
CN108109194A (zh) * | 2017-12-29 | 2018-06-01 | 广东工业大学 | 虚拟现实场景中镭射纸效果的实现方法及系统 |
CN108230430A (zh) * | 2016-12-21 | 2018-06-29 | 网易(杭州)网络有限公司 | 云层遮罩图的处理方法及装置 |
CN108520151A (zh) * | 2018-04-12 | 2018-09-11 | 长沙景美集成电路设计有限公司 | Gpu中一种实现点画三角形功能的装置和方法 |
CN108579082A (zh) * | 2018-04-27 | 2018-09-28 | 网易(杭州)网络有限公司 | 游戏中显示光影的方法、装置和终端 |
CN109215105A (zh) * | 2018-08-21 | 2019-01-15 | 北京金山安全软件有限公司 | 一种图像资源的生成方法和装置 |
CN110942478A (zh) * | 2019-11-18 | 2020-03-31 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的纹理完整性计算方法及计算单元 |
CN110989878A (zh) * | 2019-11-01 | 2020-04-10 | 百度在线网络技术(北京)有限公司 | 小程序中的动画展示方法、装置、电子设备及存储介质 |
CN111324756A (zh) * | 2018-12-17 | 2020-06-23 | 上海博泰悦臻电子设备制造有限公司 | 车辆及其基于实物产生装饰动画的方法和系统 |
CN111507891A (zh) * | 2020-04-14 | 2020-08-07 | 云南电网有限责任公司信息中心 | 基于cuda的数字图像几何变换方法、装置、设备及介质 |
CN112288846A (zh) * | 2020-09-22 | 2021-01-29 | 比特视界(北京)科技有限公司 | 用于制作三维物体表面顶层图案的方法及装置 |
CN112346613A (zh) * | 2020-10-29 | 2021-02-09 | 深圳Tcl新技术有限公司 | 图标显示效果的控制方法、终端及计算机可读存储介质 |
CN112907436A (zh) * | 2021-02-02 | 2021-06-04 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255832A (zh) * | 2018-09-21 | 2019-01-22 | 四川长虹电器股份有限公司 | 一种基于OpenGL的目标光场创建方法 |
CN111563966B (zh) * | 2019-01-28 | 2023-08-29 | 广东虚拟现实科技有限公司 | 虚拟内容显示方法、装置、终端设备及存储介质 |
CN111145327B (zh) * | 2019-12-31 | 2023-08-22 | 西安翔腾微电子科技有限公司 | 一种基于uml的gpu顶点染色器视图模型及其染色方法 |
CN111402392A (zh) * | 2020-01-06 | 2020-07-10 | 香港光云科技有限公司 | 光照模型计算方法、材质参数的处理方法及其处理装置 |
CN113674435B (zh) * | 2021-07-27 | 2024-08-20 | 阿里巴巴创新公司 | 图像处理方法、电子地图展示方法、装置及电子设备 |
CN113706677B (zh) * | 2021-08-30 | 2024-04-05 | 西安交通大学 | 基于gpu的面曝光增材制造掩膜批量生成方法及系统 |
CN114429523B (zh) * | 2022-02-10 | 2024-05-14 | 浙江慧脑信息科技有限公司 | 一种控制三维模型分区贴图的方法 |
CN115953597B (zh) * | 2022-04-25 | 2024-04-16 | 北京字跳网络技术有限公司 | 图像处理方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010026275A1 (en) * | 2000-03-31 | 2001-10-04 | Mitsubishi Denki Kabushiki Kaisha | Three dimensional graphics drawing apparatus for drawing polygons by adding an offset value to vertex data and method thereof |
CN1655191A (zh) * | 2005-02-25 | 2005-08-17 | 浙江大学 | 基于可编程图形硬件的多边形网格模型的快速体素化方法 |
CN101923462A (zh) * | 2009-06-10 | 2010-12-22 | 成都如临其境创意科技有限公司 | 一种基于FlashVR的三维微型场景网络发布引擎 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306391B (zh) * | 2011-09-20 | 2015-01-07 | 深圳Tcl新技术有限公司 | 基于OpenGL的倒影显示处理装置及方法 |
-
2011
- 2011-09-20 CN CN201110279959.XA patent/CN102306391B/zh not_active Expired - Fee Related
-
2012
- 2012-09-06 WO PCT/CN2012/081034 patent/WO2013040983A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010026275A1 (en) * | 2000-03-31 | 2001-10-04 | Mitsubishi Denki Kabushiki Kaisha | Three dimensional graphics drawing apparatus for drawing polygons by adding an offset value to vertex data and method thereof |
CN1655191A (zh) * | 2005-02-25 | 2005-08-17 | 浙江大学 | 基于可编程图形硬件的多边形网格模型的快速体素化方法 |
CN101923462A (zh) * | 2009-06-10 | 2010-12-22 | 成都如临其境创意科技有限公司 | 一种基于FlashVR的三维微型场景网络发布引擎 |
Non-Patent Citations (1)
Title |
---|
许元飞: "三维数据场可视化中体绘制技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013040983A1 (zh) * | 2011-09-20 | 2013-03-28 | 深圳Tcl新技术有限公司 | 基于OpenGL的倒影显示处理装置及方法 |
CN102740025B (zh) * | 2012-06-08 | 2016-04-06 | 深圳Tcl新技术有限公司 | 屏幕菜单色彩的处理方法及装置 |
CN102740025A (zh) * | 2012-06-08 | 2012-10-17 | 深圳Tcl新技术有限公司 | 屏幕菜单色彩的处理方法及装置 |
CN105321196A (zh) * | 2014-07-21 | 2016-02-10 | 上海羽舟网络科技有限公司 | 一种3d图像的处理方法及系统 |
CN106327557A (zh) * | 2015-06-18 | 2017-01-11 | 中国石油化工股份有限公司 | 一种大规模数据的快速渲染方法 |
CN106327557B (zh) * | 2015-06-18 | 2019-11-08 | 中国石油化工股份有限公司 | 一种大规模数据的快速渲染方法 |
CN105513138A (zh) * | 2015-12-11 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向OpenGL实现的坐标系统处理方法 |
CN106204703A (zh) * | 2016-06-29 | 2016-12-07 | 乐视控股(北京)有限公司 | 三维场景模型渲染方法和装置 |
CN108230430A (zh) * | 2016-12-21 | 2018-06-29 | 网易(杭州)网络有限公司 | 云层遮罩图的处理方法及装置 |
CN108230430B (zh) * | 2016-12-21 | 2021-12-21 | 网易(杭州)网络有限公司 | 云层遮罩图的处理方法及装置 |
CN106846454A (zh) * | 2017-01-17 | 2017-06-13 | 网易(杭州)网络有限公司 | 镜头光晕绘制方法及装置 |
CN107103581A (zh) * | 2017-04-21 | 2017-08-29 | 努比亚技术有限公司 | 一种图像倒影处理方法、装置及计算机可读介质 |
CN107103581B (zh) * | 2017-04-21 | 2021-09-07 | 努比亚技术有限公司 | 一种图像倒影处理方法、装置及计算机可读介质 |
CN107483771A (zh) * | 2017-06-13 | 2017-12-15 | 青岛海信电器股份有限公司 | 一种图像生成的方法和图像显示装置 |
CN108109194A (zh) * | 2017-12-29 | 2018-06-01 | 广东工业大学 | 虚拟现实场景中镭射纸效果的实现方法及系统 |
CN108109194B (zh) * | 2017-12-29 | 2021-03-16 | 广东工业大学 | 虚拟现实场景中镭射纸效果的实现方法及系统 |
CN108520151A (zh) * | 2018-04-12 | 2018-09-11 | 长沙景美集成电路设计有限公司 | Gpu中一种实现点画三角形功能的装置和方法 |
CN108520151B (zh) * | 2018-04-12 | 2022-12-06 | 长沙景美集成电路设计有限公司 | Gpu中一种实现点画三角形功能的装置和方法 |
CN108579082A (zh) * | 2018-04-27 | 2018-09-28 | 网易(杭州)网络有限公司 | 游戏中显示光影的方法、装置和终端 |
CN109215105A (zh) * | 2018-08-21 | 2019-01-15 | 北京金山安全软件有限公司 | 一种图像资源的生成方法和装置 |
CN111324756A (zh) * | 2018-12-17 | 2020-06-23 | 上海博泰悦臻电子设备制造有限公司 | 车辆及其基于实物产生装饰动画的方法和系统 |
CN110989878A (zh) * | 2019-11-01 | 2020-04-10 | 百度在线网络技术(北京)有限公司 | 小程序中的动画展示方法、装置、电子设备及存储介质 |
CN110942478A (zh) * | 2019-11-18 | 2020-03-31 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的纹理完整性计算方法及计算单元 |
CN110942478B (zh) * | 2019-11-18 | 2023-09-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的纹理完整性计算方法及计算单元 |
CN111507891A (zh) * | 2020-04-14 | 2020-08-07 | 云南电网有限责任公司信息中心 | 基于cuda的数字图像几何变换方法、装置、设备及介质 |
CN112288846A (zh) * | 2020-09-22 | 2021-01-29 | 比特视界(北京)科技有限公司 | 用于制作三维物体表面顶层图案的方法及装置 |
CN112346613A (zh) * | 2020-10-29 | 2021-02-09 | 深圳Tcl新技术有限公司 | 图标显示效果的控制方法、终端及计算机可读存储介质 |
CN112907436A (zh) * | 2021-02-02 | 2021-06-04 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
CN112907436B (zh) * | 2021-02-02 | 2024-06-07 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2013040983A1 (zh) | 2013-03-28 |
CN102306391B (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102306391B (zh) | 基于OpenGL的倒影显示处理装置及方法 | |
US10614549B2 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
JP6678209B2 (ja) | 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整 | |
US10102663B2 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
CN103946895B (zh) | 基于平铺块的呈现中的镶嵌方法和设备 | |
CN110291563A (zh) | 图形处理中的多个着色器进程 | |
US11238639B2 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
CN102243769B (zh) | 3d体积光动态实现方法及装置 | |
CN102509335B (zh) | 基于OpenGL的透明/半透明显示处理装置及方法 | |
CN106157357A (zh) | 一种基于gpu加速的动态光效实现方法及系统 | |
US11302054B2 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
JP2010113548A (ja) | グラフィックス装置 | |
CN110909401A (zh) | 基于三维模型的建筑物信息管控方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150107 |