CN102306097B - 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 - Google Patents

一种在MultiGen-Vega中对场景图进行实时图像处理的方法 Download PDF

Info

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
Application number
CN 201110230472
Other languages
English (en)
Other versions
CN102306097A (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.)
Institute of Optics and Electronics of CAS
Original Assignee
Institute of Optics and Electronics of CAS
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 Institute of Optics and Electronics of CAS filed Critical Institute of Optics and Electronics of CAS
Priority to CN 201110230472 priority Critical patent/CN102306097B/zh
Publication of CN102306097A publication Critical patent/CN102306097A/zh
Application granted granted Critical
Publication of CN102306097B publication Critical patent/CN102306097B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种在MultiGen-Vega中对场景图进行实时图像处理的方法:在Vega中,对场景所属通道创建回调函数;通过OpenGL着色语言GLSL编写片元着色器,其功能是对传入的纹理进行像素操作;在回调函数中将场景图保存为纹理;启用片元着色器,通过纹理映射用场景图纹理覆盖场景图;片元着色器将代替OpenGL的固定纹理映射功能,在映射的同时完成对纹理的图像处理,覆盖后的场景图就是经过图像处理的。本发明利用了现代图形硬件强大的图形能力实时的完成对Vega场景图的图像处理;具有灵活性,在片元着色器中可进行各种像素操作实现各种图像处理效果,结合顶点着色器还能实现更为复杂的效果;同时也可以用在其它的基于OpenGL的场景图系统。

Description

一种在MultiGen-Vega中对场景图进行实时图像处理的方法
技术领域
本发明属于虚拟现实和视景仿真领域,涉及在基于三维视景仿真软件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)中片元着色器对纹理进行的像素操作是着色器所能够实现的所有像素操作,包括高通滤波、低通滤波、傅里叶变换,所实现的对纹理图像处理包括锐化、模糊、边缘检测、腐蚀和膨胀。
CN 201110230472 2011-08-12 2011-08-12 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 Expired - Fee Related CN102306097B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1890694A (zh) * 2003-12-09 2007-01-03 皇家飞利浦电子股份有限公司 计算机图形处理器及在三维图像显示屏上呈现三维场景的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1890694A (zh) * 2003-12-09 2007-01-03 皇家飞利浦电子股份有限公司 计算机图形处理器及在三维图像显示屏上呈现三维场景的方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
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