CN102306097B - 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 - Google Patents
一种在MultiGen-Vega中对场景图进行实时图像处理的方法 Download PDFInfo
- Publication number
- CN102306097B CN102306097B CN 201110230472 CN201110230472A CN102306097B CN 102306097 B CN102306097 B CN 102306097B CN 201110230472 CN201110230472 CN 201110230472 CN 201110230472 A CN201110230472 A CN 201110230472A CN 102306097 B CN102306097 B CN 102306097B
- Authority
- CN
- China
- Prior art keywords
- scene
- texture
- tinter
- scene graph
- vega
- 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.)
- Expired - Fee Related
Links
Images
Abstract
一种在MultiGen-Vega中对场景图进行实时图像处理的方法:在Vega中,对场景所属通道创建回调函数;通过OpenGL着色语言GLSL编写片元着色器,其功能是对传入的纹理进行像素操作;在回调函数中将场景图保存为纹理;启用片元着色器,通过纹理映射用场景图纹理覆盖场景图;片元着色器将代替OpenGL的固定纹理映射功能,在映射的同时完成对纹理的图像处理,覆盖后的场景图就是经过图像处理的。本发明利用了现代图形硬件强大的图形能力实时的完成对Vega场景图的图像处理;具有灵活性,在片元着色器中可进行各种像素操作实现各种图像处理效果,结合顶点着色器还能实现更为复杂的效果;同时也可以用在其它的基于OpenGL的场景图系统。
Description
技术领域
本发明属于虚拟现实和视景仿真领域,涉及在基于三维视景仿真软件MultiGen-Vega的视景系统中对场景图进行实时图像处理的方法。
背景技术
MultiGen-Vega是美国MultiGen-Paradigm公司专门针对可视化仿真行业应用特点开发的实时可视化三维视景仿真软件系统(本发明中称:MultiGen-Vega)。它最基本的功能是驱动、控制、管理虚拟场景并支持快速复杂的视觉仿真系统,快速创建各种实时交互的三维环境和虚拟现实系统。目前,Vega已经应用于城市规划仿真、建筑设计漫游、飞行仿真、海洋仿真、地面战争模拟、车辆驾驶仿真、三维游戏开发等方面并不断向新的领域扩展。
随着Vega的应用日趋广泛,在许多复杂的视景仿真应用中,出现了一些新的仿真需求,对场景图进行一些简单的图像处理就是其中一种。比如在CCD成像仿真系统中,为模拟出调焦的过程需要对场景图进行模糊化;在目标跟踪仿真系统中,需要对场景图进行边缘检测。然而Vega本身自带的功能模块和API(Application Program Interface,应用程序接口)中并没有包含对场景图进行图像处理的支持,同时由于实时性的要求,将场景图保存为图像数据然后按常规的方法进行图像处理也变得不可行。因此,对Vega进行二次开发以实现对场景图的实时图像处理成为一种需要。
Vega本身是基于OpenGL的场景图系统,利用OpenGL图像处理子集(OpenGL ImagingSubset)中的卷积滤波功能,可以实现对场景图的一些图像处理,包括模糊、锐化和边缘检测等。但卷积滤波所能进行的处理只能以卷积的形式进行处理,所能进行的图像处理种类有限,而且速度慢无法应用在实时视景仿真中。
发明内容
本发明要解决的技术问题是:针对Vega自带的功能模块和API在对场景进行图像处理方面的不足,对Vega进行二次开发。提出一种在MultiGen-Vega中实时对场景图进行图像处理的方法,该方法基于Vega系统的结构、Vega的通道回调机制以及现代图形硬件强大的图形能力和可编程性,在Vega系统中利用GLSL编写的片元着色器代替OpenGL的固定纹理映射功能,在进行纹理映射的同时完成对纹理的图像处理操作,最终产生经过处理的场景图。从而实现对Vega系统场景图的实时图像处理。
本发明的技术方案是:一种在MultiGen-Vega中对场景图进行实时图像处理的方法,其特征在于包括以下步骤,其流程图如图1所示:
(1)利用三维实景仿真系统Vega提供的API函数vgAddFunc,对场景所属通道创建标识为VGCHAN_POSTDRAW的通道回调函数;
(2)利用OpenGL着色语言GLSL编写片元着色器,所述片元着色器能对传入的纹理进行像素操作实现对纹理的图像处理;
(3)在场景图的渲染过程中,每当场景图在帧缓存中绘制好后,步骤(1)中创建的回调函数将被调用,此时场景图还未显示出来,因此可以在此回调函数中对场景图进行图像处理,当调用结束后就可以显示经过了图像处理的场景图;
(4)在回调函数中将场景图通过相关OpenGL函数保存为二维纹理,通过GLSL中的uniform变量机制将此纹理传递给步骤(2)的片元着色器;
(5)在回调函数中启用步骤(2)的片元着色器,通过OpenGL相关函数画与场景相同大小的矩形覆盖整个场景,也即替换了场景,并将场景图纹理映射到此矩形上;
(6)在步骤(5)中,启用的片元着色器代替了OpenGL的固定纹理映射功能,因此将场景图纹理映射到矩形上实际上是由着色器完成的,而着色器中又添加了对纹理的像素操作,此像素操作也就是对纹理的图像处理,因而映射完成后得到的矩形就是经过了图像处理的场景图;
(7)完成映射后,需要禁用片元着色器,经过图像处理的场景被显示出来,当前帧的处理完成;
(8)重复进行步骤(3)至(7),完成后续帧的渲染。
所述步骤(2)中片元着色器对纹理进行的像素操作是着色器所能够实现的所有像素操作,包括高通滤波、低通滤波、傅里叶变换等,所实现的图像处理效果包括锐化、模糊、边缘检测、腐蚀和膨胀等。
本发明与现有技术相比具有如下优点:
1、充分利用了现代图形硬件强大的图形能力和可编程性,通过其编程语言GLSL编写片元着色器让图形硬件完成图像处理操作,处理速度极快满足实时性的要求;
2、具有极大的灵活性,在片元着色器中可以根据需要进行不同的像素处理以实现不同的图像处理操作,还可以结合顶点着色器实现更为复杂的效果;
3、本方法还可以用在其它的基于OpenGL的场景图系统。
附图说明
图1为本发明方法的步骤流程框图;
图2为本发明的具体实现流程图;
图3为本发明实现的几种图像处理效果的实验仿真图,其中图3(a)的图像处理处理效果为模糊,图3(b)为锐化、图3(c)为边缘检测,图3(d)为膨胀,图3(e)为侵蚀,图3(f)则是没有进行任何图像处理的原始场景。
具体实施方式
本发明基于Vega系统的结构、Vega的通道回调机制以及现代图形硬件强大的图形能力和可编程性,在Vega系统中利用GLSL编写的片元着色器代替OpenGL的固定纹理映射功能,在进行纹理映射的同时完成对纹理的图像处理操作,最终产生经过处理的场景图。其具体流程图如图2所示,具体步骤如下:
(1)初始化Vega系统;
(2)用GLSL编写片元着色器,此着色器对传入的纹理进行像素操作,完成对传入纹理的图像处理操,在Vega系统中对此片元着色器进行创建、编译和链接,等需要使用的时候就可以启用;
(3)对场景所属的通道注册标识为“VGCHAN_POSTDRAW”的回调函数,具体语句为:
vgAddFunc(channel,VGCHAN_POSTDRAW,MyCallbackFunc,MyData);其中,channel就是需要进行图像处理的场景所属的通道,MyCallbackFunc就是注册的回调函数,MyData是用户可能需要用到的一些自定义数据;
(4)在Vega系统进行场景渲染的过程中,当前帧场景在帧缓存中绘制完成之后,步骤(3)中的MyCallbackFunc回调函数将被调用,此时当前帧场景还没有显示在屏幕上;之后的处理将在此函数中进行;
(5)使用OpenGL函数glCopyTexImage2D(仅在第一帧使用这个函数)或者函数glCopyTexSubImage2D(第一帧之后使用)将存储在帧缓存中的场景图保存为二维纹理;
(6)在程序中启用步骤(2)的片元着色器,并通过GLSL的内置变量将步骤(5)保存的场景纹理传递给着色器;
(7)通过OpenGL相关函数画与场景相同大小的矩形覆盖场景,并将场景纹理映射到此矩形上;纹理大小与矩形大小一样,映射将是一个纹素对应一个像素;
(8)在映射的过程中,启用的片元着色器代替了OpenGL的固定纹理映射功能,将场景图纹理映射到矩形上实际上是由着色器完成的;而着色器中又添加了对纹理的像素操作,此像素操作也就是对纹理的图像处理,因此映射完成后得到的矩形就是经过了图像处理的场景图;要完成何种样的图像处理则取决于编写的片元着色器中像素操作的内容;
(9)映射完成后,禁用片元着色器,否则会影响到下一帧Vega自身的一些纹理映射;回调函数调用结束,经过了图像处理的场景图显示出来,当前帧的处理完成;
(10)重复完成步骤(4)至步骤(9),实现一后续帧的场景渲染。
利用本方法对Vega系统场景图进行几种图像处理的实验仿真图如图2所示,图2(a)至(f)依次为模糊、锐化、边缘检测、膨胀、侵蚀和原始场景。图2中每种效果的场景图的分辨率为1024x1024,整个场景都进行了图像处理,每一帧的绘制时间都不超过5ms,有的甚至少于2ms,完全满足实时性的要求。
于本领域的普通技术人员来说可显而易见的得出其他优点和修改。因此,具有更广方面的本发明并不局限于这里所示出的并且所描述的具体说明及示例性实施例。因此,在不脱离由随后权利要求及其等价体所定义的一般发明构思的精神和范围的情况下,可对其作出各种修改。
Claims (2)
1.一种在MultiGen-Vega中对场景图进行实时图像处理的方法,其特征在于包括以下步骤:
(1)利用三维实景仿真系统Vega提供的API函数vgAddFunc,对场景所属通道创建标识为VGCHAN_POSTDRAW的通道回调函数;
(2)利用OpenGL着色语言GLSL编写片元着色器,所述片元着色器能对传入的纹理进行像素操作实现对纹理的图像处理;
(3)在场景图的渲染过程中,每当场景图在帧缓存中绘制好后,步骤(1)中创建的回调函数将被调用,此时场景图还未显示出来,因此在此回调函数中对场景图进行图像处理,当调用结束后就能够显示经过了图像处理的场景图;
(4)在回调函数中将场景图通过相关OpenGL函数保存为二维纹理,通过GLSL中的uniform变量机制将此纹理传递给步骤(2)的片元着色器;
(5)在回调函数中启用步骤(2)的片元着色器,通过OpenGL相关函数画与场景相同大小的矩形覆盖整个场景,也即替换了场景,并将场景图纹理映射到此矩形上;
(6)在步骤(5)中,启用的片元着色器代替了OpenGL的固定纹理映射功能,因此将场景图纹理映射到矩形上实际上是由着色器完成的,而着色器中又添加了对纹理的像素操作,此像素操作也就是对纹理的图像处理,因而映射完成后得到的矩形就是经过了图像处理的场景图;
(7)完成映射后,需要禁用片元着色器,经过图像处理的场景被显示出来,当前帧的处理完成;
(8)重复进行步骤(3)至(7),完成后续帧的渲染。
2.根据权利要求1所述的对场景图进行实时图像处理的方法,其特征在于:所述步骤(2)中片元着色器对纹理进行的像素操作是着色器所能够实现的所有像素操作,包括高通滤波、低通滤波、傅里叶变换,所实现的对纹理图像处理包括锐化、模糊、边缘检测、腐蚀和膨胀。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110230472 CN102306097B (zh) | 2011-08-12 | 2011-08-12 | 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110230472 CN102306097B (zh) | 2011-08-12 | 2011-08-12 | 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102306097A CN102306097A (zh) | 2012-01-04 |
CN102306097B true CN102306097B (zh) | 2013-12-25 |
Family
ID=45379963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110230472 Expired - Fee Related CN102306097B (zh) | 2011-08-12 | 2011-08-12 | 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102306097B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103413344A (zh) * | 2013-07-10 | 2013-11-27 | 深圳Tcl新技术有限公司 | 3d帧动画实现方法、装置及终端 |
US9881391B2 (en) * | 2013-10-02 | 2018-01-30 | Microsoft Technology Licensing, Llc | Procedurally defined texture maps |
CN110111261B (zh) * | 2019-03-28 | 2021-05-28 | 瑞芯微电子股份有限公司 | 图像的自适应平衡处理方法、电子设备和计算机可读存储介质 |
CN111739140B (zh) * | 2020-08-10 | 2020-11-27 | 成都四方伟业软件股份有限公司 | 一种3d数据城市模型的构建方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1890694A (zh) * | 2003-12-09 | 2007-01-03 | 皇家飞利浦电子股份有限公司 | 计算机图形处理器及在三维图像显示屏上呈现三维场景的方法 |
-
2011
- 2011-08-12 CN CN 201110230472 patent/CN102306097B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1890694A (zh) * | 2003-12-09 | 2007-01-03 | 皇家飞利浦电子股份有限公司 | 计算机图形处理器及在三维图像显示屏上呈现三维场景的方法 |
Non-Patent Citations (6)
Title |
---|
"OpenGL在Vega开发环境中的应用研究";代丽红 等;《计算机应用与软件》;20050731;第22卷(第7期);第64-66页 * |
"基于Vega 的机载脉冲多普勒雷达图像仿真设计";王中训 等;《计算机测量与控制》;20060630;第14卷(第6期);第803-805页 * |
"基于Vega光电对抗视景仿真的研究与实现";徐理德 等;《微计算机信息》;20090331;第25卷(第3-1期);第201-203页 * |
代丽红 等."OpenGL在Vega开发环境中的应用研究".《计算机应用与软件》.2005,第22卷(第7期),第64-66页. |
徐理德 等."基于Vega光电对抗视景仿真的研究与实现".《微计算机信息》.2009,第25卷(第3-1期),第201-203页. |
王中训 等."基于Vega 的机载脉冲多普勒雷达图像仿真设计".《计算机测量与控制》.2006,第14卷(第6期),第803-805页. |
Also Published As
Publication number | Publication date |
---|---|
CN102306097A (zh) | 2012-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6374982B2 (ja) | オブジェクト及び/またはプリミティブ識別子を追跡することによるグラフィック処理の向上 | |
JP6342513B2 (ja) | 高解像度表示バッファの効果的な構築方法 | |
US9177351B2 (en) | Multi-primitive graphics rendering pipeline | |
CN110291563B (zh) | 图形处理中的多个着色器进程 | |
CN107430784B (zh) | 图形处理系统 | |
US10636213B2 (en) | Graphics processing systems | |
US11657560B2 (en) | VRS rate feedback | |
EP2973423B1 (en) | System and method for display of a repeating texture stored in a texture atlas | |
US10282895B2 (en) | Transparency parameter determination when rendering a scene for output in graphics processing systems | |
KR20190100194A (ko) | 타일식 아키텍처들에서의 포비티드 렌더링 | |
US9396515B2 (en) | Rendering using multiple render target sample masks | |
US20170069129A1 (en) | Graphics processing systems | |
CN102306097B (zh) | 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 | |
CN112132936B (zh) | 画面渲染方法、装置、计算机设备及存储介质 | |
Liu et al. | Cinematic rendering in UE4 with real-time ray tracing and denoising | |
US20180211434A1 (en) | Stereo rendering | |
KR20190109413A (ko) | 비순차적 픽셀 셰이더 익스포트 | |
CN112465941B (zh) | 一种体积云处理方法、装置、电子设备及存储介质 | |
GB2535792A (en) | Graphic processing systems | |
CN114902274A (zh) | 混合分箱 | |
KR20230162006A (ko) | 두 레벨 비닝을 통한 포스트 깊이 가시성 수집 | |
CN117063202A (zh) | 通过子通道交错实现无同步交叉通道分格 | |
CN118043850A (zh) | Meshlet着色图集 | |
GB2535791A (en) | Graphics processing systems | |
KR20100073176A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131225 Termination date: 20150812 |
|
EXPY | Termination of patent right or utility model |