CN101477700A - 面向Google Earth与Sketch Up的真三维立体显示方法 - Google Patents

面向Google Earth与Sketch Up的真三维立体显示方法 Download PDF

Info

Publication number
CN101477700A
CN101477700A CNA2009100255175A CN200910025517A CN101477700A CN 101477700 A CN101477700 A CN 101477700A CN A2009100255175 A CNA2009100255175 A CN A2009100255175A CN 200910025517 A CN200910025517 A CN 200910025517A CN 101477700 A CN101477700 A CN 101477700A
Authority
CN
China
Prior art keywords
dimensional
function
stereo
api
matrix
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
Application number
CNA2009100255175A
Other languages
English (en)
Other versions
CN101477700B (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.)
Changshu Zijin Intellectual Property Service Co.,Ltd.
Original Assignee
Nanjing Normal University
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 Nanjing Normal University filed Critical Nanjing Normal University
Priority to CN2009100255175A priority Critical patent/CN101477700B/zh
Publication of CN101477700A publication Critical patent/CN101477700A/zh
Application granted granted Critical
Publication of CN101477700B publication Critical patent/CN101477700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明涉及面向Google Earth与Sketch Up的真三维立体显示方法,该方法包括:在软件的3D API调用和显卡显示之间采用植入式的渲染数据拦截技术,对原始的单通道颜色信号和深度信号、三维场景变换矩阵和投影变换矩阵进行捕获;对这些信息进行解析,重构栅格化的三维数据;基于立体视觉原理,自适应地将该场景重新变换到两个不同的视点位置,形成可供立体显示的双目视觉立体像对,驱动显卡对双目立体像对进行立体输出;利用偏振、红绿和闪闭式眼镜等进行真三维立体显示与观测。本发明可以对现有GoogleEarth与SketchUp软件在不改变程序和操作模式的情况下实现真三维立体化的场景展示。

Description

面向Google Earth与Sketch Up的真三维立体显示方法
技术领域
本发明涉及三维可视化技术领域,具体涉及一种面向Google Earth与Sketch Up软件的植入式真三维立体渲染方法。
背景技术
随着计算机技术的发展,立体显示已经成为环境仿真、模拟训练以及规划设计等领域常用的技术手段,甚至开始与电影、电脑游戏等结合产生立体电影和真三维游戏融入人们的日常生活。虚拟地球软件作为一种重要的三位应用系统,以期丰富的数据,友好的用户体验受到了广泛的关注,Google Earth软件就是其中之一,Google Sketch Up是配合GoogleEarth推出的一个三维快速建模软件,为Google Earth提供地物建模工具。
在三维应用中实现立体视觉是一种潮流,在单一显示设备上观察到立体景物,需要将左、右眼所看到的影像各自独立分开,然后通过特定的外置设备使左右眼看到不同的影像而通过大脑的生理作用形成立体视觉。传统的立体显示需要专业的设备进行立体显示,包括支持左右缓存的显卡和支持双通道显示的立体显示设备。基于上述技术,产生了广为流行的虚拟现实技术,在机器仿真、战场模拟等领域得到了广泛的应用。但是,由于需要专业设备,成本高昂,也限制了立体显示技术的应用,所以立体显示的应用不能得到推广,大量的三维程序还是采用单通道技术进行显示,缺乏立体感,失去了三维程序应有的立体显示特性。同时,由于立体显示需要专门硬件,特殊的编程技巧,也造成了大量的程序在开发时没有考虑立体显示特性,没有在程序中实现支持立体显示的功能,使得这些程序即使在有立体显示功能的硬件上也不能显示立体。这些程序占据了现在三维显示程序的绝大部分,Google Earth与Sketch Up也没有突破上述限制,其在建模过程中,用户还是只能看到单通道的透视三维,不能实现真三维的立体显示,不能达到最佳的应用效果。
发明内容
本发明所要解决的问题在于克服Google Earth与Sketch Up软件(下简称Google软件)在三维显示中存在的不足,实现对原软件不加修改的真三维立体显示。本发明的核心是利用三维渲染的基本原理,通过拦截显卡结果帧图像中颜色数据和深度数据,解析生成结果帧图像的投影变换矩阵,应用三维渲染的基本原理以及重构栅格化的三维场景,在此场景基础上,应用立体视觉原理,生成立体像对,基于不同的立体显示模式,驱动显卡进行立体输出。
本发明依赖的技术基础是Google软件使用的3D API(OpenGL和Direct3D)的三维渲染的基本模型,包括三维渲染流水线,顶点的变换流水线,Z缓冲区算法,在不更改Google软件源代码、二进制代码或计算机硬件结构的情况下,使该计算机软件实现双目视觉的立体真三维显示与观测。
计算机三维显示的基本原理是将三维场景经过几何变换和光照处理以及栅格化之后,生成一幅二维栅格图像在输出设备上输出。三维场景中包含一系列的三维对象,三维对象是由一系列顶点构成的几何图元(包括点,线和三角形)组合而成。顶点是一个包含三维空间位置及其对应的渲染参数的坐标点。首先对顶点数据进行透视坐标变换和光照处理。在坐标变换阶段,描述物体几何形状的顶点被变换到视点为中心的坐标系下,再进行光照计算确定每个顶点应该具有的颜色和亮度。计算机图形学的基本显示单元是像素,这些几何对象被栅格化成像素,最后这些像素被送到帧缓存中等待显示,如图2所示。
在三维图形渲染中存在着一系列的坐标变换,最后将物体本身的坐标变换成二维屏幕上的像素坐标。这些坐标变换都是将上一步变换结果作为输出的,构成一个顶点坐标变换的流水线,如图3所示。所有三维对象的坐标均被统一到了同一个坐标系下,经过投影和裁剪形成规格化的坐标,通过栅格化变换形成图像像素。
Z缓冲区算法又称深度缓冲算法。由于二维平面坐标在透视投影下可以对应无限多个三维坐标。所以栅格化的几何对象包含了每个像素对应的到视点称为深度值的参数,如果栅格化几何对象像素的深度值小于原来像素,就用这个像素的值代替原来位置的值,这就保证了总是距离视点最近的像素被保存下来。
针对以上原理,实现本发明目的的技术方案是:
面向Google Earth与Sketch Up软件的植入式真三维立体渲染方法,该方法包括以下步骤:
步骤(1)针对Google软件使用的3D API(包括OpenGL和Direct3D)进行监控与渲染数据拦截;
步骤(2)利用场景变换矩阵和投影变换矩阵重构栅格化的三维数据;
步骤(3)自适应屏幕分辨率和人的眼基距设定两个不同的视点位置并生成立体像对;
步骤(4)针对不同的立体观察设备进行真三维观测。
本发明的方法具体可用下列步骤实现,下列步骤不分先后:
a.监控创建三维显示环境的函数,在该函数中加入调用3D API的系统检测函数功能,获取系统立体显示特性,根据相应的立体显示特性,更改原始设定的显示环境中的立体显示模式,在支持立体显示的硬件上开启真三维立体显示支持,在不支持立体显示的硬件上,设置标志以便进行红绿立体显示;
b.监控开始一帧绘制的函数,在该函数中加入代码获取当前绘图帧的视口尺寸,根据渲染的像素格式为立体像对创建临时的缓冲区;
c.监控改变当前绘制矩阵的函数,在该函数中加入代码以获取三维应用软件对当前绘制矩阵的更改,通过矩阵参数识别场景渲染的投影类型,当是透视投影时,记录该矩阵,作为三维场景重构的关键参数;
d.监控将帧缓存输出到显示设备的函数,在监控函数加入代码以获取整个帧中各像素的颜色和深度数据,基于步骤c获取的投影变换矩阵信息,反算每个像素在视点坐标系下的三维坐标,重建出基于像素的栅格化的三维场景;根据人眼睛的立体视觉模型,生成可供立体显示的立体像对。
所述步骤(1)中3D API的监控与渲染数据拦截进一步包括:利用API拦截技术,获取三维绘制相关矩阵和三维渲染数据输出,提取实现三维透视变换的投影矩阵、视口宽高,作为三维场景重构的关键参数;利用3D API的特定函数,拦截三维渲染输出,提取显卡帧缓存中的颜色和深度数据,作为三维场景重构的基础。
3D API拦截是指利用计算机编程技术,对Google软件使用的3D API函数调用进行监控,并对3D API产生的渲染数据进行拦截在其中插入自定义代码,达到对原有API进行监控或重新实现的目的。API拦截技术成熟且应用广泛,如屏幕取词软件、反病毒软件、网络防火墙等等。本发明所指的3D API渲染拦截是指拦截特定功能的若干关键3D API函数。
所述步骤(1)中还进一步包括针对其实现3D API函数的拦截的具体步骤:针对Google软件使用的3D API,通过代码注入或/和钩子函数技术编写特定的拦截程序,在三维可视化程序的数据加载阶段,将3D API拦截程序加载到三维可视化程序的进程中,从而拦截和监控3D API调用。本发明所指需要拦截的3D API关键函数如下:
(21)3D API创建三维显示环境的函数;
(22)3D API开始一帧场景渲染的函数;
(23)3D API改变当前渲染矩阵的函数;
(24)3D API结束一帧场景渲染的调用;
(25)3D API将渲染数据输出到当前屏幕上的函数。
所述步骤(2)进一步包括利用3D API输出到显卡帧缓存中的颜色和深度数据,结合拦截3D API调用而获得的投影参数,来解析生成颜色图像和深度数据的三维空间信息。即,通过生成三维渲染输出的投影矩阵和视口宽高,解算出三维渲染关键控制参数(视点位置、近平面、远平面)以及三维渲染输出的颜色和深度数据,进而解算出每个像素在视空间中的三维坐标以及对应的颜色特性,重构视空间下栅格化的三维场景数据。它具体可以包含以下步骤:
I.透视投影变换矩阵的识别。在一帧场景的渲染过程中,三维应用软件可能会多次更改投影变换矩阵,只有透视变换矩阵才可以产生透视三维效果。不失一般性,假设Google软件在一帧的渲染过程中保持一致,将透视投影矩阵拦截下来,将矩阵中的特征值作为判据,判断当前拦截的矩阵是否为透视投影矩阵。
II.建立视点为坐标原点的三维空间坐标系(简称视点坐标系)。以步骤I截获的透视投影变换矩阵为参数,建立以透视点为坐标原点的视图坐标系:Z轴穿过近平面的中心,近平面的Y轴和X轴方向和该坐标系的X轴,Y轴方向一致,近平面位于近平面值对应的Z轴的刻度上。近平面上X的值域是[-width/2,width/2],Y的值域是[-height/2,height/2]。在该坐标系中,任意坐标点P(X,Y,Z)与近平面的交点的坐标值P’(X’,Y’,Z’)可以由透视投影矩阵变换求得,其中Z’对应于帧深度缓存中的深度值。可得:X’等于width/2*X/Z;Y’等于height/2*Y/Z;Z’等于(z-zNear)/z*zFar/(zFar-zNear),其中Z’对应于深度缓存中的值。
III.栅格化三维场景数据的重构。设视口的宽度为width’、高度为height’,可由3DAPI相关函数获得。由视口和近平面的比例关系可知任意三维渲染帧图像像素点的坐标P”’(X”’,Y”’)对应于近平面上的三维坐标Pn(xn,yn,zn),其中xn=(X”’-width’/2)*width/2,yn=(Y”’-height’/2)*height/2。对应的深度缓存中的值Z’,由步骤II可知,对应的视点坐标系下Z值为Z’*(zFar-zNear)/zFar+zNear,可得像素点在视点坐标系下的坐标P(X,Y,Z),其中X等于xNear/zNear*Z,Y等于yNear/zNear*Z。
通过调用3D API的读取显卡中颜色缓冲区函数和深度缓冲区函数,利用步骤II中建立的坐标系以及上述关系,可以获得视点坐标系下所有像素点的三维坐标。将所有的三维坐标用三角形面片连接起来,就构成了一个可进行三维渲染的立体表面,该表面通过三维流水线,在任意视角下进行渲染。
所述步骤(3)中“设定两个不同的视点位置并生成立体像对”是利用步骤(2)重构的三维场景,生成两幅影像,形成立体像对。本发明提出基于“立体像素”的三维场景的立体显示模型,所谓立体像素是指将步骤(2)重构的三维场景的每个像素与其对应视点空间的三维坐标一起组成序列[(X,Y,Z),(R,G,B)],构成的一个三维像素空间。针对该空间中的每个像素,按照透视变换原理,计算出其在新视点的像素位置点。
生成立体像对可采用下列两种方法:
方法一.调用3D API,渲染步骤(2)中获得的场景数据,在原始图像作为左视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对生成。
方法二.采用栅格化三维场景数据,构建原始视空间与目标视空间下像素的映射关系,将原始视空间下的像素直接变换到目标视空间下。在原始图像作为左视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对快速生成。其中:
视点水平偏移,是指新视点距离原始视点在X轴方向上的改变量Dx
视点垂直偏移,是指新视点距离原始视点在Z轴方向上的改变量Dz
图像像素偏移,是指生成的图像像素水平方向的附加偏移Dpixel
则在另一的视点坐标系下,对原始帧图像中点P(X,Y,Z)的像素标在左视点下的坐标X是Width’*(X-Dx)/(Z-Dz)+Dpixel,Y是Height’*Y/(Z-Dz)。该像素在对于右视点坐标系下,坐标按照上述方法计算,但Dx,Dz取负号。
将每个像素的颜色复制到目标位置。对两个视点都应用该方法从而获得立体像对。该方法具有不经过图形流水线,程序编制简单,优化容易等优点。
所述步骤(4)中“针对不同的立体观察设备进行真三维观测”是指将步骤(3)生成的立体像对,通过显示设备输出并进行立体观察。本发明生成的立体像对通过如下方式进行真三维显示:
x.显卡支持的双目立体显示。如在支持立体显示的OpenGL API环境下,在创建设备句柄阶段启动OpenGL API的立体显示模式,将生成的立体像对分别输送到左右两个缓冲区中,实现立体显示。
y.在不支持立体显示的显卡上,将立体像对合成为一幅红绿互补色立体图像,从左右立体像对中的一个图像提取红色通道,另一个图像中提取绿色和蓝色通道,将提取的通道融合,形成一个互补色的立体图像。并送回原始的图像缓冲区进行立体显示与观测。
z.将立体图像或像对输送到其他支持立体显示设备上。
本发明旨在解决Google软件不能支持立体显示的问题,依靠成熟的代码拦截技术拦截在Google软件对于的3D API调用进行重新编排。通过监控投影矩阵,获取反算三维场景的关键参数,通过绘制的颜色图像和深度图像,逐象素的反求其三维坐标,并将像素值映射到对应的位置上,形成立体像对。通过各种显示模式进行立体显示,本发明也为现有的大量三维程序的直接立体化提供了一条可行的途径。本发明具有如下特色:
(1)解决了在Google软件不能进行立体显示的问题,提升了在Google软件的交互和用户体验。
(2)实现的算法新颖,通过帧缓冲区中的颜色图像数据和深度数据经过重新分配形成立体像对,算法原理简单,编程实现方便。
(3)充分利用了现有的技术资源,由于基于工业标准的3D API开发,具有良好的适应性,对于显卡没有特殊要求。支持多种显示模式,可以在任意显示环境下实现立体显示。
附图说明
图1本发明实施例1的方法流程图
图2本发明采用的三维渲染的基本模式
图3本发明采用的三维图形的坐标变换流水线
图4本发明实施例1的透视投影与透视变换矩阵
图5本发明实施例1的以视点为中心的坐标系
图6本发明实施例1的立体像对的快速生成方法图
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
实施例1
如图2和图3所示,Google Earth使用两种3D API,一种是OpenGL,一种是Direct3D,在建模阶段Google SketchUp支持OpenGL API,操作系统平台为Windows XP进行实施。
本实施例采用OpenGL API做为实施对象。
如图1所示,面向Google Earth与Sketch Up软件的植入式真三维立体渲染方法,该方法包括以下步骤:
步骤(1)针对Google Earth与Sketch Up使用的OpenGL API进行监控与渲染数据拦截;
步骤(2)利用场景变换矩阵和投影变换矩阵重构栅格化的三维数据;
步骤(3)自适应屏幕分辨率和人的眼基距设定两个不同的视点位置并生成立体像对;
步骤(4)针对不同的立体观察设备进行真三维观测。
步骤(1)中OpenGL API的拦截与获取场景渲染数据进一步包括:利用OpenGL API拦截技术,获取三维绘制相关矩阵和三维渲染数据,提取实现三维透视变换的投影矩阵、视口宽高,作为三维场景重构的关键参数;利用Open GLAPI的特定函数,拦截三维渲染输出,提取显卡帧缓存中的颜色和深度数据,作为三维场景重构的基础。
步骤(2)进一步包括利用OpenGL API输出到显卡帧缓存中的颜色和深度数据,结合拦截OpenGL API调用而获得的投影参数,来解析生成颜色图像和深度数据的三维空间信息。它进一步包含以下步骤:
I.透视投影变换矩阵的识别。在一帧场景的渲染过程中,三维应用软件可能会多次更改投影变换矩阵,只有透视变换矩阵才可以产生透视三维效果。不失一般性,假设透视投影变换矩阵在一帧的渲染过程中保持一致。透视投影的各项控制参数与对应的矩阵关系见附图4所示。将透视投影矩阵拦截下来,将矩阵中的特征值作为判据,判断当前拦截的矩阵是否为透视投影矩阵。
II.建立视点为坐标原点的三维空间坐标系(简称视点坐标系)。以步骤I截获的透视投影变换矩阵为参数,建立以透视点为坐标原点的视图坐标系:Z轴穿过近平面的中心,近平面的Y轴和X轴方向和该坐标系的X轴,Y轴方向一致,近平面位于近平面值对应的Z轴的刻度上。近平面上X的值域是[-width/2,width/2],Y的值域是[-height/2,height/2]。在该坐标系中,任意坐标点P(X,Y,Z)与近平面的交点的坐标值P’(X’,Y’,Z’)可以由透视投影矩阵变换求得,其中Z’对应于帧深度缓存中的深度值,如附图5所示。可得:X’等于width/2*X/Z;Y’等于height/2*Y/Z;Z’等于(z-zNear)/z*zFar/(zFar-zNear),其中Z’对应于深度缓存中的值。
III.栅格化三维场景数据的重构。设视口的宽度为width’、高度为height’,可由OpenGL API相关函数获得。由视口和近平面的比例关系可知任意三维渲染帧图像像素点的坐标P”’(X”’,Y”’)对应于近平面上的三维坐标Pn(xn,yn,zn),其中xn=(X”’-width’/2)*width/2,yn=(Y”’-height’/2)*height/2。对应的深度缓存中的值Z’,由b可知,对应的视点坐标系下Z值为Z’*(zFar-zNear)/zFar+zNear,可得像素点在视点坐标系下的坐标P(X,Y,Z),其中X等于xNear/zNear*Z,Y等于yNear/zNear*Z。
通过调用OpenGL API的读取显卡中颜色缓冲区函数和深度缓冲区函数,利用步骤II中建立的坐标系以及上述关系,可以获得视点坐标系下所有像素点的三维坐标。将所有的三维坐标用三角形面片连接起来,就构成了一个可进行三维渲染的立体表面,该表面通过三维流水线,在任意视角下进行渲染。
步骤(3)利用步骤(2)重构的三维场景,生成两幅影像,形成立体像对。生成立体像对可采用下列两种方法:
方法一.调用OpenGL,渲染步骤(2)中获得的场景数据,在原始图像作为左视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对生成。
方法二.采用栅格化三维场景数据,构建原始视空间与目标视空间下像素的映射关系,将原始视空间下的像素直接变换到目标视空间下。在原始图像作为左视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对快速生成。其中:
视点水平偏移,是指新视点距离原始视点在X轴方向上的改变量Dx
视点垂直偏移,是指新视点距离原始视点在Z轴方向上的改变量Dz
图像像素偏移,是指生成的图像像素水平方向的附加偏移Dpixel
则在另一的视点坐标系下,对原始帧图像中点P(X,Y,Z)的像素标在左视点下的坐标X是Width’*(X-Dx)/(Z-Dz)+Dpixel,Y是Height’*Y/(Z-Dz)。该像素在对于右视点坐标系下,坐标按照上述方法计算,但Dx,Dz取负号。
将每个像素的颜色复制到目标位置。对两个视点都应用该方法从而获得立体像对。该方法具有不经过图形流水线,程序编制简单,优化容易等优点。
步骤(4)将步骤(3)生成的立体像对,通过显示设备输出并进行立体观察。本发明生成的立体像对通过如下方式进行真三维显示:
x.显卡支持的双目立体显示。如在支持立体显示的OpenGL环境下,在创建设备句柄阶段启动OpenGL的立体显示模式,将生成的立体像对分别输送到左右两个缓冲区中,实现立体显示。或
y.在不支持立体显示的显卡上,将立体像对合成为一幅红绿互补色立体图像,从左右立体像对中的一个图像提取红色通道,另一个图像中提取绿色和蓝色通道,将提取的通道融合,形成一个互补色的立体图像。并送回原始的图像缓冲区进行立体显示与观测。或
z.将立体图像或像对输送到其他支持立体显示设备上。
下面的实施过程是上述方法的具体软件编码过程。
本实施例采用基于OpenGL 3D API做为实施对象,操作系统平台为Windows XP进行实施。
Open API的拦截与监控基于Micorsoft Detours SDK开发。
Detours是Microsoft提供的一套Windows平台下进行API调用拦截的开发包,支持Win32所有平台。
1.基于Detours API,在Windows XP平台下基于Visual Studio 2005建立基于基于C++语言的Win32DLL工程StereoDriver_Goolge_OpenGL作为拦截代码框架。
2.在StereoDriver_Goolge_OpenGL中定义一个数据结构OpenGL_Stereo,该数据结构包含如下内容:
a.Windows绘图上下文变量hDC,类型HDC;
b.OpenGL渲染上下文变量hGLRC,类型HGLRC;
c.记录当前硬件是否支持立体显示的变量IsStereoSupport,类型bool;
d.记录视口宽高的变量width,height,类型int;
e.缓存颜色数据的变量ColorBuffer,类型GLbyte*;
f.缓存深度数据的变量DepthBuffer,类型GLfloat;
g.记录当前变换矩阵模式的变量MatrixMode,类型GLMatrixMode
h.记录当前透视投影矩阵的变量Matrix,类型GLfloat[4][4]
i.创建一个全局的链表gOpenGL_Stereos保存OpenGL_Stereo结构的指针。
j.创建一个全局的OpenGL_Stereo指针ActiveOpenGL_Stereo,初始化为NULL。
3.基于Detours API实现对如下函数的监控:
1)wglCreateContext
wglCreateContext根据应用程序的设置,创建一个相应的OpenGL的渲染上下文。创建监控函数My_wglCreateContext,在wglCreateContext中实现如下功能:
解析wglCreateContext的参数,判断用户程序是否使用PFD_STEREO标记启动双通道立体渲染支持,如果用户程序启动立体渲染支持,则说明用户程序本身支持立体渲染。
如果用户程序没有启动立体渲染支持,则表明用户程序不支持立体渲染,询问用户是否启动植入式立体支持。
如果用户选择启用植入是立体支持,创建OpenGL_Stereo结构,并保存在一个包含OpenGLStereo结构指针的全局列表中,并初始化。使用wglChoosePixelFormat函数和PF_STEREO标记查询当前显卡是否支持立体显示。如果支持立体显示则将OpenGLStereo的IsStereoSupport设置为true,否则设置为false。
使用原始的wglCreateContext创建HGLRC,并在OpenGLStereo中记录对应的HDC和HGLRC,将OpenGLStereo结构加入到gOpenGL_Stereos中。
2)wglMakeCurrent
wglMakeCurrent在若干OpenGL渲染上下文中选择一个做为当前活动的,一般在wglMakeCurrent之后开始和结束一帧的绘制。创建监控函数My_wglMakeCurrent,在My_wglMakeCurrent中实现如下功能:当HDC参数和HGLRC参数不为NULL时,从gOpenGL_Stereos中用这两个参数查找对应hDC和hGLRC的OpenGL_Stereo结构,并赋值给ActiveOpenGL_Stereo变量。如果两个参数均为NULL,则将ActiveOpenGL_Stereo赋值为NULL。
调用原始的wglMakeCurrent。
3)glViewport
glViewport将当前活动的OpenGL渲染上下文的视口设置到指定位置和尺寸。创建监控函数My_glViewport,在My_glViewport中实现如下功能:
如果ActiveOpenGL_Stere不为空,则判断新的视口宽高是否和ActiveOpenGL_Stereo中的width,height相等。如果不相等释放OpenGL_Stereo中原有的ColorBuffer和DepthBuffer内存;根据视口的宽高创建颜色缓存区ColorBuffer和深度缓存区DepthBuffer;记录新的width和height。
调用原始的glViewport。
4)glMatrixMode
glMatrixMode设置当前活动OpenGL渲染上下文的活动矩阵模型。创建监控函数My_glMatrixMode,在My_glMatrixMode中实现如下功能:
如果ActiveOpenGL_Stereo不为空,则将ActiveOpenGL_Stere的MatrixMode设置为glMatrixMode的参数。
调用原始的glMatrixMode。
5)glLoadMatrixd,glLoadMatrixf
glLoadMatrix为活动的OpenGL渲染上下的当前矩阵模式设置矩阵。创建监控函数My_glMLoadMatrix,在My_glLoadMatrix中实现如下功能:
如果ActiveOpenGL_Stereo不为空,且其变量MatrixMode等于GL_PROJECTION,则记录该函数的m变量到ActiveOpenGL_Stere的Matrix中。
调用原始的glLoadMatrix函数。
6)SwapBuffers
该函数将OpenGL渲染的一帧从显存输出到显示设备上。创建监控函数My_SwapBuffers,在该函数中实现如下功能:
如果ActiveOpenGL_Stereo不为空,调用glReadPixels函数,以GL_RGB从颜色缓冲区中读取颜色到ActiveOpenGL_Stereo的ColorBuffer变量;调用glReadPixels函数以GL_DEPTH_COMPONENT参数,读取深度值到ActiveOpenGL_Stereo的DepthBuffer中。
从ActiveOpenGL_Stereo的Matrix变量中获得透视投影的近平面的宽度width,高度height,以及近平面的zNear和远平面zFar。
根据ActiveOpenGL_Stereo中记录的视口的宽度ViewPortWidth和ViewPortHeight,创建临时的颜色缓冲区,ColorBufferLeft和ColorBufferRight。
从用户设置中获得视点偏移Dx,深度偏移Dz和像素偏移Dpixel。建立一个循环,对每个ColorBuffer像素,取出对应的像素坐标iX,iY以及颜色RGB以及对应的DepthBuffer中的深度值。利用本发明设计的方法,像素对应的视点坐标系中的坐标P(X,Y,Z)。对左眼以Dx,Dz,Dpixel为参数。使用本发明设计的快速立体像对生成算法,计算P对应的像素坐标PLeft。对右眼以-Dx,-Dz,-Dpixel为参数,使用本发明设计的快速立体像对生成算法,计算P对应的右像素坐标Pright。将当前像素的颜色分别赋值给ColorBufferLeft的PLeft位置,和ColorBufferRight的Pright位置。
判断ActiveOpenGL_Stere的IsStereoSupport是否为真。如果为真,调用glDrawPixels分别将ColorBufferLeft和ColorBufferRight中的内容拷贝到GL_BACK_LEFT和GL_BACK_RIGT中。否则,将ColorBufferRight中的G,B通道赋值到ColorBufferLeft对应像素的G,B通道上去,形成一幅红绿立体,将ColorBufferLeft的内容拷贝到GL_BACK中。
调用原始的SwapBuffer。
4.编译StereoDriver_Goolge_OpenGL工程,生成StereoDriver_Goolge_OpenGL.DLL文件。
5.将StereoDriver_Goolge_OpenGL.DLL文件通过detours SDK的withdll.Exe命令行启动所需程序。
实施例2
本实施例采用基于Direct3D 9做为实施对象,操作系统平台为Windows XP进行实施。
如图1所示,面向Google Earth的植入式真三维立体渲染方法,该方法包括以下步骤:
步骤(1)针对Google Earth使用的Direct3D API进行监控与渲染数据拦截;
步骤(2)利用场景变换矩阵和投影变换矩阵重构栅格化的三维数据;
步骤(3)自适应屏幕分辨率和人的眼基距设定两个不同的视点位置并生成立体像对;
步骤(4)针对不同的立体观察设备进行真三维观测。
下面的实施过程是上述方法的具体软件编码过程。
Direct3D 9的拦截与监控基于Micorsoft Detours SDK开发。Detours是Microsoft提供的一套Windows平台下进行API调用拦截的开发包,支持Win32所有平台。
1.基于Detours API,在Windows XP平台下基于Visual Studio 2005建立基于基于C++语言的Win32 DLL工程StereoDriver_Goolge_D3D作为拦截代码框架。
2.在StereoDriver_Goolge_D3D中定义一个数据结构D3D_Stereo,该数据结构包含如下内容:
1)Windows的窗口变量hWnd,类型HWND;
2)Direct3D的设备接口指针,pDevice,类型IDirect3DDevice9;
3)记录视口宽高的变量width,height,类型int;
4)缓存颜色数据的变量ColorBuffer,类型BYTE*;
5)缓存深度数据的变量DepthBuffer,类型float;
6)记录当前矩阵模式的变量MatrixMode,类型D3DTRANSFORMSTATETYPE;
7)记录当前透视投影矩阵的变量Matrix,类型D3DMATRIX;
8)创建一个全局的链表gD3D_Stereos保存D3D_Stereo结构的指针。
9)创建一个全局的D3D_Stereo指针,ActiveD3D_Stereo,初始化为NULL。
3.基于Detours API实现对如下函数的监控:
1)Direct3DCreate9
Direct3DCreate9是Direct3D9的主入口,创建一个IDirect3D9的指针。创建监控函数My_Direct3DCreate9,实现如下功能:
当用户第一次调用该函数时,利用Detours监控IDirect3D9的CreateDevice函数。
调用原始的Direct3DCreate9函数。
2)Direct3DDevice9的CreateDevice函数
CreateDevice用以创建一个Direct3D设备。创建监控函数My_IDirect3DDevice9_CreateDevice,实现如下功能:
询问用户是否启用立体支持,如果选择是,判断用户使用的深度格式,确保其为可锁定读取的模式;
执行原始的CreateDevice,得到一个IDirect3DDevice9指针。
如果用户选择启动立体,创建一个D3D_Stereo,将参数中的pDevice用IDirect3DDevice9指针赋值,将D3D_Stereo加入gD3D_Stereos。
监控IDirect3DDevice9如下函数。
3)IDirect3DDevice9的BeginScene函数
BeginScene开始一帧的绘制。创建监控函数My_IDirect3DDevice9_BeginScene在其中实现如下功能:
根据传入的IDirect3DDevice9指针,在gD3D_Stereos中找到与当前设备相同的,将其赋值给ActiveD3D_Stereo。如果没有相同的则设置为NULL。
调用原始的BeginScene。
4)IDirect3DDevice9的SetViewport
SetViewport将当前活动的IDirect3DDevice9渲染上下文的视口设置到指定位置和尺寸。创建监控函数My_IDirect3DDevice9_SetViewport,在My_glViewport中实现如下功能:
如果ActiveD3DL_Stereo不为空,则判断新的视口宽高是否和ActiveD3D_Stereo中的width,height相等。如果不相等释放ActiveD3D_Stereo中原有的ColorBuffer和DepthBuffer内存。根据视口的宽高创建颜色缓冲区ColorBuffer和深度缓存数据DepthBuffer。
调用原始的SetViewport。
5)IDirect3DDevice9的SetTransform
SetTransform设置指定的矩阵。创建监控函数My_IDirect3DDevice9_SetTransform,实现如下功能:
如果ActiveD3D_Stereo不为空,判断矩阵类型参数是否是D3DTS_PROJECTION,如果是根据本发明所指判定条件,如果为透视投影矩阵,则记录到ActiveD3D_Stereo的变量中。
调用原始的SetTransform。
6)IDirect3DDevice9的Present函数
该函数将Direct3D渲染的一帧图像输出到屏幕上。创建监控函数My_IDirect3DDevice9_Present,在该函数中实现如下功能:
如果ActiveD3D_Stereo不为空,调用IDirect3DDevice9的GetBackSurfaceData函数,从颜色缓冲区中读取颜色图像到ActiveD3D_Stereo的ColorBuffer变量;调用GetDepthData函数以读取深度值到ActiveD3D_Stereo的DepthBuffer中。
从ActiveD3D_Stereo的Matrix变量中获得透视投影的近平面的宽度width,高度height,以及近平面的zNear和远平面zFar。
根据ActiveD3D_Stereo视口的宽度ViewPortWidth和ViewPortHeight,创建临时的颜色缓冲区,ColorBufferLeft和ColorBufferRight。
从用户设置中获得视点偏移Dx,深度偏移Dz和像素偏移Dpixel.
建立一个循环,对每个ColorBuffer像素,取出对应的像素坐标iX,iY以及颜色RGB以及对应的DepthBuffer中的深度值。利用本发明设计的方法,像素对应的视点坐标系中的坐标P(X,Y,Z)。对左眼使用Dx,Dz,Dpixel为参数。使用本发明设计的快速立体像对生成算法,计算P对应的像素坐标PLeft。对右眼使用-Dx,-Dz,-Dpixel为参数,使用本发明设计的快速立体像对生成算法,计算P对应的像素坐标Pright。将当前像素的颜色分别赋值给ColorBufferLeft的PLeft位置,和ColorBufferRight的Pright位置。
由于Direct3D9不支持立体显示模式,从ColorBufferLeft中抽取红色通道,ColorBufferRight中抽取蓝色和绿色通道,组成红绿立体图片,输出到屏幕。
4.编译StereoDriver_Goolge_D3D工程,生成StereoDriver_Goolge_D3D.DLL文件
5.将StereoDriver_Goolge_D3D.DLL文件通过detours SDK的withdll.Exe命令行启动Google Earth程序。
实施例3
一种面向Google Earth与Sketch Up软件的植入式真三维立体渲染方法,包括以下具体内容:
a.监控创建三维显示环境的函数,在该函数中加入调用3D API的系统检测函数功能,获取系统立体显示特性,根据相应的立体显示特性,更改原始设定的显示环境中的立体显示模式,在支持立体显示的硬件上开启真三维立体显示支持,在不支持立体显示的硬件上,设置标志以便进行红绿立体显示;
b.监控开始一帧绘制的函数,在该函数中加入代码获取当前绘图帧的视口尺寸,根据渲染的像素格式为立体像对创建临时的缓冲区;
c.监控改变当前绘制矩阵的函数,在该函数中加入代码以获取三维应用软件对当前绘制矩阵的更改,通过矩阵参数识别场景渲染的投影类型,当是透视投影时,记录该矩阵,作为三维场景重构的关键参数;
d.监控将帧缓存输出到显示设备的函数,在监控函数加入代码以获取整个帧中各像素的颜色和深度数据,基于步骤c获取的投影变换矩阵信息,反算每个像素在视点坐标系下的三维坐标,重建出基于像素的栅格化的三维场景;根据人眼睛的立体视觉模型,生成可供立体显示的立体像对。

Claims (10)

1、一种面向Google Earth与Sketch Up的真三维立体显示方法,其特征是,该方法包括以下步骤:
步骤(1)针对Google Earth与Sketch Up使用的3D API进行监控与渲染数据拦截;
步骤(2)利用场景变换矩阵和投影变换矩阵重构栅格化的三维数据;
步骤(3)自适应屏幕分辨率和人的眼基距设定两个不同的视点位置并生成立体像对;
步骤(4)针对不同的立体观察设备进行真三维观测。
2、根据权利要求1所述的真三维立体渲染方法,其特征是,所述真三维立体渲染方法进一步包括下列步骤下列步骤不分先后:
a.监控创建三维显示环境的函数,在该函数中加入调用3D API的系统检测函数功能,获取系统立体显示特性,根据相应的立体显示特性,更改原始设定的显示环境中的立体显示模式,在支持立体显示的硬件上开启真三维立体显示支持,在不支持立体显示的硬件上,设置标志以便进行红绿立体显示;
b.监控开始一帧绘制的函数,在该函数中加入代码获取当前绘图帧的视口尺寸,根据渲染的像素格式为立体像对创建临时的缓冲区;
c.监控改变当前绘制矩阵的函数,在该函数中加入代码以获取三维应用软件对当前绘制矩阵的更改,通过矩阵参数识别场景渲染的投影类型,当是透视投影时,记录该矩阵,作为三维场景重构的关键参数;
d.监控将帧缓存输出到显示设备的函数,在监控函数加入代码以获取整个帧中各像素的颜色和深度数据,基于步骤c获取的投影变换矩阵信息,反算每个像素在视点坐标系下的三维坐标,重建出基于像素的栅格化的三维场景;根据人眼睛的立体视觉模型,生成可供立体显示的立体像对。
3、根据权利要求1所述的真三维立体渲染方法,其特征是,所述步骤(1)中3D API的监控与渲染数据拦截进一步包括:利用API拦截技术,获取三维绘制相关矩阵和三维渲染数据输出,提取实现三维透视变换的投影矩阵、视口宽高,作为三维场景重构的关键参数;利用3D API的特定函数,拦截三维渲染输出,提取显卡帧缓存中的颜色和深度数据,作为三维场景重构的基础。
4、根据权利要求1所述的真三维立体渲染方法,其特征是,所述步骤(1)中还进一步包括针对其实现3D API函数的拦截的具体步骤:通过代码注入或/和钩子函数技术编写特定的拦截程序,在三维可视化程序的数据加载阶段,将3D API拦截程序加载到三维可视化程序的进程中,从而拦截和监控3D API调用。
5、根据权利要求1所述的真三维立体渲染方法,其特征是,所述步骤(2)进一步包括下列步骤:通过生成三维渲染输出的投影矩阵和视口宽高,解算出三维渲染关键控制参数以及三维渲染输出的颜色和深度数据,进而解算出每个像素在视空间中的三维坐标以及对应的颜色特性,重构视空间下栅格化的三维场景数据。
6、根据权利要求1所述的真三维立体渲染方法,其特征是,所述步骤(2)进一步包含以下步骤:
I.透视投影变换矩阵的识别:假设透视投影变换矩阵在一帧的渲染过程中保持一致,将透视投影矩阵拦截下来,将矩阵中的特征值作为判据,判断当前拦截的矩阵是否为透视投影矩阵;
II.建立视点为坐标原点的三维空间坐标系:以步骤I截获的透视投影变换矩阵为参数,建立以透视点为坐标原点的视图坐标系:Z轴穿过近平面的中心,近平面的Y轴和X轴方向和该坐标系的X轴,Y轴方向一致,近平面位于近平面值对应的Z轴的刻度上;近平面上X的值域是[-width/2,width/2],Y的值域是[-height/2,height/2];在该坐标系中,任意坐标点P(X,Y,Z)与近平面的交点的坐标值P’(X’,Y’,Z’)由透视投影矩阵变换求得,其中Z’对应于帧深度缓存中的深度值,X’=width/2*X/Z;Y’=height/2*Y/Z;Z’=(z-zNear)/z*zFar/(zFar-zNear),其中Z’对应于深度缓存中的值;
III.栅格化三维场景数据的重构:设视口的宽度为width’、高度为height’,任意三维渲染帧图像像素点的坐标P”’(X”’,Y”’)对应于近平面上的三维坐标Pn(xn,yn,zn),其中xn=(X”’-width’/2)*width/2,yn=(Y”’-height’/2)*height/2;对应的深度缓存中的值Z’,对应的视点坐标系下Z=Z’*(zFar-zNear)/zFar+zNear,像素点在视点坐标系下的坐标为P(X,Y,Z),其中X=xNear/zNear*Z,Y=yNear/zNear*Z;将所有的三维坐标用三角形面片连接起来,就构成了一个可进行三维渲染的立体表面。
7、根据权利要求1所述的真三维立体渲染方法,其特征是,所述步骤(3)中生成立体像的方法是:调用3D API,渲染所述步骤(2)中获得的场景数据,在原始图像作为左视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对生成。
8、根据权利要求1所述的真三维立体渲染方法,其特征是,所述步骤(3)中生成立体像的方法是:采用栅格化三维场景数据,构建原始视空间与目标视空间下像素的映射关系,将原始视空间下的像素直接变换到目标视空间下;在原始图像作为左视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对快速生成。
9、根据权利要求1所述的真三维立体渲染方法,其特征是,所述步骤(4)中针对不同的显示与观测设备,进行立体显示与观测,包括
x.在支持立体显示的设备上,将立体像对分别输出到显卡左右两个通道,进行立体显示;或
y.在不支持立体显示的设备上,将立体像对中,一个图像提取红色通道,另一个图像提取绿色和蓝色通道,将提取的通道融合,形成一个互补色的立体图像,并支持红绿眼镜观察;或
z.将立体图像或像对输送到其他支持立体显示设备上。
10、根据权利要求1所述的真三维立体渲染方法,其特征是,所述3D API函数的拦截包括:
(21)3D API创建三维显示环境的函数;
(22)3D API开始一帧场景渲染的函数;
(23)3D API改变当前渲染矩阵的函数;
(24)3D API结束一帧场景渲染的函数;
(25)3D API将渲染数据输出到当前屏幕上的函数。
CN2009100255175A 2009-02-06 2009-02-06 面向Google Earth与Sketch Up的真三维立体显示方法 Active CN101477700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100255175A CN101477700B (zh) 2009-02-06 2009-02-06 面向Google Earth与Sketch Up的真三维立体显示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100255175A CN101477700B (zh) 2009-02-06 2009-02-06 面向Google Earth与Sketch Up的真三维立体显示方法

Publications (2)

Publication Number Publication Date
CN101477700A true CN101477700A (zh) 2009-07-08
CN101477700B CN101477700B (zh) 2011-04-27

Family

ID=40838408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100255175A Active CN101477700B (zh) 2009-02-06 2009-02-06 面向Google Earth与Sketch Up的真三维立体显示方法

Country Status (1)

Country Link
CN (1) CN101477700B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222311A (zh) * 2011-06-14 2011-10-19 东方电子股份有限公司 基于Google Earth遥感影像的配电网地理信息获取方法
CN102722376A (zh) * 2012-06-25 2012-10-10 苏州科达科技有限公司 基于视频监控绘图的二次编解码方法及其装置
CN103577576A (zh) * 2013-11-07 2014-02-12 江南大学 一种感知数据的三维可视化析取方法及系统
CN103905807A (zh) * 2012-12-27 2014-07-02 深圳市快播科技有限公司 一种将二维视频转换为三维视频的方法和装置
WO2015196791A1 (zh) * 2014-06-27 2015-12-30 北京大学深圳研究生院 双目三维图形渲染方法及相关系统
CN105513118A (zh) * 2015-11-26 2016-04-20 北京像素软件科技股份有限公司 一种体素化游戏世界的渲染方法
CN105809733A (zh) * 2016-03-10 2016-07-27 江苏工程职业技术学院 基于SketchUp 的校园三维手绘地图构建方法
CN106201402A (zh) * 2016-07-11 2016-12-07 西安木牛能源技术服务有限公司 适配计算机及输出设备性能数据的3d模型推送方法
CN107277483A (zh) * 2017-05-11 2017-10-20 深圳市冠旭电子股份有限公司 一种虚拟现实显示方法、装置及虚拟现实眼镜
CN110321193A (zh) * 2019-05-05 2019-10-11 四川盛趣时代网络科技有限公司 一种基于Direct3D共享纹理的交互方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475891B (zh) * 2013-09-08 2015-08-19 云南师范大学 Google Earth在双屏幕立体显示系统中的立体变换及显示方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3820390B2 (ja) * 2002-08-26 2006-09-13 株式会社アイキャット 人工歯根埋入位置算出方法、人工歯根埋入位置算出装置、コンピュータプログラム及び記録媒体
AU2003902983A0 (en) * 2003-06-13 2003-06-26 Angeline Ingrid Bartholomeusz Viral polymerase and modulation thereof
CN1318000C (zh) * 2004-03-18 2007-05-30 西安交通大学 基于快速成型和立体编织的人工骨仿生制造工艺
CN100529062C (zh) * 2004-04-09 2009-08-19 华东理工大学 三维立体培养和诱导骨髓间充质干细胞成软骨细胞的方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222311A (zh) * 2011-06-14 2011-10-19 东方电子股份有限公司 基于Google Earth遥感影像的配电网地理信息获取方法
CN102722376A (zh) * 2012-06-25 2012-10-10 苏州科达科技有限公司 基于视频监控绘图的二次编解码方法及其装置
CN102722376B (zh) * 2012-06-25 2015-04-08 苏州科达科技股份有限公司 基于视频监控绘图的二次编解码方法及其装置
CN103905807A (zh) * 2012-12-27 2014-07-02 深圳市快播科技有限公司 一种将二维视频转换为三维视频的方法和装置
CN103577576B (zh) * 2013-11-07 2016-08-31 江南大学 一种感知数据的三维可视化析取系统
CN103577576A (zh) * 2013-11-07 2014-02-12 江南大学 一种感知数据的三维可视化析取方法及系统
CN105224288B (zh) * 2014-06-27 2018-01-23 北京大学深圳研究生院 双目三维图形渲染方法及相关系统
CN105224288A (zh) * 2014-06-27 2016-01-06 北京大学深圳研究生院 双目三维图形渲染方法及相关系统
WO2015196791A1 (zh) * 2014-06-27 2015-12-30 北京大学深圳研究生院 双目三维图形渲染方法及相关系统
CN105513118A (zh) * 2015-11-26 2016-04-20 北京像素软件科技股份有限公司 一种体素化游戏世界的渲染方法
CN105513118B (zh) * 2015-11-26 2018-07-10 北京像素软件科技股份有限公司 一种体素化游戏世界的渲染方法
CN105809733A (zh) * 2016-03-10 2016-07-27 江苏工程职业技术学院 基于SketchUp 的校园三维手绘地图构建方法
CN106201402A (zh) * 2016-07-11 2016-12-07 西安木牛能源技术服务有限公司 适配计算机及输出设备性能数据的3d模型推送方法
CN107277483A (zh) * 2017-05-11 2017-10-20 深圳市冠旭电子股份有限公司 一种虚拟现实显示方法、装置及虚拟现实眼镜
CN107277483B (zh) * 2017-05-11 2019-05-14 深圳市冠旭电子股份有限公司 一种虚拟现实显示方法、装置及虚拟现实眼镜
CN110321193A (zh) * 2019-05-05 2019-10-11 四川盛趣时代网络科技有限公司 一种基于Direct3D共享纹理的交互方法及系统

Also Published As

Publication number Publication date
CN101477700B (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
CN101477700B (zh) 面向Google Earth与Sketch Up的真三维立体显示方法
CN101477701B (zh) 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法
CN101477702B (zh) 计算机显卡的植入式真三维立体驱动方法
CN101635061B (zh) 基于人眼立体视觉机制的自适应立体渲染方法
US10217259B2 (en) Method of and apparatus for graphics processing
CN102819855B (zh) 二维图像的生成方法及装置
CN101540056B (zh) 面向ERDAS Virtual GIS的植入式真三维立体渲染方法
CN101521828B (zh) 面向esri三维gis模块的植入式真三维立体渲染方法
CN106204746A (zh) 一种可实现3d模型实时上色的增强现实系统
CN101511034A (zh) 面向Skyline的真三维立体显示方法
Gimeno et al. Multiuser augmented reality system for indoor exhibitions
CN101488229B (zh) 面向pci三维分析模块的植入式真三维立体渲染方法
CN101482978B (zh) 面向envi/idl的植入式真三维立体渲染方法
CN101488230B (zh) 面向VirtualEarth的真三维立体显示方法
CN101488232B (zh) 面向C Tech软件的植入式真三维立体显示方法
CN101561935B (zh) 面向GoCAD软件的植入式三维立体显示方法
CN116958344A (zh) 虚拟形象的动画生成方法、装置、计算机设备及存储介质
CN101561936B (zh) 面向GeoGlobe的真三维立体显示方法
CN101482977B (zh) 面向Microstation的植入式真三维立体显示方法
CN101488231B (zh) 面向Creator软件的植入式真三维立体显示方法
CN113313796A (zh) 场景生成方法、装置、计算机设备和存储介质
KR101227183B1 (ko) 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법
Tao A VR/AR-based display system for arts and crafts museum
Schmidt Blended Spaces: Perception and Interaction in Projection-Based Spatial Augmented Reality Environments
KR20130117074A (ko) 무안경 3d vr 엔진 개발 방법

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
ASS Succession or assignment of patent right

Owner name: CHANGSHU NJNU DEVELOPMENT RESEARCH INSTITUTE CO.,

Free format text: FORMER OWNER: NANJING NORMAL UNIVERSITY

Effective date: 20120718

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 210097 NANJING, JIANGSU PROVINCE TO: 215500 SUZHOU, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20120718

Address after: 215500 Changshou City South East Economic Development Zone, Jiangsu, Jin Road, No. 8

Patentee after: Changshu Nanjing Normal University Development Research Academy Institute Co., Ltd.

Address before: 210097 Nanjing Road, Jiangsu, Nanjing 122

Patentee before: Nanjing Normal University

TR01 Transfer of patent right

Effective date of registration: 20201222

Address after: Building 3, No.88, Xianshi Road, high tech Zone, Changshu City, Suzhou City, Jiangsu Province

Patentee after: Changshu Zijin Intellectual Property Service Co.,Ltd.

Address before: 215500 8 Jindu Road, Changshou City Southeast Economic Development Zone, Jiangsu

Patentee before: CHANGSHU NANJING NORMAL UNIVERSITY DEVELOPMENT RESEARCH INSTITUTE Co.,Ltd.

TR01 Transfer of patent right