CN103444190A - 原生单像3d到立体3d的运行时转换 - Google Patents

原生单像3d到立体3d的运行时转换 Download PDF

Info

Publication number
CN103444190A
CN103444190A CN2012800134698A CN201280013469A CN103444190A CN 103444190 A CN103444190 A CN 103444190A CN 2012800134698 A CN2012800134698 A CN 2012800134698A CN 201280013469 A CN201280013469 A CN 201280013469A CN 103444190 A CN103444190 A CN 103444190A
Authority
CN
China
Prior art keywords
view
projection matrix
produce
viewport
coordinate
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
CN2012800134698A
Other languages
English (en)
Other versions
CN103444190B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103444190A publication Critical patent/CN103444190A/zh
Application granted granted Critical
Publication of CN103444190B publication Critical patent/CN103444190B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/286Image signal generators having separate monoscopic and stereoscopic modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

本发明描述用于以可致使装置以立体3D来呈现原生三维3D图形内容的方式修改应用程序接口API调用的技术。本发明的技术可以修改API调用自身但不修改API自身及GPU硬件的方式来实施。本发明的技术包含使用由原始内容定义的相同视锥产生左眼图像和右眼图像及将所述左眼图像和所述右眼图像的视口偏移移位。

Description

原生单像3D到立体3D的运行时转换
本申请案主张2011年3月14日申请的第61/452,289号美国临时申请案和2011年4月12日申请的第61/474,638号美国临时申请案的权利,每一临时申请案的相应全部内容特此以引用的方式并入。
技术领域
本发明涉及图形数据处理,且更确切来说,涉及用于立体视图的图形数据处理。
背景技术
立体视图指代看起来包含3维(3D)体积的所感知图像。为了产生立体视图,装置在显示器的2维(2D)区域上显示两个图像。此两个图像包含实质上类似的内容,但所述内容具有沿两个图像中的一个或一个以上对应像素的水平轴的轻微位移。同时检视2D区域上的此两个图像致使检视者感知跳出正显示两个图像的2D显示器之外或推入到所述2D显示器中的图像。以此方式,尽管两个图像显示于显示器的2D区域上,但检视者感知看起来包含3D体积的图像。
立体视图的两个图像分别被称作左眼图像和右眼图像。左眼图像可由检视者的左眼检视,且右眼图像不可由检视者的左眼检视。类似地,右眼图像可由检视者的右眼检视,且左眼图像不可由检视者的右眼检视。举例来说,检视者可戴上专用眼镜,其中眼镜的左透镜挡住右眼图像且使左眼图像通过,且眼镜的右透镜挡住左眼图像且使右眼图像通过。
因为左眼图像和右眼图像包含具有沿水平轴的轻微位移但不可由检视者双眼同时检视(例如,由于专用眼镜)的实质上类似的内容,所以检视者的大脑通过混合两个图像来解析对应像素之间的轻微位移。混合致使检视者将两个图像感知为具有3D体积的图像。
发明内容
本发明描述用于以可致使装置以立体3D来呈现三维(3D)图形内容的方式修改应用程序接口(API)调用的技术。本发明的技术可以API调用自身经修改但API自身及GPU硬件未被修改的方式来实施。
在一个实例中,将非立体3D内容转换成S3D内容的方法包含:拦截应用程序接口(API)调用;根据所述API调用确定用于所述非立体3D内容的模型视图投影矩阵;修改所述模型视图投影矩阵以产生经修改模型视图投影矩阵;基于所述经修改模型视图投影矩阵,产生左视图剪切坐标;基于所述经修改模型视图投影矩阵,产生右视图剪切坐标;基于所述左视图剪切坐标,产生左视图;基于所述右视图剪切坐标,产生右视图;及基于所述左视图和所述右视图,呈现S3D图像。
在另一实例中,装置包含:存储器,其存储指令;图形处理单元(GPU);及处理器。所述处理器可操作以在执行所述指令时进行以下动作:拦截应用程序接口(API)调用;根据所述API调用确定用于非立体3D内容的模型视图投影矩阵;修改所述模型视图投影矩阵以产生经修改模型视图投影矩阵;基于所述经修改模型视图投影矩阵,致使所述GPU产生左视图剪切坐标;基于所述经修改模型视图投影矩阵,致使所述GPU产生右视图剪切坐标;基于所述左视图剪切坐标,致使所述GPU产生左视图;基于所述右视图剪切坐标,致使所述GPU产生右视图;及基于所述左视图和所述右视图,致使所述GPU呈现S3D图像。
在另一实例中,用于将非立体3D内容转换成S3D内容的设备包含:用于拦截应用程序接口(API)调用的装置;用于根据所述API调用确定用于所述非立体3D内容的模型视图投影矩阵的装置;用于修改所述模型视图投影矩阵以产生经修改模型视图投影矩阵的装置;用于基于所述经修改模型视图投影矩阵产生左视图剪切坐标的装置;用于基于所述经修改模型视图投影矩阵产生右视图剪切坐标的装置;用于基于所述左视图剪切坐标产生左视图的装置;用于基于所述右视图剪切坐标产生右视图的装置;及用于基于所述左视图和所述右视图呈现S3D图像的装置。
在另一实例中,一种计算机可读存储媒体存储指令,所述指令当执行时致使一个或一个以上处理器进行以下动作:拦截应用程序接口(API)调用;根据所述API调用确定用于所述非立体3D内容的模型视图投影矩阵;修改所述模型视图投影矩阵以产生经修改模型视图投影矩阵;基于所述经修改模型视图投影矩阵,产生左视图剪切坐标;基于所述经修改模型视图投影矩阵,产生右视图剪切坐标;基于所述左视图剪切坐标,产生左视图;基于所述右视图剪切坐标,产生右视图;及基于所述左视图和所述右视图,呈现S3D图像。
在随附图式及下文描述中阐述本发明的一个或一个以上方面的细节。从描述和图式,以及从权利要求书将明白本发明的其它特征、目的和优势。
附图说明
图1是说明可实施本发明中所描述的一个或一个以上实例技术的实例系统的功能的框图。
图2是说明可实施本发明中所描述的一个或一个以上实例技术的装置的实例的框图。
图3A展示使用本发明的技术产生的S3D检视区域的几何表示。
图3B展示可根据本发明的技术执行的视口移位的几何表示。
图4是进一步详细说明图2的实例装置的框图。
图5是说明根据本发明中所描述之一个或一个以上实例技术的实例操作的流程图。
具体实施方式
本发明中所描述的实例技术是针对在执行期间或在运行时期间呈现立体3维(S3D)图形。在常规3D图形呈现中,图形处理单元(GPU)从单个视点(例如,单视图)产生3D图形。此单个视点可意谓可由检视者的右眼和左眼两者检视的单个图像。
S3D图形与3D图形的不同之处在于S3D图形产生立体视图。术语立体视图指代根据双眼视点产生的图像。在双眼视点中,可存在两个图像,其中一个图像可由眼睛中的一者检视且不可由另一者检视,且反之亦然。举例来说,当检视者戴上双目镜时,经由双目镜的左透镜进入的光可由左眼检视且不可由右眼检视,且反之亦然。双眼视点可被称作立体视图。
举例来说,在S3D图形中,GPU可产生用于左眼的图像和用于右眼的另一图像,即,立体视图。术语立体视图指代各自显示于显示器上的两个图像(例如,左眼图像和右眼图像),而单视图指代显示于显示器上的单个图像。对于检视者来说,左眼图像与右眼图像的组合可看起来好像图像正跳出正显示图像的显示器之外或推入到所述显示器中。此情形可导致更逼真且更丰富的检视体验。
在本发明中,不应混淆S3D图像(例如,立体视图)和3D图像(例如,单视图)的概念。3D图像为被显示器的2维(2D)区域约束的图像。举例来说,3D图像内的对象可看起来比3D图像内的其它对象较远或较近。然而,所有这些对象受限于显示器的2D区域。S3D图像为通过检视者的大脑组合右眼图像和左眼图像产生的感知图像。所得图像(即,S3D图像)看起来不受显示器的2D区域约束。更确切地,S3D图像看起来包含3D体积,其中图像看起来跳出显示器之外或推入到显示器中。举例来说,S3D图像内的对象看起来比3D体积而非2D区域(其为3D图像下的情况)内的其它对象较远或较近。
一起形成S3D图像的右眼图像和左眼图像可为3D图像。检视者的大脑致使检视者在大脑组合3D右眼图像与3D左眼图像时感知S3D图像。右眼图像和左眼图像的内容可实质上类似于单个3D图像的内容。本发明描述用于将3D图形内容转换成S3D内容的技术。通过使用本发明的技术,许多现有3D图形内容可转换成S3D图形内容且显示于立体显示器上。
本发明还描述用于以可致使GPU执行所描述的3D到S3D转换的方式修改应用程序接口(API)调用的技术。本发明的技术可以仅API调用自身经修改而不是API或GPU经修改的方式来实施。
为了根据原生3D内容产生S3D内容,本发明的技术包含用于3D到S3D转换的技术。所述技术包含用于拦截从3D应用程序到3D图形API的选定API调用的软件。可以致使用于产生图形的系统产生可在运行时显示于S3D显示器上的双眼视图因而为检视所呈现内容的用户产生S3D效果的方式来修改被拦截的API调用。两个图像(左眼图像和右眼图像)可由同一图形管道基于对原生3D内容的分析来呈现。可使用用于检视位置和/或方向的不同设置来产生所述两个图像。实施本发明的技术的系统可位于图形API(例如,用于移动装置中的OpenGL ES API)的正上方,使得能够拦截来自3D图形应用程序的API调用。在一些实施方案中,3D到S3D转换系统可仅使用软件来实施,且不需要改变GPU硬件、图形驱动程序代码或3D图形应用程序内容。本发明的技术可与OpenGL、OpenGL ES以及其它图形API一起应用。
当前在现有技术中存在用于将原生3D内容转换成S3D内容的技术,但许多此些技术因为其需要知道并不总是会从API调用得知的信息而具有有限的应用,或者因为其作出关于S3D检视空间的并不总是精确的假设而导致不良S3D图像质量。本发明描述在一些情况下既可广泛使用又导致良好图像质量的3D到S3D转换技术。
图1是可实施本发明的技术的实例3D到S3D转换系统100的功能图。图1的系统100意欲提供功能概述。系统100包含3D图形内容112、用于启用3D到S3D转换的系统命令116、启用S3D模块120、3D到S3D转换模块124、API128、顶点处理模块132、左合并单元136、右合并单元140、像素处理模块144、左帧缓冲器148、右帧缓冲器152、左图像156和右图像160。稍后将在本发明中更详细且参考额外硬件和软件组件解释系统100的部分。另外,如下文将更详细解释,系统100的某些部分(例如,顶点处理模块132、左合并单元136、右合并单元140和像素处理模块144)可实施为GPU的部分。
3D图形内容112和系统命令116可以计算机代码的形式存储于系统存储器上。举例来说,3D图形内容112可包含用于产生3D图像的图形命令。举例来说,当使用OpenGLES API时,图形命令可包含将在下文更详细论述的glDraw命令,例如glDrawArrays()和glDrawElements()。
3D到S3D转换可由系统命令116启用。举例来说,系统命令116可表示用户输入的命令或可为正由应用程序处理器执行的应用程序内所含有的命令。当3D到S3D未被启用时,就可以正常方式处理3D图形内容112以产生3D图像。在此些情况下,以虚线展示的系统100的部分可能不被利用或可能不存在,而系统100的其它部分处理单个单视图图像而不是左图像和右图像。当3D到S3D转换未被启用(见例如120,否)时,将未修改的API调用发送到API128。未修改的API调用通常指代来自3D图形内容112的以其原始形式发送到API128的API调用。
当3D到S3D转换被启用(见例如120是)时,3D到S3D转换模块124可拦截图形内容112的API调用,且以将致使API调用产生左眼视图和右眼视图而不是单个单视图的方式来修改API调用。由3D到S3D转换模块124产生的经修改API调用接着可由API128获得以致使GPU呈现左眼图像和右眼图像两者。经修改API调用可由顶点处理模块132、左合并单元136、右合并单元140和像素处理模块144执行以产生待存储于左帧缓冲器148中的左眼图像和待存储于右帧缓冲器152中的右眼图像。在系统100的实例中,3D到S3D转换模块124表示运行于应用程序处理器上的应用程序,所述应用程序经配置以拦截API调用且执行对那些API调用的修改。对API调用的修改使得3D图形内容能够被GPU呈现为S3D图形内容。
在典型3D图形管道中,3D图形内容首先呈描述几何基元的基元数据的形式。对于左图像和右图像两者,顶点处理单元132可基于几何基元数据产生2D显示平面中的一组像素位置。左合并单元136可在逐图块的基础上汇编与左图像相关联的几何基元,其中一图块对应于左图像的一部分。类似地,右合并单元140可在逐图块的基础上汇编与右图像相关联的几何基元。对于左图像的图块和右图像的图块中的每一者,像素处理单元144可计算由顶点处理单元132确定的像素的属性。像素处理模块144可输出左图像(例如,左图像156)到左帧缓冲器148,且可输出右图像(例如,右图像160)到右帧缓冲器152。左图像156和右图像160可同时显示于S3D显示器上以产生S3D图像。以此方式,即使3D图形内容112不包含S3D图形内容,系统100的输出仍可为S3D图像。
将在下文参看图2更详细描述由顶点处理模块132、左合并单元136、右合并单元140和像素处理模块144执行的功能。在一些配置中,系统可包含专用于右眼图像的各种硬件组件和专用于左眼图像的硬件组件。然而,在其它实施方案中,相同组件可用于右眼图像和左眼图像两者。举例来说,在图1的系统100中,顶点处理模块132和像素处理模块144可以软件来实施,而左合并单元136、右合并单元140、左帧缓冲器148和右帧缓冲器150以硬件来实施。然而,在其它实施方案中,顶点处理模块132和像素处理模块144可能以硬件来实施,或左帧缓冲器148和右帧缓冲器152可能由保持左图像和右图像两者的单个帧缓冲器代替。另外,如之前所提及,系统100仅意谓提供可实施本发明的技术的系统的功能概述,且图形管道的一些方面已出于解释的目的而简化或省略。
图2是说明可实施本发明中所描述的一个或一个以上实例技术的装置的实例的框图。举例来说,图2说明装置210。装置210的实例包含但不限于移动无线电话、个人数字助理(PDA)、包含视频显示器的电视游戏机、移动视频会议单元、膝上型计算机、台式计算机、电视机顶盒等等。如图2中所说明,装置210可包含应用程序处理器212、图形处理单元(GPU)220和系统存储器226。除了图2中所说明的组件之外,装置210还可包含其它组件。尽管本发明的若干部分将大体上参考利用应用程序处理器和GPU两者的系统来描述3D到S3D转换技术,但本发明中所描述的技术未必限于此些系统。举例来说,本发明的一些3D到S3D转换技术可在一些情况下在无GPU的情况下单独由应用程序处理器执行。
应用程序处理器212可为装置210的中央处理单元(CPU)。GPU220可为可操作以输出图形数据以供呈现于显示器上的处理单元。应用程序处理器212和GPU220的实例包含但不限于数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。
系统存储器226可为计算机可读存储媒体的实例。举例来说,系统存储器226可存储致使应用程序处理器212和GPU220执行在本发明中属于各自的功能的指令。以此方式,系统存储器226可被视为包括指令的计算机可读存储媒体,所述指令致使一个或一个以上处理器(例如,应用程序处理器212或GPU220)执行各种功能。
系统存储器226的实例包含但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来载运或存储呈指令或数据结构形式的所要程序代码且可由计算机或处理器存取的任何其它媒体。在一些实例中,系统存储器226可被视为非暂时性存储媒体。术语“非暂时性”可指示存储媒体未以载波或经传播信号体现。然而,术语“非暂时性”不应被解译为意谓系统存储器226为不可移动的。作为一个实例,系统存储器226可被从装置210移除,且移动到另一装置。作为另一实例,实质上类似于系统存储器226的存储装置可插入到装置210中。在某些实例中,非暂时性存储媒体可存储可随时间的流逝而改变的数据(例如在RAM中)。
GPU220展示具有固定功能管道的GPU的实例,但本发明的技术还可使用包含可编程元件的GPU来实施。GPU220包含顶点处理器222和像素处理器224。顶点处理器222可包含执行顶点处理功能的硬件单元,而像素处理器可包含执行像素处理功能的硬件单元。换句话说,顶点处理器222和像素处理器224可包含具有固定功能和最小功能灵活性的硬件单元。然而,如先前所提及,本发明的技术不意欲限于具有固定功能管道的GPU。
本发明中所描述的实例技术可利用正由应用程序处理器212运行的软件应用程序来拦截API调用,且修改API调用以产生经修改API调用。此软件应用程序在图2中展示为图形驱动程序包装器216。通过使用经修改API调用,GPU220可呈现S3D图形。
如上文所论述,立体视图包含左眼图像和右眼图像。左眼图像和右眼图像包含与单视图图像实质上类似的图像内容;然而,左眼图像和右眼图像的一个或一个以上对应像素可沿水平轴相对于彼此位移。举例来说,想象将右眼图像置于左眼图像之上。在此状况下,右眼图像中的所有内容可不与左眼图像中的相同内容完全对齐。更确切地,右眼中的一个或一个以上对象可在左眼图像中的相同对象的左边或右边。
左眼图像可由检视者的左眼检视,且右眼图像被挡住以免被检视者的左眼看到。右眼图像可由检视者的右眼检视,且左眼图像被挡住以免被检视者的右眼看到。在一些实例中,检视者可戴上专用眼镜,其挡住左眼图像以免可由右眼检视到,且挡住右眼图像以免可由左眼检视到。然而,本发明的方面不一定要求检视者戴上专用眼镜。举例来说,一些显示器不要求检视者戴上专用眼镜来体验立体视图。本发明的技术可扩展到此些情形。
GPU220可产生用于左眼图像和右眼图像的图形数据,使得当检视者同时检视左眼图像和右眼图像两者时,检视者的大脑致使检视者感知跳出正显示两个图像的显示器之外或推入到显示器中(例如,看起来在显示器之前或之后)的图像。此跳出或推入是归因于检视者的大脑解析具有实质上类似内容的立体视图的两个图像中的水平差异。
作为实例,应用程序处理器212可执行存储于系统存储器226中的一个或一个以上应用程序,例如应用程序232。应用程序232的实例包含但不限于网络浏览器、电子邮件应用程序、电子表格、电视游戏或产生可检视对象以供显示的其它应用程序。举例来说,应用程序232可为电视游戏,所述电视游戏当执行时输出显示于显示器上的3D图形内容。
应用程序232可由开发者针对单视图进行设计。举例来说,应用程序232在执行时可产生3D图形内容,其中3D图形内容被显示器的2D区域约束。应用程序232在执行于应用程序处理器212上时可将所产生3D图形内容划分成基元,例如三角形、矩形或其它类型的多边形。此些基元中的每一者可用以呈现待显示于显示器上的像素。应用程序232在执行于应用程序处理器212上时还可呈现基元的顶点中的每一者的像素值。举例来说,所述值可包含顶点的3D坐标、顶点的颜色值及顶点的透明度值。所述值不需要在本发明的每一方面中包含所有上文实例组件。
应用程序处理器212接着可将顶点的像素值转发到GPU220以供进一步处理。举例来说,应用程序处理器212可包含图形驱动程序214,图形驱动程序214可为执行于应用程序处理器212上的软件。图形驱动程序214可经设计以将命令传输到GPU220,且作为响应,GPU220可根据所接收命令执行功能。举例来说,图形驱动程序214充当GPU220与应用程序处理器212之间的接口。当应用程序处理器212将命令发出到GPU220时,GPU220通过图形驱动程序214接收命令。举例来说,执行于应用程序处理器212上的应用程序232可指挥GPU220执行特定任务。在此状况下,图形驱动程序214可从应用程序232接收针对特定任务的指令,且可将指令提供到GPU220。作为响应,GPU220可执行任务。
在一些实例中,可根据特定API来设计图形驱动程序214。举例来说,可根据OpenGL或OpenGL ES(嵌入式系统)API来设计图形驱动程序214,所述OpenGL或OpenGL ESAPI为科纳斯集团(Khronos Group)的API,且其规范可公开获得。然而,本发明的技术可扩展到微软的DirectX系统,例如DirectX9、10或11,或任何其它图形系统和API。出于说明的目的,在API为OpenGL EX1.1API的背景下描述本发明的技术。然而,本发明的方面不限于此,且可扩展到其它API或图形系统。
为了呈现从应用程序处理器212接收的基元,GPU220可包含例如顶点处理器222等一个或一个以上顶点处理器及例如像素处理器224等一个或一个以上像素处理器以产生显示器的像素的像素值。GPU220还可包含其它未图示的元件。本发明的技术不限于特定GPU架构。开发者可根据顶点处理器222和像素处理器224的能力且根据API(例如,本发明中出于说明目的而使用的OpenGL EX1.1API)开发图形应用程序。
应用程序232可产生基元的顶点的坐标。此些坐标可被称作世界坐标,且可针对应用程序232是特定的。换句话说,如由应用程序232定义的顶点的坐标可不一定为显示基元的显示器的坐标,且还可能为在可检视区域外部的顶点的坐标。顶点处理器222可经设计以将可在3D中的世界坐标转换成显示器的2D坐标(例如,显示坐标)。为了执行此功能,顶点处理器222可将世界坐标变换成眼睛坐标,且接着变换成剪切坐标。举例来说,顶点处理器222在执行时的输出可为顶点的剪切坐标。随后可由像素处理器224确定最终显示坐标(例如,显示器的坐标)。
剪切坐标可定义视锥。视锥可定义3D图形内容的可检视区域。GPU220可利用视锥来剔除位于视锥外部的像素。举例来说,GPU220的固定功能单元(例如,像素处理器224)可剔除如由应用程序232产生的剪切坐标所定义的位于视锥外部的像素。
用以根据世界坐标计算剪切坐标的等式可为:
Vclip=PRJ*Veye=PRJ*MVT*Vworld=MVP*Vworld    (等式1)
其中Vclip为顶点剪切坐标,Veye为顶点眼睛坐标,Vworld为由应用程序232提供的顶点世界坐标,PRJ为投影矩阵,且MVT为模型视图变换矩阵(或世界视图变换矩阵)。在一些实例中,PRJ和MVT矩阵可组合成单个矩阵,其可被称作模型视图投影矩阵,或如上文在等式1中所示的MVP,其中MVP=PRJ*MVT。
投影矩阵(PRJ)和模型视图或世界视图变换矩阵(MVT)可由API定义。术语模型视图和世界视图可互换地使用。Vclip、Veye和Vworld可包含四个分量(例如,x、y、z和w坐标)。举例来说,Vclip、Veye和Vworld可表示为:
V clip = x clip y clip z clip w clip , V eye = x eye y eye z eye w eye , V world = x world y world z world w world     (等式2)
OpenGL和OpenGL ES API将PRJ矩阵定义为:
PRJ = 2 z near ( R - L ) 0 R + L R - L 0 0 2 z near T - B T + B T - B 0 0 0 - z near + z far z far - z near - 2 z near z far z far - z near 0 0 - 1 0     (等式3)
其中L和R指定左和右垂直剪切平面的坐标,B和T指定底部和顶部水平剪切平面的坐标,且znear和zfar指定到近和远深度剪切平面的距离。以此方式,L和R指定视口的宽度,而B和T指定视口的高度。在对称视口的状况下,-L可等于R,且-B可等于T。
在一些实例中,剪切平面可为对称的。举例来说,-L可等于R,且-B可等于T。在此些情况下,PRJ矩阵可简化为:
PRJ = 2 z near ( R - L ) 0 0 0 0 2 z near T - B 0 0 0 0 - z near + z far z far - z near - 2 z near z far z far - z near 0 0 - 1 0     (等式4)
OpenGL和OpenGL ES API将MVT矩阵定义为:
MVT = a 11 a 12 a 13 a 14 a 21 a 22 a 23 a 24 a 31 a 32 a 33 a 34 0 0 0 1     (等式5)
PRJ和MVT矩阵的所有变量可由执行于应用程序处理器212上的应用程序232定义,且图形驱动程序214可将此些变量提供到顶点处理器222。如可从等式1、4和5看出,通过此些变量,顶点处理器222可确定顶点中的每一者的Vclip坐标。GPU220可利用顶点的剪切坐标,且执行进一步功能性以呈现图像以供显示。以此方式,GPU220可产生由应用程序232产生的3D图形内容的单视图。
在本发明中所描述的一个或一个以上实例技术中,可为执行于应用程序处理器212上的软件的图形驱动程序包装器216可修改API调用,所述API调用定义单视图的剪切坐标以定义立体视图的剪切坐标(例如,左眼图像的剪切坐标和右眼图像的剪切坐标)。而且,图形驱动程序包装器216除了修改定义剪切坐标的API调用之外还可修改定义单视图的视口的API调用以定义立体视图的视口。举例来说,应用程序232可定义显示图像的显示器上的单个图像(例如,单视图)的大小和位置。图形驱动程序包装器216可将定义单个图像的大小和位置的API调用修改为定义左眼图像和右眼图像的大小和位置的经修改API调用(例如,用于左眼图像的视口和右眼图像的视口的指令)。以此方式,图形驱动程序包装器216可拦截用于单视图的单个API调用,且产生用于左视图和右视图两者的经修改API调用。
作为图形驱动程序包装器216可如何修改API调用的实例,图形驱动程序包装器可拦截具有上文所描述的PRJ和MVT的变量的API调用。如上文所描述,PRJ和MVT的变量可由GPU220使用以呈现具有剪切坐标Vclip的单3D视图。图形驱动程序包装器216可修改API调用以产生具有剪切坐标Vclipleft_eye的左图像和具有剪切坐标Vclipright_eye的右图像。
如上文在等式(1)中所指示,Vclip=PRJ*Veye=PRJ*MVT*Vworld。Vclip的等式可经修改以产生左眼的剪切坐标和右眼的剪切坐标。举例来说,左眼和右眼的剪切坐标可为:
Vclipleft_eye=PRJ*VTleft_eye*Veye=PRJ*VTleft_eye*MVT*Vworld    (等式6)
Vclipright_eye=PRJ*VTright_eye*Veye=PRJ*VTright_eye*MVT*Vworld    (等式7)
VTleft_eye和VTright_eye可为4x4视图变换矩阵,其是基于左眼和右眼距单视图的假设距离。举例来说,如果单视图的坐标被假设为(0,0,0),那么左眼可被视为位于(-D,0,0),且右眼可被视为位于(D,0,0)。换句话说,(0,0,0)位置可被视为在检视者的右眼和左眼的中间。如果左眼被视为与右眼和左眼的中间相距-D,且右眼被视为与右眼和左眼的中间相距+D,那么D指示检视者的右眼和左眼之间的距离的一半。
VTleft_eye和VTright_eye的视图变换矩阵可定义为:
VT left _ eye = 1 0 0 D 0 1 0 0 0 0 1 0 0 0 0 1     (等式8a)
VT right _ eye = 1 0 0 - D 0 1 0 0 0 0 1 0 0 0 0 1     (等式9a)
VTleft_eye和VTright_eye可改写为两个矩阵的总和。举例来说,VTleft_eye可改写为:
VT left _ eye = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 + 0 0 0 D 0 0 0 0 0 0 0 0 0 0 0 0     (等式8b)
VTright_eye可改写为:
VT right _ eye = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 + 0 0 0 - D 0 0 0 0 0 0 0 0 0 0 0 0 .     (等式9b)
通过将VTleft_eye矩阵代入到Vclipleft_eye的等式(等式6),Vclipleft_eye等于:
Vcli p left _ eye = PRJ * 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 * MVT * Vworld + PRJ * 0 0 0 D 0 0 0 0 0 0 0 0 0 0 0 0 * MVT * Vworld     (等式10)
通过将VTright_eye矩阵代入到Vclipright_eye的等式(等式7),Vclipright_eye等于:
Vcli p right _ eye = PRJ * 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 * MVT * Vworld + PRJ * 0 0 0 - D 0 0 0 0 0 0 0 0 0 0 0 0 * MVT * Vworld     (等式11)
在两个等式10和11中,例如对于Vclipleft_eye和Vclipright_eye
PRJ * 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 * MVT * Vworld 可简化为PRJ*MVT*Vworld,这是因为 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 为单位矩阵,且等效于乘以1。
如上文在等式1中所描述,PRJ*MVT*Vworld等于MVP*Vworld。因此,Vclipleft_eye和Vclipright_eye等式(例如,分别为等式10和11)可改写为:
Vclip left _ eye = MVP * Vworld + PRJ * 0 0 0 D 0 0 0 0 0 0 0 0 0 0 0 0 * MVT * Vworld     (等式12)
Vclip right _ eye = MVP * Vworld + PRJ * 0 0 0 - D 0 0 0 0 0 0 0 0 0 0 0 0 * MVT * Vworld     (等式13)
通过代入PRJ(等式3或4)和MVT(等式5)的矩阵且执行等式10的矩阵乘法,Vclipleft_eye的等式可简化成:
Vclip left _ eye = MVP * Vworld + 0 0 0 z near ( R - L ) / 2 * D 0 0 0 0 0 0 0 0 0 0 0 0 * Vworld     (等式14)
且更明确地简化成:
Vclip left _ eye = ( MVP + 0 0 0 z near ( R - L ) / 2 * D 0 0 0 0 0 0 0 0 0 0 0 0 ) * Vworld     (等式15)
在具有与Vclipleft_eye的代入类似的代入的情况下,Vclipright_eye等式可简化成:
Vclip right _ eye = ( MVP - 0 0 0 z near ( R - L ) / 2 * D 0 0 0 0 0 0 0 0 0 0 0 0 ) * Vworld     (等式16)
通过使用上文所描述的左视图变换矩阵(VTleft_eye),图形驱动程序包装器216可修改3D图像的API调用以产生左眼3D图像。类似地,通过使用上文所描述的右视图变换矩阵(VTright_eye),图形驱动程序包装器216可修改3D图像的API调用以产生右眼3D图像。通过同时显示左眼3D图像和右眼3D图像,装置210可呈现S3D图像。
上文关于等式7到16所描述的技术可通过修改API调用且不修改GPU220或图形驱动程序214来实施。关于等式7到16所描述的技术可用于独立于视锥的S3D呈现近似。所描述的技术被视为独立于视锥的,这是因为其不需要知道特定视锥参数,例如glFrustum()调用中可能含有的参数。本发明的技术包含当确定Vclipleft_eye和Vclipright_eye时使用由原始内容定义的相同视锥,但对于右视图和左视图分别使检视位置移位D和-D。作为假设每一眼睛的平行检视方向的结果,左视图变换和右视图变换两者可被假设为接近于具有水平方向上的移位的恒等矩阵,如上文参考等式8a和8b以及等式9a和9b所解释。相同投影矩阵(例如,如由上文等式3或4所描述)可经确定且用于左眼和右眼两者。为了产生根据本发明的技术的S3D图像,不必知道用以确定PRJ或PRJ的实际值的参数。类似地,根据本发明的技术,不必知道用以确定MVT或MVT的实际值的参数。不管PRJ和MVT可能含有何种参数,参数可被当作一个矩阵MVP。为了产生S3D图像,可将常量2*Znear*D/(R-L)与MVP矩阵的第一行和第四列处的元素相加,或从所述元素中减去。对于任何给定3D内容,Znear/(R-L)的值可为常量。因此,组合Znear/(R-L)与D仍产生常量。在一些实施方案中,可尝试不同常量直到找到产生正确且舒适的S3D效果的常量为止。因为仅修改MVP,所以本发明的技术可在接收或不接收PRJ和MVT的单独矩阵的情况下工作。
如图3A中所示,左图像320的一部分和右图像310的一部分可能在呈现于显示平面330上时被从最终S3D图像剪掉。为了清楚起见,图3A展示略微在显示平面330之前的左图像320和略微在显示平面330之后的右图像310。然而,此仅仅用以形成图3A,因为左图像320和右图像310实际上呈现于显示平面330上。因为使用相同视锥来产生左图像320和右图像310,所以S3D图像的零视差平面(zDP)可在显示平面330之前出现,从而使得检视者感知跳出效果。如下文将更详细解释,可通过将左眼图像和右眼图像的视口偏移移位来颠倒此效果。
在一些实施方案中,应用于左眼图像和右眼图像的视口偏移的移位量可基于用户键入的参数。本发明的技术(其包含通过使用对称投影矩阵、平行检视方向和视口偏移的移位来产生S3D图像的左眼视图和右眼视图)可在一些情况下在运行时环境下呈现高质量S3D图像,且可向检视者提供S3D体验,所述S3D体验与检视由显示器的2D区域限制的图像相比较来说是较丰富较全面的体验。
图3B展示可如何使用本发明中所描述的技术而将对象(对象A)移位的实例。图3B展示随着对应视口移位的ZDP改变的图。在图3B中,线301A和301B表示在视口移位之前的右眼视口,且线303A和303B表示在视口移位之后的右眼视口。线302A和302B表示在视口移位之前的左眼视口,且线304A和304B表示在视口移位之后的视口。视口移位的深度改变的数学关系可如下导出:
Δ指示位于点A的对象的投影视口距离的一半,
VPS指示视口的视口移位量。
E指示眼睛间隔的一半距离。
首先基于点A和A′的三角法,且左眼和右眼的位置为如下:
Δ = E * Z obj - Z near Z obj     (等式17)
VP S + Δ = E * Z ′ obj - Z near Z ′ obj     (等式18)
组合上文的等式17和18,在视口移位之后在检视者空间中的对象距离可如下导出:
Z ′ obj = Z near * Z obj * E Z near * E - Z obj * VP S     (等式19)
基于上文等式19,可基于等式20而获得检视者空间中的新ZDP位置:
Z ′ ZDP = Z near * Z ZDP * E Z near * E - Z ZDP * VP S     (等式20)
图4是进一步详细说明图2的实例装置的框图。举例来说,图4进一步详细说明图2的装置210。举例来说,如上文所指示,装置210的实例包含但不限于移动无线电话、PDA、包含视频显示器的电视游戏机、移动视频会议单元、膝上型计算机、台式计算机、电视机顶盒等等。
如图4中所说明,装置210可包含应用程序处理器412、GPU420、包含帧缓冲器452的系统存储器426、收发器模块456、用户接口458、显示器460和显示处理器462。应用程序处理器412、GPU和系统存储器426可分别实质上类似于图2的应用程序处理器212、GPU220和系统存储器226。出于简洁的目的,仅详细描述图4中所示但图2中未图示的组件。
如图4中所说明的装置210可包含出于清楚的目的图4中未图示的额外模块或单元。举例来说,装置210在装置210为移动无线电话的实例中可包含扬声器和麦克风(其皆未展示于图4中)以实现电话通信,或在装置210为媒体播放器的实例中可包含扬声器。此外,装置210中所示的各种模块和单元可能并非在装置210的每一实例中都是必要的。举例来说,在装置210为台式计算机或经配备以与外部用户接口或显示器介接的其它装置的实例中,用户接口458和显示器460可在装置210的外部。
用户接口458的实例包含但不限于跟踪球、鼠标、键盘和其它类型的输入装置。用户接口458还可为触摸屏且可被并入作为显示器460的部分。收发器模块456可包含电路以允许装置410与另一装置或网络之间的无线或有线通信。收发器模块456可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路。显示器460可包括液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子体显示器、偏振显示器或另一类型的显示装置。
显示处理器462可经配置以致使显示器460显示立体视图。可存在显示处理器462可利用以致使显示器460显示立体视图的各种技术,且本发明的方面可利用此些技术中的任一者。举例来说,显示处理器462可从帧缓冲器452的左半边检索左眼图像,从帧缓冲器452的右半边检索右眼图像,且使所述两个图像交错在一起以提供立体视图。
作为另一实例,显示处理器462可控制显示器460的刷新率。在此实例中,在每一刷新周期期间,显示处理器462可在左眼图像与右眼图像之间循环。举例来说,显示处理器462可从帧缓冲器452的左半边检索左眼图像,扩大左眼图像到整个显示器460,且在一个刷新周期内在显示器460上显示左眼图像。接着,在下一个刷新周期内,显示处理器462可执行实质上类似的功能,但针对存储于帧缓冲器452的右半边中的右眼图像。换句话说,显示器460可显示左眼图像,接着右眼图像,接着左眼图像等等。
检视者可戴上与显示处理器462的刷新率同步的专用眼镜。举例来说,当显示器460正显示左眼图像时,专用眼镜可快门关闭右透镜,使得仅检视者的左眼捕获到左眼图像。接着,当显示器460正显示右眼图像时,专用眼镜可快门关闭左透镜,使得仅检视者的右眼捕获到右眼图像,等等。如果刷新率足够快,那么检视者感知立体视图,其中图像跳出显示器460之外且包含3D体积。
在一些实例中,一些常规显示处理器可不经配置以致使显示器460显示立体视图。在此些实例中,检视者可将装置210耦合到显示器,所述显示器包含显示处理器(例如,显示处理器462),所述显示处理器经配置以致使显示器呈现立体视图。举例来说,检视者可经由收发器模块456将装置210耦合到有立体视图功能的电视。举例来说,检视者可经由高清晰度多媒体接口(HDMI)线将收发器模块456耦合到电视。在此实例中,应用程序处理器412或GPU420可指挥收发器模块456将存储于帧缓冲器452中的像素值传输到电视的显示处理器。此电视的显示处理器接着可致使电视显示左眼图像和右眼图像以形成立体视图。
在此些实例中,装置210的显示器仍可能显示左眼图像和右眼图像。然而,因为装置210的显示处理器462可不能够致使装置410的显示器460呈现立体视图,所以在此实例中,显示器460可并排地显示左眼图像和右眼图像。举例来说,显示器460的左半边可显示左眼图像,且显示器460的右半边可显示右眼图像。此情形可能是由于上文所描述的视口变换。在此状况下,即使在具有专用眼镜的情况下,检视者仍不可简单地通过检视显示器460来体验立体视图,但将通过检视有立体视图功能的电视来体验立体视图。
图5是说明根据本发明中所描述之一个或一个以上实例技术的实例3D到S3D转换操作的流程图。如上文所论述,本发明中所描述的3D到S3D转换技术(包含图5的技术)可由具有GPU的系统(例如,上文所描述的图2和图4的装置210)执行。
根据图5的技术,图形驱动程序包装器(例如,图2的图形驱动程序包装器214)可拦截API调用(510)。举例来说,API调用可来自经配置以产生3D图形内容(即,非立体3D内容)的应用程序。图形驱动程序包装器216可根据API调用确定3D内容的模型视图投影矩阵(520)。如上文所描述,即使在未明确知道用以确定模型视图投影矩阵的条目的值的个别参数的情况下仍可确定那些值。在一些情况下,图形驱动程序包装器216可基于如上文所描述的PRJ*MVT确定模型视图投影矩阵。然而,在其它情况下,图形驱动程序包装器216可能不知道PRJ和MVT。图形驱动程序包装器216可修改模型视图投影矩阵以产生经修改模型视图投影矩阵(530)。
图形驱动程序包装器216可基于经修改模型视图投影矩阵产生左视图剪切坐标(540)。举例来说,可根据上文所描述的等式6来确定左视图剪切坐标,其中PRJ*MVT等于MVP。图形驱动程序包装器216可基于经修改模型视图投影矩阵产生右视图剪切坐标(550)。举例来说,可根据上文所描述的等式7来确定右视图剪切坐标,其中PRJ*MVT=MVP。GPU220可基于左视图剪切坐标产生左视图(560),且GPU220可基于右视图剪切坐标产生右视图(570)。GPU220可基于左视图和右视图呈现S3D图像(580)。在呈现于显示器上之前,GPU220可将视口移位应用于左视图,且将视口移位应用于右视图。
在一个或一个以上实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么功能可作为一个或一个以上指令或代码存储于计算机可读媒体上。计算机可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索用于实施本发明中所描述的技术的指令、代码和/或数据结构的任何可用媒体。举例来说,且并不限制,此计算机可读媒体可包括随机存取存储器(RAM)、只读存储器(ROM)、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用来存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读媒体的范围内。
可由例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或一个以上处理器来执行代码。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。并且,可将所述技术完全实施于一个或一个以上电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(即,芯片组)。本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但不一定要求通过不同硬件单元来实现。更确切地,如上所述,各种单元可在硬件单元中组合或由互操作硬件单元(包含如上所述的一个或一个以上处理器)的集合结合合适软件和/或固件来提供。
已描述了各种实例。这些及其它实例属于所附权利要求书的范围内。

Claims (36)

1.一种将非立体三维3D内容转换成立体3D S3D内容的方法,所述方法包括:
拦截应用程序接口API调用;
根据所述API调用确定用于所述非立体3D内容的模型视图投影矩阵;
修改所述模型视图投影矩阵以产生经修改的模型视图投影矩阵;
基于所述经修改的模型视图投影矩阵,产生左视图剪切坐标;
基于所述经修改的模型视图投影矩阵,产生右视图剪切坐标;
基于所述左视图剪切坐标,产生左视图;
基于所述右视图剪切坐标,产生右视图;
基于所述左视图和所述右视图,呈现S3D图像。
2.根据权利要求1所述的方法,其进一步包括:
将视口移位应用于所述左视图;及,
将视口移位应用于所述右视图。
3.根据权利要求2所述的方法,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于一个或一个以上用户输入的参数来确定的。
4.根据权利要求2所述的方法,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于确定先前产生的图像的场景的深度范围来确定的。
5.根据权利要求1所述的方法,其中修改所述模型视图投影矩阵以产生所述经修改的模型视图投影矩阵包括将常量与所述模型视图投影矩阵相加。
6.根据权利要求5所述的方法,其中将所述常量与所述模型视图投影矩阵的第一行、第四列处的元素相加。
7.根据权利要求1所述的方法,其中所述模型视图投影矩阵是针对所述非立体3D内容而定义的。
8.根据权利要求1所述的方法,其进一步包括:
接收系统命令,其中所述系统命令启用将3D内容转换成S3D内容的操作模式。
9.根据权利要求1所述的方法,其中用以产生所述左视图剪切坐标的所述经修改的模型视图投影矩阵的值与用以产生所述右视图剪切坐标的所述经修改的模型视图投影矩阵的值相同。
10.一种装置,其包括:
存储器,其存储指令;
图形处理单元GPU;及,
处理器,其可操作以在执行所述指令时进行以下动作:
拦截应用程序接口API调用;
根据所述API调用确定用于非立体3D内容的模型视图投影矩阵;
修改所述模型视图投影矩阵以产生经修改的模型视图投影矩阵;
基于所述经修改的模型视图投影矩阵,致使所述GPU产生左视图剪切坐标;
基于所述经修改的模型视图投影矩阵,致使所述GPU产生右视图剪切坐标;
基于所述左视图剪切坐标,致使所述GPU产生左视图;
基于所述右视图剪切坐标,致使所述GPU产生右视图;
基于所述左视图和所述右视图,致使所述GPU呈现S3D图像。
11.根据权利要求10所述的装置,其中所述处理器可进一步操作以:
致使所述GPU将视口移位应用于所述左视图及将视口移位应用于所述右视图。
12.根据权利要求11所述的装置,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于一个或一个以上用户输入的参数来确定的。
13.根据权利要求11所述的装置,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于确定先前产生的图像的场景的深度范围来确定的。
14.根据权利要求10所述的装置,其中所述处理器通过将常量与所述模型视图投影矩阵相加来修改所述模型视图投影矩阵。
15.根据权利要求14所述的装置,其中所述常量与所述模型视图投影矩阵的第一行、第四列处的元素相加。
16.根据权利要求10所述的装置,其中所述模型视图投影矩阵是针对所述非立体3D内容而定义的。
17.根据权利要求10所述的装置,其中所述处理器可进一步操作以:
接收系统命令,其中所述系统命令启用将3D内容转换成S3D内容的操作模式。
18.根据权利要求10所述的装置,其中用以产生所述左视图剪切坐标的所述经修改的模型视图投影矩阵的值与用以产生所述右视图剪切坐标的所述经修改的模型视图投影矩阵的值相同。
19.一种用于将非立体三维3D内容转换成立体3D S3D内容的设备,所述设备包括:
用于拦截应用程序接口API调用的装置;
用于根据所述API调用确定用于所述非立体3D内容的模型视图投影矩阵的装置:
用于修改所述模型视图投影矩阵以产生经修改的模型视图投影矩阵的装置;
用于基于所述经修改的模型视图投影矩阵产生左视图剪切坐标的装置;
用于基于所述经修改的模型视图投影矩阵产生右视图剪切坐标的装置;
用于基于所述左视图剪切坐标产生左视图的装置;
用于基于所述右视图剪切坐标产生右视图的装置;
用于基于所述左视图和所述右视图呈现S3D图像的装置。
20.根据权利要求19所述的设备,其进一步包括:
用于将视口移位应用于所述左视图的装置;及,
用于将视口移位应用于所述右视图的装置。
21.根据权利要求20所述的设备,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于一个或一个以上用户输入的参数来确定的。
22.根据权利要求20所述的设备,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于确定先前产生的图像的场景的深度范围来确定的。
23.根据权利要求19所述的设备,所述用于修改所述模型视图投影矩阵以产生所述经修改的模型视图投影矩阵的装置包括用于将常量与所述模型视图投影矩阵相加的装置。
24.根据权利要求23所述的设备,其中所述用于相加所述常量的装置将所述常量与所述模型视图投影矩阵的第一行、第四列处的元素相加。
25.根据权利要求19所述的设备,其中所述模型视图投影矩阵是针对所述非立体3D内容而定义的。
26.根据权利要求19所述的设备,其进一步包括:
用于接收系统命令的装置,其中所述系统命令启用将3D内容转换成S3D内容的操作模式。
27.根据权利要求19所述的设备,其中用以产生所述左视图剪切坐标的所述经修改的模型视图投影矩阵的值与用以产生所述右视图剪切坐标的所述经修改的模型视图投影矩阵的值相同。
28.一种计算机可读存储媒体,其上存储有指令,所述指令当被执行时致使一个或一个以上处理器:
拦截应用程序接口API调用;
根据所述API调用确定用于所述非立体3D内容的模型视图投影矩阵;
修改所述模型视图投影矩阵以产生经修改的模型视图投影矩阵;
基于所述经修改的模型视图投影矩阵,产生左视图剪切坐标;
基于所述经修改的模型视图投影矩阵,产生右视图剪切坐标;
基于所述左视图剪切坐标,产生左视图;
基于所述右视图剪切坐标,产生右视图;
基于所述左视图和所述右视图,呈现S3D图像。
29.根据权利要求28所述的计算机可读存储媒体,其上存储有其它指令,所述指令当被执行时致使所述一个或一个以上处理器:
将视口移位应用于所述左视图;及,
将视口移位应用于所述右视图。
30.根据权利要求29所述的计算机可读存储媒体,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于一个或一个以上用户输入的参数来确定的。
31.根据权利要求29所述的计算机可读存储媒体,其中所述左视图的所述视口移位的量和所述右视图的所述视口移位的量是基于确定先前产生的图像的场景的深度范围来确定的。
32.根据权利要求28所述的计算机可读存储媒体,其中所述一个或一个以上处理器通过将常量与所述模型视图投影矩阵相加来修改所述模型视图投影矩阵。
33.根据权利要求32所述的计算机可读存储媒体,其中所述常量与所述模型视图投影矩阵的第一行、第四列处的元素相加。
34.根据权利要求28所述的计算机可读存储媒体,其中所述模型视图投影矩阵是针对所述非立体3D内容而定义的。
35.根据权利要求28所述的计算机可读存储媒体,其上存储有其它指令,所述指令当执行时致使所述一个或一个以上处理器:
接收系统命令,其中所述系统命令启用将3D内容转换成S3D内容的操作模式。
36.根据权利要求28所述的计算机可读存储媒体,其中用以产生所述左视图剪切坐标的所述经修改的模型视图投影矩阵的值与用以产生所述右视图剪切坐标的所述经修改模型视图投影矩阵的值相同。
CN201280013469.8A 2011-03-14 2012-03-13 原生单像3d到立体3d的运行时转换 Expired - Fee Related CN103444190B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161452289P 2011-03-14 2011-03-14
US61/452,289 2011-03-14
US201161474638P 2011-04-12 2011-04-12
US61/474,638 2011-04-12
US13/418,206 2012-03-12
US13/418,206 US9219902B2 (en) 2011-03-14 2012-03-12 3D to stereoscopic 3D conversion
PCT/US2012/028941 WO2012125648A1 (en) 2011-03-14 2012-03-13 Run -time conversion of native monoscopic 3d into stereoscopic 3d

Publications (2)

Publication Number Publication Date
CN103444190A true CN103444190A (zh) 2013-12-11
CN103444190B CN103444190B (zh) 2016-06-08

Family

ID=46828080

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280018404.2A Expired - Fee Related CN103493102B (zh) 2011-03-14 2012-03-12 用于基于着色器的图形内容的立体转换
CN201280013469.8A Expired - Fee Related CN103444190B (zh) 2011-03-14 2012-03-13 原生单像3d到立体3d的运行时转换

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201280018404.2A Expired - Fee Related CN103493102B (zh) 2011-03-14 2012-03-12 用于基于着色器的图形内容的立体转换

Country Status (6)

Country Link
US (2) US9578299B2 (zh)
EP (2) EP2686833B1 (zh)
JP (2) JP5694577B2 (zh)
KR (2) KR101556835B1 (zh)
CN (2) CN103493102B (zh)
WO (2) WO2012125545A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486611A (zh) * 2014-12-29 2015-04-01 北京极维客科技有限公司 一种图像转换方法及装置
CN104134231B (zh) * 2014-07-11 2017-02-01 南京乐飞航空技术有限公司 一种基于图像识别的海岸线构造方法
CN115457200A (zh) * 2022-08-31 2022-12-09 北京四维远见信息技术有限公司 2.5维图像自动真立体显示方法、装置、设备及存储介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010121945A2 (en) * 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications
KR20130081569A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 3d 영상을 출력하기 위한 장치 및 방법
US9538164B2 (en) 2013-01-10 2017-01-03 Qualcomm Incorporated Stereoscopic conversion with viewing orientation for shader based graphics content
EP2972863A4 (en) * 2013-03-13 2016-10-26 Intel Corp IMPROVED PROCESSES FOR THREE-DIMENSIONAL IMAGE PROCESSING
US20140375663A1 (en) * 2013-06-24 2014-12-25 Alexander Pfaffe Interleaved tiled rendering of stereoscopic scenes
US10134170B2 (en) * 2013-09-26 2018-11-20 Intel Corporation Stereoscopic rendering using vertix shader instancing
KR102082132B1 (ko) * 2014-01-28 2020-02-28 한국전자통신연구원 2d 동영상으로부터 새로운 3d 입체 동영상 제작을 위한 장치 및 방법
US20150281679A1 (en) 2014-03-28 2015-10-01 Qualcomm Incorporated Pixel data generation for autostereoscopy images
CN105635707A (zh) * 2014-11-06 2016-06-01 福州瑞芯微电子股份有限公司 一种图像生成方法和装置
US9626733B2 (en) * 2014-11-24 2017-04-18 Industrial Technology Research Institute Data-processing apparatus and operation method thereof
GB2536964B (en) 2015-04-02 2019-12-25 Ge Aviat Systems Ltd Avionics display system
US10186008B2 (en) * 2015-05-28 2019-01-22 Qualcomm Incorporated Stereoscopic view processing
KR102459850B1 (ko) 2015-12-03 2022-10-27 삼성전자주식회사 3d 이미지 처리 방법 및 장치, 및 그래픽 처리 장치
US10203747B2 (en) 2016-03-22 2019-02-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Workload placement based on heterogeneous compute performance per watt
US10860499B2 (en) 2016-03-22 2020-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamic memory management in workload acceleration
US10884761B2 (en) 2016-03-22 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Best performance delivery in heterogeneous computing unit environment
US10460513B2 (en) * 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
WO2018140223A1 (en) * 2017-01-25 2018-08-02 Advanced Micro Devices, Inc. Stereo rendering
US20180211434A1 (en) * 2017-01-25 2018-07-26 Advanced Micro Devices, Inc. Stereo rendering
CN106993179A (zh) * 2017-02-24 2017-07-28 杭州电子科技大学 一种3d模型转立体双视点视图的方法
US20240070959A1 (en) * 2022-08-25 2024-02-29 Acer Incorporated Method and computer device for 3d scene generation

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496183B1 (en) 1998-06-30 2002-12-17 Koninklijke Philips Electronics N.V. Filter for transforming 3D data in a hardware accelerated rendering architecture
FR2532267B1 (fr) 1982-08-31 1988-05-27 Lely Nv C Van Der Tracteur comportant une pluralite de roues motrices
US6104405A (en) 1997-02-26 2000-08-15 Alternate Realities Corporation Systems, methods and computer program products for converting image data to nonplanar image data
US5982375A (en) 1997-06-20 1999-11-09 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes single-pass stereo capability
GB2358980B (en) 2000-02-07 2004-09-01 British Broadcasting Corp Processing of images for 3D display
GB0010685D0 (en) 2000-05-03 2000-06-28 Koninkl Philips Electronics Nv Autostereoscopic display driver
US20020154214A1 (en) 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US20040085310A1 (en) 2002-11-04 2004-05-06 Snuffer John T. System and method of extracting 3-D data generated for 2-D display applications for use in 3-D volumetric displays
AU2002952872A0 (en) 2002-11-25 2002-12-12 Dynamic Digital Depth Research Pty Ltd Image generation
US20040212612A1 (en) 2003-04-28 2004-10-28 Michael Epstein Method and apparatus for converting two-dimensional images into three-dimensional images
GB0410551D0 (en) 2004-05-12 2004-06-16 Ller Christian M 3d autostereoscopic display
US8004515B1 (en) * 2005-03-15 2011-08-23 Nvidia Corporation Stereoscopic vertex shader override
WO2007017834A2 (en) * 2005-08-09 2007-02-15 Koninklijke Philips Electronics N.V. Disparity value generator
JP4931038B2 (ja) 2005-11-22 2012-05-16 シャープ株式会社 立体視画像装置、ゲーム装置、立体視画像映写装置、立体視画像データ生成方法、制御プログラムおよび可読記録媒体
US8284204B2 (en) * 2006-06-30 2012-10-09 Nokia Corporation Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering
US8237739B2 (en) 2006-09-12 2012-08-07 Qualcomm Incorporated Method and device for performing user-defined clipping in object space
US8149242B2 (en) * 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US7982733B2 (en) 2007-01-05 2011-07-19 Qualcomm Incorporated Rendering 3D video images on a stereo-enabled display
JP4836814B2 (ja) 2007-01-30 2011-12-14 株式会社東芝 3dディスプレイ用cg画像生成装置、3dディスプレイ用cg画像生成方法、及びプログラム
US7884823B2 (en) 2007-06-12 2011-02-08 Microsoft Corporation Three dimensional rendering of display information using viewer eye coordinates
JP2009064355A (ja) 2007-09-07 2009-03-26 Cellius Inc プログラム、情報記憶媒体及び画像生成システム
JP4982862B2 (ja) 2007-09-07 2012-07-25 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
US7675513B2 (en) * 2008-03-14 2010-03-09 Evans & Sutherland Computer Corp. System and method for displaying stereo images
US8279222B2 (en) 2008-03-14 2012-10-02 Seiko Epson Corporation Processing graphics data for a stereoscopic display
EP2387243A4 (en) 2009-01-12 2012-12-26 Lg Electronics Inc DEPTH INFORMATION USING VIDEO SIGNAL PROCESSING METHOD AND DEVICE
US9001157B2 (en) 2009-03-25 2015-04-07 Nvidia Corporation Techniques for displaying a selection marquee in stereographic content
WO2010121945A2 (en) 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications
GB2470759A (en) 2009-06-03 2010-12-08 Sony Comp Entertainment Europe Displaying videogame on 3D display by generating stereoscopic version of game without modifying source code
CN102474638B (zh) 2009-07-27 2015-07-01 皇家飞利浦电子股份有限公司 组合3d视频与辅助数据
US8773449B2 (en) 2009-09-14 2014-07-08 International Business Machines Corporation Rendering of stereoscopic images with multithreaded rendering software pipeline
KR101631514B1 (ko) 2009-11-19 2016-06-17 삼성전자주식회사 전자기기에서 3차원 컨텐츠 생성 방법 및 장치
US8964013B2 (en) 2009-12-31 2015-02-24 Broadcom Corporation Display with elastic light manipulator

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104134231B (zh) * 2014-07-11 2017-02-01 南京乐飞航空技术有限公司 一种基于图像识别的海岸线构造方法
CN104486611A (zh) * 2014-12-29 2015-04-01 北京极维客科技有限公司 一种图像转换方法及装置
WO2016107531A1 (zh) * 2014-12-29 2016-07-07 北京极维客科技有限公司 一种图像转换方法及装置
CN115457200A (zh) * 2022-08-31 2022-12-09 北京四维远见信息技术有限公司 2.5维图像自动真立体显示方法、装置、设备及存储介质
CN115457200B (zh) * 2022-08-31 2023-04-14 北京四维远见信息技术有限公司 2.5维图像自动真立体显示方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP2687018A1 (en) 2014-01-22
JP2014516427A (ja) 2014-07-10
JP5882367B2 (ja) 2016-03-09
US20120236002A1 (en) 2012-09-20
JP2014512032A (ja) 2014-05-19
CN103493102B (zh) 2016-11-09
US9219902B2 (en) 2015-12-22
WO2012125648A1 (en) 2012-09-20
EP2686833A1 (en) 2014-01-22
KR101529812B1 (ko) 2015-06-17
CN103493102A (zh) 2014-01-01
JP5694577B2 (ja) 2015-04-01
EP2686833B1 (en) 2018-06-20
US20120235999A1 (en) 2012-09-20
CN103444190B (zh) 2016-06-08
KR20130131480A (ko) 2013-12-03
KR101556835B1 (ko) 2015-10-01
WO2012125545A1 (en) 2012-09-20
US9578299B2 (en) 2017-02-21
KR20130136536A (ko) 2013-12-12

Similar Documents

Publication Publication Date Title
CN103444190B (zh) 原生单像3d到立体3d的运行时转换
CN107274338B (zh) 用于深度图的低等待时间变形的系统、方法和装置
EP2944081B1 (en) Stereoscopic conversion of graphics content based on viewing orientation
US10389995B2 (en) Apparatus and method for synthesizing additional information while rendering object in 3D graphic-based terminal
US10237539B2 (en) 3D display apparatus and control method thereof
KR101690034B1 (ko) 3차원 그래픽 기반 단말기에서 객체 렌더링 장치 및 방법
US11836882B2 (en) Three-dimensional point cloud-based initial viewing angle control and presentation method and system
KR100980298B1 (ko) 모델링된 2차원 영상의 3차원 영상 변환 방법
KR101781869B1 (ko) 영상변환장치
KR20170073937A (ko) 영상 데이터 전송 방법 및 장치, 및 3차원 영상 생성 방법 및 장치
CN101895781A (zh) 立体显示方法和立体显示装置
US20130176405A1 (en) Apparatus and method for outputting 3d image
CN115457200B (zh) 2.5维图像自动真立体显示方法、装置、设备及存储介质
KR101186808B1 (ko) 입체 프리젠테이션 영상 변환 프로그램이 저장된 컴퓨터로 읽을 수 있는 매체, 그 프로그램이 저장된 서버 시스템 및 입체 프리젠테이션 영상 변환방법
CN102572488A (zh) 立体图像生成系统
CN118115693A (zh) 生成并排三维影像的方法及电脑装置
Flack et al. Architecture for high performance stereoscopic game rendering on Android
Zhang et al. The application of autostereoscopic display in smart home system based on mobile devices
KR20120012589A (ko) 입체 프리젠테이션 영상 제작 프로그램이 저장된 컴퓨터로 읽을 수 있는 매체, 그 프로그램이 저장된 서버 시스템 및 무 안경 방식의 다 시점 입체영상 출력 엔진용 입체 프리젠테이션 영상 제작방법
CN106231281A (zh) 一种显示转换方法和装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160608