CN103108204A - 一种基于Win7或Win Vista的3D显示方法 - Google Patents

一种基于Win7或Win Vista的3D显示方法 Download PDF

Info

Publication number
CN103108204A
CN103108204A CN2012105226397A CN201210522639A CN103108204A CN 103108204 A CN103108204 A CN 103108204A CN 2012105226397 A CN2012105226397 A CN 2012105226397A CN 201210522639 A CN201210522639 A CN 201210522639A CN 103108204 A CN103108204 A CN 103108204A
Authority
CN
China
Prior art keywords
buffering
dimension
right eye
scene
left eye
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.)
Pending
Application number
CN2012105226397A
Other languages
English (en)
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.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital 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 Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN2012105226397A priority Critical patent/CN103108204A/zh
Publication of CN103108204A publication Critical patent/CN103108204A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

一种基于Win7或Win Vista的3D显示方法,使用NVIDIA提供的NVAPI软件包,并修改原有3D渲染流程,以产生3D显示效果。使用如下渲染步骤:开启立体缓冲,并设置为手动模式;开启左眼立体缓冲;设置左眼投影矩阵;渲染场景至左眼缓冲;开启右眼立体缓冲;设置右眼投影矩阵;渲染场景至右眼缓冲;提交立体缓冲。本发明能在已有3D程序基础上改进,无需大量修改代码即可实现立体显示的效果。

Description

一种基于Win7或Win Vista的3D显示方法
【技术领域】
本发明涉及3D显示领域,具体涉及一种基于Win7或Win Vista的3D显示方法。 
【背景技术】
在3D技术已经趋于成熟的今天,简单的平面3D显示已经越来越不能满足人们对3D显示的需求,由此立体显示技术如今进入了飞速发展阶段,让观看者有了身临其境的立体感。何谓立体感?立体感是由人眼的视差所引起的,由于人两只眼睛有4-6cm的距离,因此两眼在看同一景物所产生的影像是不同的,在反馈回大脑后经过视觉中枢的处理就会产生立体感。 
如今的3D电影的立体成像技术,也是靠两部摄像机拍摄成不同的影像来模拟人两只眼睛的。同样的,立体显示技术在游戏领域也得到了充分运用,在游戏中立体显示有多种解决方案,一般采用的是最直接的做法,即利用摄像机将场景渲染两遍后得到视差图,再配合立体设备从而达到3D游戏立体化的目的。 
有鉴于此,本发明人针对现有技术的缺陷深入研究,并有本案产生。 
【发明内容】
本发明所要解决的技术问题在于提供一种基于Win7或Win Vista的3D显示方法。本发明采用以下技术方案解决上述技术问题: 
一种基于Win7或Win Vista的3D显示方法,包括如下渲染步骤: 
步骤1:开启立体缓冲,并设置为手动模式; 
步骤2:开启左眼立体缓冲; 
步骤3:设置左眼投影矩阵; 
步骤4:渲染场景至左眼缓冲; 
步骤5:开启右眼立体缓冲; 
步骤6:设置右眼投影矩阵; 
步骤7:渲染场景至右眼缓冲; 
步骤8:提交立体缓冲; 
渲染循环按上述步骤3至步骤8,生成3D图。 
本发明的优点在于:能在已有3D程序基础上改进,无需大量修改代码即可实现立体显示的效果。 
【附图说明】
下面参照附图结合实施例对本发明作进一步的描述。 
图1是本发明立体渲染管线图。 
图2是本发明视差投影示意图。 
图3是本发明立体图像合成示意图。 
【具体实施方式】
NVIDIA的3D Vision立体显示解决方案是专门为游戏而量身定做的技术,本发明采用的也是这套方案。其配置需求需要如下:一台120MHz的显示器或投影仪,G80及以上NVIDIA显卡,window Vista及以上系统,3D Vision套装(包括同步器及立体眼镜)。 
其工作原理如下:应用程序提交两张左右眼的视差图给驱动程序后,驱动程序会在显示器上轮流显示左右眼图,比如在1,3,5…帧显示左眼图,在2,4,6…帧显示右眼图,在显示左图时,3D Vision同步器会通知立体眼镜关闭右眼显示,其会在右眼眼镜上放置挡板遮挡住右眼视线以实现单眼观看,同理显示右眼图时会遮挡住左眼,这样每只眼睛就只会看到属于自己这只眼睛的图片,这样接收到得视差图就会产生成出立体感。 
在传统的3D渲染系统里,利用摄像机模拟人的眼睛来观察整个3D场景,并在场景渲染过程中,将所有场景里的物件透视投影至近裁面,最终显 示在平面显示器上。是以我们两只眼睛在平面显示器上所看到的场景内容是完全一样的,并未对场景物件产生两眼的视差,所以虽然看到的是3D场景却无法对场景产生立体感。 
立体渲染则是在原单眼渲染的基础上,将视点在裁剪空间内沿着X轴方向左右平移一定距离后来模拟两只眼睛的距离,并分别在各自的近裁面上生成各自的图像,由于产生这两张图的观察位置不同,则场景内所有物件在两张图上所投影的位置也不同,这样两眼对场景内物件也就有了视差,也就形成了两张视差图,最后将视差图提交给驱动程序后就可以实现3D场景的立体显示了。 
立体显示主要分主动式(手动式)和被动式(自动式)两种,主动式即由应用程序向驱动程序提交两张视差图或立体图,被动式则是通过驱动程序自动完成3D场景的立体化效果。目前大多数游戏的做法都是被动式,立体渲染管线图如图1所示: 
在单通道可编程渲染管线中,顶点通过VS(顶点着色器)进行一系列的空间变换,进入裁剪空间后进行光栅化,并在图片空间进行PS(片段着色器)计算。 
而在立体渲染管线中,则是通过修改VS的页脚,以实现将裁剪空间变换至立体空间,即左右眼的裁剪空间,并分别执行各自的光栅化以及PS计算,因此同时也需要两倍的RT(渲染纹理)并产生双倍的DP(绘制调用)。这里可通过NVAPI获取并设置立体显示的一些参数,如Sepration(两眼间距)以及Convergence(聚焦深度)。 
被动式立体显示虽然自动完成了立体化操作,但其自动化的操作同时也带来了许多问题,如天空盒需做特殊处理,UI也需特别指定深度,后处理及延迟渲染需要解决逆投影,3D物件拾取问题等等。因此本发明采用可控性强、代码修改量少的主动式立体化,即手动在代码里将场景渲染两遍以获取视差图。 
接下来推导下视差偏移量是如何计算出来的: 
其中,Interaxial:两眼间距,Parallax:视差,Convergence:聚焦深度, Depth:顶点深度,Screen:聚焦屏幕宽度,Sepration:两眼间距比例。 
视差投影示意图如图2所示,利用三角形等比定律可得: 
Figure BDA00002537670400041
将其转换至图片空间中,由于Interaxial/Screen与场景无关,定义其为 
Sepration; 
Parallaximage=Parallaxeye/Screen 
=Interaxial/Screen*(1–Convergence/Depth) 
=Sepration*(1–Convergence/Depth) 
再将其转换至裁剪空间,这就需要进行透视除法的逆运算,并将其由{0,1}区间转换至{-1,1}区间, 
Parallax clip=Parallax image*Depth*2 
=2*Sepration*(Depth-Convergence) 
裁剪空间是由眼空间经过投影变换而成,而立体裁剪空间则是眼空间通过立体投影变换而成。以DirectX(以下简称DX)为例,使用左手坐标系的投影矩阵,将其改造成立体投影矩阵。 
Parallax=Sepration*Z-Sepration*Convergence 
由线性代数的矩阵相乘法则可知: 
( x , y , z ) × p 11 p 12 p 13 p 14 = x * p 11 + y * p 12 + z * p 13 + w * p 14
可以得出: 
x * p 11 + y * p 12 + z * ( p 13 + Sep ) + w * ( p 14 - sSep * Con ) = p 11 p 12 p 13 + Sepration p 14 - Sepration * Convergence
由此可得立体投影矩阵,从 
p 11 0 0 0 0 p 22 0 1 p 13 0 p 33 1 p 14 0 p 43 1 得出: p 11 0 0 0 0 p 22 0 0 p 13 + side * Sepration 0 p 33 1 p 14 - side * Sepration * Convergence 0 p 43 1
其中左眼Side为-1,右眼Side为+1 
NVAPI是由NVIDIA提供的一套在windows平台可以直接访问NVIDIAGPU及其驱动的软件开发包。利用NVAPI就可以动态调节如驱动面板里的诸多显卡参数,同样NVAPI也对立体显示提供了一套比较完善的接口,因此在DX10、11(winVista/win7)环境下,只需直接利用NVAPI提供的立体显示相关的接口就能实现立体渲染,流程图如图3所示: 
一种基于Win7或Win Vista的3D显示方法,包括如下渲染步骤: 
步骤1:开启立体缓冲,并设置为手动模式; 
步骤2:开启左眼立体缓冲; 
步骤3:设置左眼投影矩阵; 
步骤4:渲染场景至左眼缓冲; 
步骤5:开启右眼立体缓冲; 
步骤6:设置右眼投影矩阵; 
步骤7:渲染场景至右眼缓冲; 
步骤8:提交立体缓冲; 
渲染循环按上述步骤3至步骤8,生成3D图。 
通过NVAPI开启左右眼立体缓冲后,NVIDIA驱动程序会自动创建立体后备缓冲,只需要在渲染场景前设置对应的立体缓冲,其他按原来正常流程渲染,驱动就会自动将后备缓冲替换为立体缓冲。 
需要说明的是:在修改投影矩阵时,其所有相关的联合矩阵都必须同时修改。在后处理和延迟渲染里,屏幕空间到立体空间的逆投影转换必须加入立体参数的运算。需要根据场景大小而调节Convergence的值。在渲染左右眼场景的时候,所使用的裁切矩阵必须是一致的。 
以上所述仅为本发明的较佳实施用例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。 

Claims (1)

1.一种基于Win7或Win Vista的3D显示方法,其特征在于:使用如下渲染步骤:
步骤1:开启立体缓冲,并设置为手动模式;
步骤2:开启左眼立体缓冲;
步骤3:设置左眼投影矩阵;
步骤4:渲染场景至左眼缓冲;
步骤5:开启右眼立体缓冲;
步骤6:设置右眼投影矩阵;
步骤7:渲染场景至右眼缓冲;
步骤8:提交立体缓冲;
渲染循环按上述步骤3至步骤8,生成3D图。
CN2012105226397A 2012-12-06 2012-12-06 一种基于Win7或Win Vista的3D显示方法 Pending CN103108204A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012105226397A CN103108204A (zh) 2012-12-06 2012-12-06 一种基于Win7或Win Vista的3D显示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012105226397A CN103108204A (zh) 2012-12-06 2012-12-06 一种基于Win7或Win Vista的3D显示方法

Publications (1)

Publication Number Publication Date
CN103108204A true CN103108204A (zh) 2013-05-15

Family

ID=48315725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012105226397A Pending CN103108204A (zh) 2012-12-06 2012-12-06 一种基于Win7或Win Vista的3D显示方法

Country Status (1)

Country Link
CN (1) CN103108204A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110832866A (zh) * 2017-06-30 2020-02-21 夏普株式会社 用于在虚拟现实应用程序中发送信号通知与组成图片相关联的信息的系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110210966A1 (en) * 2009-11-19 2011-09-01 Samsung Electronics Co., Ltd. Apparatus and method for generating three dimensional content in electronic device
CN102509336A (zh) * 2011-10-24 2012-06-20 克拉玛依红有软件有限责任公司 一种gpu加速的实时立体渲染方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110210966A1 (en) * 2009-11-19 2011-09-01 Samsung Electronics Co., Ltd. Apparatus and method for generating three dimensional content in electronic device
CN102509336A (zh) * 2011-10-24 2012-06-20 克拉玛依红有软件有限责任公司 一种gpu加速的实时立体渲染方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110832866A (zh) * 2017-06-30 2020-02-21 夏普株式会社 用于在虚拟现实应用程序中发送信号通知与组成图片相关联的信息的系统和方法

Similar Documents

Publication Publication Date Title
Schmidt et al. Multiviewpoint autostereoscopic dispays from 4D-Vision GmbH
US20130127861A1 (en) Display apparatuses and methods for simulating an autostereoscopic display device
CN115951504A (zh) 使用眼睛位置的无三维眼镜光场显示
US10237539B2 (en) 3D display apparatus and control method thereof
US20060171028A1 (en) Device and method for display capable of stereoscopic vision
AU2018249563B2 (en) System, method and software for producing virtual three dimensional images that appear to project forward of or above an electronic display
CN105224288B (zh) 双目三维图形渲染方法及相关系统
CN104702936A (zh) 一种基于裸眼3d显示的虚拟现实交互方法
CN105282536A (zh) 一种基于Unity3D引擎的裸眼3D图文交互方法
CN103745448A (zh) 光栅3d显示中超高分辨率合成图像的快速生成方法
CN105578172B (zh) 基于Unity3D引擎的裸眼3D视频显示方法
JP6017795B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム画像生成方法
Sawahata et al. Estimating depth range required for 3-D displays to show depth-compressed scenes without inducing sense of unnaturalness
CN102521876B (zh) 一种实现3d用户界面立体效果的方法及系统
CN108124148A (zh) 一种单个视图影像转换多个视图影像的方法及装置
CN103871094A (zh) 一种基于体扫描三维显示系统数据源生成方法
CN103108204A (zh) 一种基于Win7或Win Vista的3D显示方法
CN103024414A (zh) 一种基于WinXP系统的3D显示方法
CN101908233A (zh) 产生用于三维影像重建的复数视点图的方法及系统
CN102231841A (zh) 基于双视点立体数据裸眼立体显示电视及实现方法
CN203377985U (zh) 多维led显示屏
Zhang et al. The Image Processing and Data Analysis of Dense Multi-view Autostereoscopic 3D Display System Based on Dynamic Parallax Barriers
CN103369340B (zh) 多维led显示屏立体显示方法及多维led显示屏
Miyashita et al. Perceptual Assessment of Image and Depth Quality of Dynamically Depth-compressed Scene for Automultiscopic 3D Display
Tsirlin et al. Crosstalk reduces the amount of depth seen in 3D images of natural scenes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130515