CN102306391B - 基于OpenGL的倒影显示处理装置及方法 - Google Patents

基于OpenGL的倒影显示处理装置及方法 Download PDF

Info

Publication number
CN102306391B
CN102306391B CN201110279959.XA CN201110279959A CN102306391B CN 102306391 B CN102306391 B CN 102306391B CN 201110279959 A CN201110279959 A CN 201110279959A CN 102306391 B CN102306391 B CN 102306391B
Authority
CN
China
Prior art keywords
object model
inverted image
color
vertex
value
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.)
Active
Application number
CN201110279959.XA
Other languages
English (en)
Other versions
CN102306391A (zh
Inventor
毕胜旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen TCL New Technology Co Ltd
Original Assignee
Shenzhen TCL New Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen TCL New Technology Co Ltd filed Critical Shenzhen TCL New Technology Co Ltd
Priority to CN201110279959.XA priority Critical patent/CN102306391B/zh
Publication of CN102306391A publication Critical patent/CN102306391A/zh
Priority to PCT/CN2012/081034 priority patent/WO2013040983A1/zh
Application granted granted Critical
Publication of CN102306391B publication Critical patent/CN102306391B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [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的倒影显示处理装置及方法
技术领域
本发明涉及图像显示技术领域,尤其涉及一种基于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 (6)

1.一种基于开放的图形程序接口OpenGL的倒影显示处理方法,其特征在于,包括:
加载及计算物体模型参数,获取所述物体模型的纹理贴图像素数据和/或默认顶点颜色值;
对所述物体模型参数进行顶点位置空间转换以及裁剪操作;
对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
根据所述纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示;所述对物体模型参数进行顶点位置空间转换以及裁剪操作的步骤包括:
对所述物体模型参数进行坐标转换,以及裁剪操作;
根据坐标转换及裁剪操作后的物体模型参数确定所述物体模型的倒影范围;
计算所述物体模型的倒影的颜色因子值及透明度值;
所述根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示的步骤包括:
当所述物体模型具有纹理贴图时,根据所述物体模型参数中的纹理坐标的映射关系,采样并计算所述纹理贴图像素数据中各顶点的像素颜色;
根据所述各顶点的像素颜色及所述透明度值,计算各顶点的最终像素颜色值;具体用GLSL语言正确编写着色器程序,成功编译连接着色器程序对象;设置物体模型的高度参数,倒影方向和深度信息后,在顶点着色器中,计算倒影朦胧渐变淡化位置对应的R、G、B、A因子值,传递到片段着色器,在片段着色器采样纹理颜色或直接接受物体颜色输出此片段最终像素颜色前,把倒影的R、G、B颜色因子值以及透明度值alpha应用到此颜色上,重新计算最终像素颜色值;
将所述各顶点的最终像素颜色值贴在所述物体模型上,生成所述物体模型的倒影图像,输出至显示设备进行显示。
2.根据权利要求1所述的方法,其特征在于,所述根据纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成并显示所述物体模型的倒影图像的步骤包括:
当所述物体模型不具有纹理贴图时,根据所述默认顶点颜色值以及所述透明度值,计算各顶点的最终像素颜色值;
将所述各顶点的最终像素颜色值贴在所述物体模型上,生成并显示所述物体模型的倒影图像。
3.根据权利要求1或2所述的方法,其特征在于,所述物体模型参数至少包括:顶点数据、高度、倒影方向、深度;所述顶点数据包括:位置信息、法线、颜色及纹理坐标。
4.一种基于开放的图形程序接口OpenGL的倒影显示处理装置,其特征在于,包括:
主控模块,用于加载及计算物体模型参数,并获取所述物体模型的纹理贴图像素数据和/或默认顶点颜色值;
顶点着色模块,用于对所述物体模型参数进行顶点位置空间转换以及裁剪操作;
光栅化模块,用于对顶点位置空间转换以及裁剪操作后的物体模型参数进行光栅化处理;
片段着色模块,用于根据所述纹理贴图像素数据和/或默认顶点颜色值,对光栅化处理后的物体模型参数进行片段着色处理,生成所述物体模型的倒影图像,输出至显示设备进行显示;所述顶点着色模块包括:
坐标转换单元,用于对所述物体模型参数进行坐标转换,以及裁剪操作;
倒影范围确定单元,用于根据坐标转换及裁剪操作后的物体模型参数确定所述物体模型的倒影范围;
因子计算单元,用于计算所述物体模型的倒影的颜色因子值及透明度值;所述片段着色模块包括:
纹理采样单元,用于当所述物体模型具有纹理贴图时,根据所述物体模型参数中的纹理坐标的映射关系,采样并计算所述纹理贴图像素数据中各顶点的像素颜色;
像素颜色计算单元,用于根据所述各顶点的像素颜色及所述透明度值,计算各顶点的最终像素颜色值;具体用GLSL语言正确编写着色器程序,成功编译连接着色器程序对象;设置物体模型的高度参数,倒影方向和深度信息后,在顶点着色器中,计算倒影朦胧渐变淡化位置对应的R、G、B、A因子值,传递到片段着色器,在片段着色器采样纹理颜色或直接接受物体颜色输出此片段最终像素颜色前,把倒影的R、G、B颜色因子值以及透明度值alpha应用到此颜色上,重新计算最终像素颜色值;
上色单元,将所述各顶点的最终像素颜色值贴在所述物体模型上,生成所述物体模型的倒影图像,输出至显示设备进行显示。
5.根据权利要求4所述的装置,其特征在于,
所述像素颜色计算单元,还用于当所述物体模型不具有纹理贴图时,根据所述默认顶点颜色值以及所述透明度值,计算各顶点的最终像素颜色值;
所述上色单元,还用于将所述各顶点的最终像素颜色值贴在所述物体模型上,生成并显示所述物体模型的倒影图像。
6.根据权利要求4或5所述的装置,其特征在于,
所述物体模型参数至少包括:顶点数据、高度、倒影方向、深度;所述顶点数据包括:位置信息、法线、颜色及纹理坐标。
CN201110279959.XA 2011-09-20 2011-09-20 基于OpenGL的倒影显示处理装置及方法 Active CN102306391B (zh)

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 CN102306391A (zh) 2012-01-04
CN102306391B true CN102306391B (zh) 2015-01-07

Family

ID=45380249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110279959.XA Active CN102306391B (zh) 2011-09-20 2011-09-20 基于OpenGL的倒影显示处理装置及方法

Country Status (2)

Country Link
CN (1) CN102306391B (zh)
WO (1) WO2013040983A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306391B (zh) * 2011-09-20 2015-01-07 深圳Tcl新技术有限公司 基于OpenGL的倒影显示处理装置及方法
CN102740025B (zh) * 2012-06-08 2016-04-06 深圳Tcl新技术有限公司 屏幕菜单色彩的处理方法及装置
CN105321196A (zh) * 2014-07-21 2016-02-10 上海羽舟网络科技有限公司 一种3d图像的处理方法及系统
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 乐视控股(北京)有限公司 三维场景模型渲染方法和装置
CN108230430B (zh) * 2016-12-21 2021-12-21 网易(杭州)网络有限公司 云层遮罩图的处理方法及装置
CN106846454A (zh) * 2017-01-17 2017-06-13 网易(杭州)网络有限公司 镜头光晕绘制方法及装置
CN107103581B (zh) * 2017-04-21 2021-09-07 努比亚技术有限公司 一种图像倒影处理方法、装置及计算机可读介质
CN107483771A (zh) * 2017-06-13 2017-12-15 青岛海信电器股份有限公司 一种图像生成的方法和图像显示装置
CN108109194B (zh) * 2017-12-29 2021-03-16 广东工业大学 虚拟现实场景中镭射纸效果的实现方法及系统
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 北京金山安全软件有限公司 一种图像资源的生成方法和装置
CN109255832A (zh) * 2018-09-21 2019-01-22 四川长虹电器股份有限公司 一种基于OpenGL的目标光场创建方法
CN111324756A (zh) * 2018-12-17 2020-06-23 上海博泰悦臻电子设备制造有限公司 车辆及其基于实物产生装饰动画的方法和系统
CN111563966B (zh) * 2019-01-28 2023-08-29 广东虚拟现实科技有限公司 虚拟内容显示方法、装置、终端设备及存储介质
CN110989878B (zh) * 2019-11-01 2021-07-20 百度在线网络技术(北京)有限公司 小程序中的动画展示方法、装置、电子设备及存储介质
CN110942478B (zh) * 2019-11-18 2023-09-19 中国航空工业集团公司西安航空计算技术研究所 一种基于SystemC的纹理完整性计算方法及计算单元
CN111145327B (zh) * 2019-12-31 2023-08-22 西安翔腾微电子科技有限公司 一种基于uml的gpu顶点染色器视图模型及其染色方法
CN111402392A (zh) * 2020-01-06 2020-07-10 香港光云科技有限公司 光照模型计算方法、材质参数的处理方法及其处理装置
CN112907436A (zh) * 2021-02-02 2021-06-04 深圳市显控科技股份有限公司 基于OpenGL的线型绘制方法、系统及介质
CN113674435A (zh) * 2021-07-27 2021-11-19 阿里巴巴新加坡控股有限公司 图像处理方法、电子地图展示方法、装置及电子设备
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655191A (zh) * 2005-02-25 2005-08-17 浙江大学 基于可编程图形硬件的多边形网格模型的快速体素化方法
CN101923462A (zh) * 2009-06-10 2010-12-22 成都如临其境创意科技有限公司 一种基于FlashVR的三维微型场景网络发布引擎

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001283254A (ja) * 2000-03-31 2001-10-12 Mitsubishi Electric Corp 3次元グラフィックス描画装置およびその方法
CN102306391B (zh) * 2011-09-20 2015-01-07 深圳Tcl新技术有限公司 基于OpenGL的倒影显示处理装置及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655191A (zh) * 2005-02-25 2005-08-17 浙江大学 基于可编程图形硬件的多边形网格模型的快速体素化方法
CN101923462A (zh) * 2009-06-10 2010-12-22 成都如临其境创意科技有限公司 一种基于FlashVR的三维微型场景网络发布引擎

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
三维数据场可视化中体绘制技术的研究;许元飞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20050915;摘要,正文第25,35-39,45-47页 *

Also Published As

Publication number Publication date
WO2013040983A1 (zh) 2013-03-28
CN102306391A (zh) 2012-01-04

Similar Documents

Publication Publication Date Title
CN102306391B (zh) 基于OpenGL的倒影显示处理装置及方法
JP6678209B2 (ja) 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整
US11069128B2 (en) Rendering an image from computer graphics using two rendering computing devices
CN103946895B (zh) 基于平铺块的呈现中的镶嵌方法和设备
KR102275712B1 (ko) 렌더링 방법, 렌더링 장치 및 전자 장치
CN112316420B (zh) 模型渲染方法、装置、设备及存储介质
CN102243769B (zh) 3d体积光动态实现方法及装置
US11238639B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid
CN102509335B (zh) 基于OpenGL的透明/半透明显示处理装置及方法
KR20040024550A (ko) 묘화 처리 방법
CN106157357A (zh) 一种基于gpu加速的动态光效实现方法及系统
JP6944304B2 (ja) テクスチャ処理方法及びその装置
KR20180038793A (ko) 영상 데이터 처리 방법 및 장치
CN101795410A (zh) 一种细粒度高压缩率的纹理压缩和合成方法
US9390551B2 (en) Method for estimation of information representative of a pixel of a virtual object
CN101511034A (zh) 面向Skyline的真三维立体显示方法
JP2010113548A (ja) グラフィックス装置
KR20080050999A (ko) 경계선이 자연스러운 3차원 텍스쳐 장치 및 방법
McMullan et al. Hand Drawn Rendering
US20150029191A1 (en) Gradation drawing device
KR20160077559A (ko) 실시간 집적 영상 생성 방법

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