CN1277698A - 用于变换硬件加速绘制结构中的三维数据的滤光器 - Google Patents
用于变换硬件加速绘制结构中的三维数据的滤光器 Download PDFInfo
- Publication number
- CN1277698A CN1277698A CN99801455A CN99801455A CN1277698A CN 1277698 A CN1277698 A CN 1277698A CN 99801455 A CN99801455 A CN 99801455A CN 99801455 A CN99801455 A CN 99801455A CN 1277698 A CN1277698 A CN 1277698A
- Authority
- CN
- China
- Prior art keywords
- data
- light filter
- produce
- viewpoint data
- computer system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/275—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/286—Image signal generators having separate monoscopic and stereoscopic modes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
一种用于为图形物体产生多个视图的方法和装置采用变换数据的3D内容的滤光器。滤光器被构造为从3D绘制机接收函数调用,并根据图形物体的3D内容产生多个视点数据。滤光器然后将视点数据发送到显示驱动程序以显示在显示设备上。在一个实施例中,显示设备是用于观看左眼和右眼视点数据的立体显示器。
Description
相关申请的交叉参考
本申请涉及下列共同转让的、共同未决的申请:1997年11月18日申请的序号为08/972,511、题目为“在图形机和驱动程序之间的用于提取信息的滤光器”以及1997年12月31日申请的序号为09/002,139、题目为“用于动态控制显示监视器上的物体的亮度的装置和方法”,这两个申请在这里都作为参考。
技术领域
本发明涉及产生图形、尤其是产生3维(3D)图形的计算机系统。
背景技术
应用增加图形的软件应用程序已经变得越来越普遍。例如,视频游戏常常采用增大数量的3D图形来在典型的个人计算机(PC)监视器上显示。这些图形应用要求计算机系统包括3D绘制软件以支持图形内容。图1是显示用于执行典型的图形应用程序和显示图形的常规计算机系统的方框图。
参看图1,计算机系统10例如可以实施为一个应用来自微软公司的Windows 9x或Windows NT操作系统的奔腾PC。计算机系统100包括软件部分12和硬件部分14。软件部分12包括应用程序16、操作系统3D绘制机18和第三方2维(2D)显示驱动程序20。应用程序16产生对计算机系统10的操作系统(OS)的函数调用,以执行OS服务。更具体地,应用程序16产生通过操作系统的定义应用程序接口(API)对3D绘制机18、也称为图形模块进行的函数调用。
3D绘制机18执行与图形相联系的操作,例如跟踪景物的状态、将几何和纹理高速缓存成其内部表示、根据应用程序调用定制绘制机18,等等。3D绘制机18采用临时缓冲器、例如模板缓冲器和Z缓冲器来操作它处理的3D目标,并用一个或多个最终结果2D缓冲器来存储已绘制的帧。在执行了3D绘制之后,应用程序16指导3D绘制机18通过2D显示驱动程序20将景物绘制进一个结果帧缓冲器。3D绘制机通过操作系统的API与2D显示驱动程序20进行通信。3D绘制机18将3D景物绘制成一般位于2D显示适配器22中的帧缓冲器中的最终2D图象。2D显示适配器然后将帧缓冲器中的视频数据变换成模拟视频(RGB)信号,显示监视器24显示该最终信号。
发明概述
图1中所示的软件绘制结构的缺陷是3D绘制机18的输出仅仅是2D显示适配器22的帧缓冲器中的2维(2D)图象。然后将2D图象输出给监视器24、例如常规的PC监视器。因此,软件绘制结构不能产生立体的3D内容。
另外,在使用硬件绘制结构的其他系统中,3D加速设备可用于以硬件执行一些或全部绘制请求。然而,3D绘制的结果输出仍然仅仅是3D加速器的帧缓冲器中的2D图象。因此,在使用硬件绘制结构的系统中,系统不能产生立体的3D内容。
对于计算机系统中的结构存在着一个需求,例如对于头盔式显示器能够产生图形物体的立体3D图象。还需要一种能够产生立体3D图象并采用传统硬件驱动器和3D加速硬件输出的结构。
本发明满足了这些和其他需求,其中,立体滤光器截取了来自操作系统图形模块的、到要求在图形物体上进行3D绘制操作的显示驱动程序的调用。滤光器然后为左眼视点和右眼视点产生立体图象数据,并存储在帧缓冲器中。然后将来自显示驱动程序的输出变换成模拟视频信号,并输出到一个立体显示设备。
依据本发明的一个方面,提供了一种用于产生图形物体的3D数据的方法。该方法包括在3D绘制模块中为图形物体的3D绘制操作产生一个函数调用请求。该方法还包括由滤光器接收该函数调用请求,并为3D图形物体产生多个视点数据。
本发明的另一个方面提供了计算机可读的介质,所述介质包括所存储的由处理器执行的指令序列。这些指令使处理器接收由3D绘制模块产生的请求对图形物体进行3D操作的函数调用。这些指令还使处理器为图形物体产生多个视点数据。
从下列的详细描述中,本发明的其他目的和优点对于本领域普通技术人员来说将变得更加明显。所显示和描述的实施例提供了对预期实现本发明的最好方式。本发明能够在各个明显的方面被修改,这些都不偏离本发明。因此,附图是出于示例性目的而非限制。
附图简要说明
下面对附图进行参考,其中,具有相同标号的元件是相似元件。
图1是采用软件绘制的常规计算机显示系统的方框图。
图2是可以实施本发明的示例性计算机系统的方框图。
图3是显示依据本发明的一个实施例的示例性计算机系统的操作的流程图。
图4A-4C显示了可用于本发明的各种水平立体模式。
图5A-5C显示了可用于本发明的各种垂直立体模式。
图6A-6B显示了视点绘制。
图7A-7C显示了依据本发明的一个实施例的视点绘制。
图8显示了在观察者模型中使用的虚拟焦点眼点模型。
图9显示了图8中物体的修改后投影。
图10显示了图9中投影的左眼坐标系统。
图11是可以采用本发明的计算机系统的简化方框图。
发明详细说明
本发明提供了用于采用立体滤光器产生立体3D图形的装置和方法。立体滤光器是在计算机系统的操作系统中结合的软件模块,被构造为截取到3D硬件加速驱动程序的函数调用。滤光器为图形物体产生左眼和右眼视点数据,并将数据输出到显示驱动程序,存储在帧缓冲器中。
依据图2所示的本发明的一个实施例,计算机系统100包括采用支持应用程序16执行的操作系统的软件40和硬件部分50,下面将进行说明。操作系统包括上面已经结合图1详细描述了的3D绘制机18,用于为软件应用程序16产生图形。更具体地,应用程序16产生通过操作系统的定义应用程序接口(API)对3D图形绘制机18、也称为图形模块进行的函数调用。
3D绘制机18执行与图形相联系的操作,并以硬件加速绘制模式构造。也就是说,3D绘制机18被构造为产生对显示驱动程序的函数调用。更具体地,3D绘制机18通过API发送为3D加速驱动器28设计的、请求执行图形物体的图形相关操作的函数调用。
立体滤光器26是软件部分,由计算机系统100的OS以与加载常规显示驱动程序相同的方式进行加载。立体滤光器26对于3D绘制机18显示为被构造为运行和执行由3D绘制机18调用的图形操作的常规第三方显示驱动程序。因此,立体滤光器26对于3D绘制机18是透明的。
硬件加速驱动器28被实现为一个扩展3D绘制机18的单独代码模块。因此,它在OS 3D绘制机18的环境中运行。3D加速驱动器28还露出一个通过入口点阵列的作为由OS 3D绘制机18调用的例程被调用的接口。立体滤光器26应用该接口并采用相同的入口点作为3D加速驱动器28。
例如,在微软Windows OS中,3D绘制机18和3D硬件加速驱动器28被实施为一个动态链接库(DLL)。因此,每个可执行代码模块具有外部代码可以链接和调用的输出函数的入口点。通过在立体滤光器26中实施相同的所需入口点,3D绘制机18将立体滤光器26当作常规OEM驱动程序使用。
因此,立体滤光器26截取为3D硬件加速驱动器28设计的函数调用并执行各种图形操作,例如初始化、绘制和方式改变活动。虽然3D绘制机被构造为产生到3D硬件加速驱动器28的函数调用,但实际的3D加速器30并不需要。实际的3D绘制可以通过回调3D绘制机18以软件仿真该请求来以软件实现。然而,出于例示的目的,在图2中显示的实施例包括3D加速器30。
参看图2,3D硬件加速驱动器28控制3D加速器30。3D加速驱动器28以视频数据和控制数据的形式将数据输出到3D加速器。3D加速器一般包括用于存储视频数据的帧缓冲器31和用于将视频数据变换成模拟RGB信号的数模(DAC)变换器32。
立体滤光器26软件操作采用三组主要的入口点:
1)加载入口点-包括由计算机系统100加载立体滤光器26和确保对来自3D绘制机1 8的请求的正确滤波的其他初始化活动。
2)方式设置入口点-使专门的立体方式被设置。这将2D帧缓冲器31的管理从一个视点变成左边和右边视点以进行立体显示。
3)运行时间入口点-包括必须的变换,所述变换以定义的立体方式将单个视点3D物体几何形状变换成左边和右边视点。
图3是显示图2的计算机系统100的操作的流程图。在步骤60,将立体滤光器26以与加载常规硬件加速驱动程序相似的方式加载进计算机系统100。例如,立体滤光器26安装过程将立体滤光器26登记在系统数据库中,作为系统的3D加速驱动器28。对其他杂项初始化的需要取决于所采用的特定3D绘制机18。例如,不同的3D绘制机18具有不同的机构来确保该绘制机总是调用驱动程序、在这种情况下即为立体滤光器26来进行任何绘制活动。
立体滤光器26进行操作以确保3D绘制机不会试图将图象直接绘制成2D帧缓冲器31。有各种方式可以使立体滤光器26完成这一点。例如,立体滤光器26可以声明它本身为一个对3D绘制机18的设备管理表面驱动程序或全加速驱动程序。立体滤光器26然后处理来自3D绘制机18的几何函数调用。
几何调用将3D物体映射成帧缓冲器31中的2D象素。立体滤光器26然后将输入的3D物体传送到观察者模型,以产生两个视图,并从这里进入重新格式化的2D缓冲器,这将在下面详细说明。
在加载了立体滤光器26之后,立体滤光器26在步骤62定义帧缓冲器31中的专用立体方式。对于一给定立体方式,将左眼和右眼视点帧压缩进帧缓冲器31。特定方式可以是逐行水平立体方式。例如,参看图4A-4C,图4A表示存储在常规帧缓冲器中的图形物体。图4B表示帧缓冲器双倍于常规帧缓冲器的长度的方式。在这种情况下,将物理帧缓冲器31分成两个帧,将物理帧缓冲器31中的每一行分为包含左行和右行,如图4B所示。或者,如果帧缓冲器的尺寸限制不允许将帧缓冲器的实际长度加倍,则在X方向上压缩左帧和右帧,如图4C所示,以保持初始帧缓冲器的行长度。
或者,立体方式可以是逐帧垂直立体方式。例如,参看图5A-5C,图5A表示存储在常规帧缓冲器中的图形物体。图5B表示帧缓冲器双倍于常规帧缓冲器的高度的方式。在这种情况下,将物理帧缓冲器31分成两个区域。上半个区域保存左眼帧(或右眼帧),下半个区域保存右眼帧(或左眼帧),如图5B所示。或者,如果帧缓冲器31的尺寸限制不允许将帧缓冲器的实际高度加倍,则在Y方向上压缩左帧和右帧,如图5C所示,以获得初始帧缓冲器的列尺寸。
也可以在立体滤光器26中实施其他已知的保存右视图和左视图的立体方式,这取决于所使用的特定立体显示器34。一般位于3D加速器30上的数模变换器(DAC)32扫描帧缓冲器31,并产生一个包含左帧以及随后的右帧的模拟视频信号。立体显示器34将模拟信号解码并从该信号中提取单独的视图。
由于帧缓冲器31的结构可以由立体滤光器26改变,所以可能需要更多的存储器或不同的存储器分配。然而,立体滤光器26被构造为定义一个具有满足其需求的存储器容量的方式。在步骤64,执行立体滤光器26运行期阶段。也就是说,立体滤光器26截取来自3D绘制机18的几何请求。在上述的一个例示性实施例中,立体滤光器26可以声明它本身为一个设备管理驱动程序,以消除对帧缓冲器31的任何直接的写操作,3D绘制机18将不会试图直接仿真进帧缓冲器31并旁通过立体滤光器26。
立体滤光器26接收来自3D绘制机18的绘制请求。3D绘制机18一般与表示为变元(argument)的3D物体一起传送绘制请求。如何对3D数据编码的特定细节随不同的绘制机实施方式而改变。然而,每个3D机必须定义其基本3D几何术语,因为对于3D景物有标准部件。在本领域中已知的常见3D物体表示形式采用空间中的表示多边形、通常是三角形的点,这些点平铺显示物体表面以形成一个3D物体。
接着,在步骤66,立体滤光器26通过为每只眼产生几何值来修改3D物体几何请求。景物中的每个3D物体由观察者模型算法修改,以反射来自空间中的另一点的投影。
下面将结合相对于最终绘制视点的3D物体的观察者模型表示来描述本发明。有许多可能的观察者模型可以在立体滤光器26中实施。每个特定的观察者模型增亮3D景深感觉和模型的不同的头部和眼的构造的不同方面。在下面的讨论中,只讨论立体滤光器26所需的输入及其输出,以便不会过分地模糊本发明。然而,对于这里所公开的给定的指导和目标,观察者模型处理的特定细节可以根据所使用的特定3D绘制机18以及其他系统限制来容易地实施。
在观察者模型处理中,将每个3D物体分成两个情况或视点,即左视点和右视点。将3D几何的给定目标投影平面用两个新的投影平面代替,每个平面对应一只眼睛。新平面的3D位置对初始投影平面的准确关系是观察者模型。观察者模型的特定细节取决于OS 3D绘制机18几何表示,并且3D绘制机18顺便指明目标2D绘制平面。
例如,在将3D景物绘制成空间中一点的投影的系统中,立体滤光器26观察者模型表示用对3D加速驱动程序30的两个不同的绘制请求代替了来自3D绘制机18的绘制请求。
图6A-6B显示了没有立体滤光器的采用规则视点绘制的3D绘制,图7A-7C显示了采用立体滤光器26的视点绘制。如图7C所示,立体滤光器26将所请求的视点移到左边以得到左视点,并将结果分配进帧缓冲器31的左帧中。第二个请求以同样的方式处理右视点。在立体滤光器26观察者模型中,只有视点绘制请求产生两个视点,一只眼睛一个视点,并将所得的眼帧存储在帧缓冲器31中。
或者,在固定点绘制机中,总是将景物绘制成XY明码(plain),而几何是在XYZ笛卡儿空间中,景物中的每个点都被重新定位,以表示左视点,再表示右视点。确切的移动取决于空间中眼睛的位置。
在本领域中还有其他各种已知的模型可以用于为空间中的3D物体产生物理视点。然而,出于例示的目的,下面的观察者模型变换是证明立体滤光器26的处理步骤的一个例子。在该例子中,对于3D绘制机请求将3D物体从其XYZ表示绘制成XY平面的情况调节该模型。
图8显示了虚拟焦点眼点模型表示。给定目标2D平面W×H的宽度和高度,将如图8所示的空间中位置h处的点设置为远离投影平面,在目标XY平面的中间。这一点h模拟眼睛焦点。为了生成单独的左右视图,将焦点眼点重新定位到左边和右边,立体滤光器26重新计算3D物体相对于重新定位的点的XYZ位置。
将焦点在X轴方向移动量d。左眼坐标变为(W/2-d,H/2,h),右眼坐标变为(W/2+d,H/2,h)。立体滤光器26然后采用新的焦点来产生新坐标系X’Y’Z’,如图9所示,该新坐标系X’Y’Z’与原来的XYZ坐标系具有相同的Y轴,但向新焦点偏移角度α,以恢复其在X’轴上的中心位置W/2以及在Y轴上的H/2。对于新的眼视图,变换的3D物体在新坐标系X’Y’Z’中表示,并绘制进眼视图2D缓冲器。
虽然上述模型是由描绘观察者的景深感觉的h和d参数定义的,但立体滤光器26可以仅仅根据倾斜角度α来确定模型的参数。
图10显示了图9的左视图投影平面的顶视图。因为新的X’Y’Z’坐标系与原来的坐标系具有同一个Y轴,所以3D点的Y值保持相同。从图10可以定义如下关于α的等式:
i)sinα=k/(z+1)=1/(x’+k)
ii)cosα=z’/(z+1)=x/(x’+k)
iii)tanα=l/x=k/z’
从等式iii)可以得出,l=xtanα,从等式ii)可以得出,z’=(z+1)cosα=(z+xtanα)cosα=zcosα+xsinα。此外,从等式iii)可以得出,k=z’tanα=zsinα+xsinαtanα,从等式ii)可以得出,x’=(x-kcosα)/cosα=x/cosα-k=x(l/cosα-sinαsinα/cosα)-zsinα=xcosα-zsinα。利用上述等式,立体滤光器26获得左视点的下列新坐标:
iv)x’==xcosα-zsinα,
z’=zcosα+xsinα,以及
y’=y
立体滤光器26然后通过将左视图的结果进行对称来计算同一点的右视图。也就是说,立体滤光器26将该点对称到左边,从(x,y,z)到(W-x,y,z)。接着,立体滤光器26采用上面的等式iv)的变换来计算该点的左值。最后,立体滤光器26将所得点再对称回右边,从(x’,y’,z’)到(W-x’,y’,z’)。
在计算了该点的左值和右值之后,立体滤光器26将左点和右点移动到立体方式中的正确位置。其变换细节取决于立体方式中帧缓冲器31的确切格式,如上所述,该格式是由立体滤光器26确定的。例如,如果采用图4B所示的相同长度的缓冲器水平方式,则立体滤光器26将左视图定位在初始帧缓冲器的左半边,将右视图定位在右半边。则左点(x’,y’,z’)将移到(x’/2,y’,z’),而右点将移到(W/2+x’/2,y’,z’)。其他方式将按比例或不按比例地改变Y值。最后,立体滤光器26将新的几何传送到3D加速驱动器28中的绘制级。
还参看图3,在步骤68,在已经产生了左眼和右眼视点数据之后,立体滤光器26将3D物体改发到3D加速驱动器28,以便将左眼物体绘制进帧缓冲器31的左帧,将右眼物体绘制进右帧。将2D内容进行复制以便既出现左帧缓冲器中又出现在右帧缓冲器中。
接着,在步骤70,3D加速驱动程序根据先前设置的立体方式将物体数据存储在帧缓冲器31中。在步骤72,DAC 32将模拟RGB信号输出到立体显示器34。立体显示器34的特定实施细节可以根据所用设备而不同。然而,立体显示器34被设计为在观察者的脑海中产生一个真实的立体效果,其中假设两个帧被正确地移动以匹配两眼之间的距离。
例如,可以使用头盔式显示器,在该显示器中,每只眼睛都有一个单独的监视器。在这种类型的显示器中,调制RGB信号,以产生模拟景深视觉的效果。
或者,也可以使用投影两个视图的投影系统显示器。在这种显示器中,观察者使用专门的眼镜挡住一个视图,让另一个视图通过眼睛,从而给每只眼睛传送不同的视图。常见的实施方式采用不同的颜色或极化,将颜色或极化滤光器装在眼镜上。
在任何情况下,立体滤光器26都可以与任何立体显示设备一起使用,因为产生了从DAC 32输出的RGB视频信号以满足工业标准。
上面已经描述了采用硬件加速绘制结构产生图形物体的立体3D图象的方法和装置。图2的计算机系统100例如可以实施为采用微软公司的Window 9x或Windows NT操作系统的奔腾PC。然而,立体滤光器并不限于使用任何特定的操作系统。例如,图11是可以实施本发明的一个实施例的计算机系统200的简化方框图。计算机系统200包括总线210或用于传送信息的其他通信媒介,以及与总线210相连的用于处理信息的处理器202。计算机系统200还包括与总线210相连的随机存取存储器(RAM)或其他动态存储设备204(称为主存储器),用于存储信息和由处理器202执行的指令。主存储器204还可以用于在处理器202执行指令期间存储临时变量或其他中间信息。计算机系统200还包括与总线210相连的只读存储器(ROM)和/或其他静态存储设备206,用于存储处理器202的静态信息和指令。数据存储设备208、例如磁盘或光盘及其相应的磁盘驱动器可以与总线210相连,用于存储信息和指令。
本发明的立体滤光器可以被有利地构造为与任何卖主3D绘制机、例如微软公司的OpenGL或Direct3D相连接。然而,专门的立体滤光器实施方式将与专门的3D绘制机一起使用,因为滤光器与绘制机的专门接口点相连接。此外,立体滤光器26并不限于与任何特定的3D加速驱动程序一起使用,因为在滤光器与加速驱动程序之间的通信是在相同公布的API上进行的。
另外,立体滤光器可以有利地与任何第三方3D加速器或视频适配器一起使用。立体滤光器被构造为根据实际应用的设备设置立体方式。此外,立体滤光器可用于支持其立体方式的任何立体显示设备。本发明的另一个优点是不必修改OS软件和第三方部件以适应立体滤光器,从而节约了与定制各种软件和硬件部分相联系的相当多的时间和花费。
本发明的与上述观察者模型相联系的一个重要的方面是将视图的观察者视点改变到3D空间中的任何位置的能力。用户则控制立体滤光器,以便能够在景物内以与3D内容无关的方式在应用层移动。本发明因而增大了用户景物控制。此外,这还增大了与输入3D内容的交互性的范围。改变视点的问题是3D绘制机可以通过聚焦在特定视点上来在所需计算方面最优化3D几何模型。该方法消除了从该特定视点不能见到的细节。这可以包括不同级别的细节,这取决于距视点的距离以及处于隐藏表面区域中的多边形的消除。在原理上,完全绘制3D模型的3D绘制机可以由本发明的3D滤光器来管理,并在不产生人工产物的情况下与应用无关地改变视点。
本发明的另一个方面是可以将立体滤光器概括为根据相同的3D内容提供从不同视点绘制的多个(两个或多个)视图。基本上,上面在式i)-iv)下讨论的计算则由其他适当的计算来代替。例如,在多用户软件应用、例如视频游戏中,在这些应用中不同用户在虚拟环境中在一起作为一个团队并面对类似的物体,则滤光器根据单个3D内容和不同的视点产生物体的不同视图。为每个单个用户产生的视图在实质上可以是立体的,但不必须是立体的。例如,视图可以是多个单眼图象。
应该注意,可以有各种方式来实施由立体方式操作中的滤光器实现的数据变换。一种方式是通过实现上述变换、即定位新的焦点中心并产生两个彼此为镜像图象的不同的视图来产生左眼和右眼视图。或者,可以采取焦点视图作为左(或右)眼视图,采取在距离W上水平变换的形式作为右(或左)眼视图。
在这个公开文本中,只显示和描述了本发明的特定的最佳实施例,但如上所述,应该理解,本发明能够在各种其他组合和环境中使用,并且能够在这里所表示的本发明概念的范围内改变或修改。
Claims (14)
1.在计算机系统(100;200)中,一种用于产生图形物体的3D数据的方法,包括下列步骤:
在3D绘制模块(18)中产生一个对图形物体的3D绘制操作的函数调用请求;
由滤光器(26)接收所述函数调用请求;以及
在滤光器中为3D图形物体产生多个视点数据。
2.如权利要求1所述的方法,包括:
在滤光器中产生(66)3D图形物体的左眼视点数据和右眼视点数据;以及
将左眼数据和右眼视点数据发送(68)到显示驱动器(28)。
3.如权利要求2所述的方法,包括将左眼和右眼视点数据存储(70)在帧缓冲器(31)中。
4.如权利要求3所述的方法,包括:
将帧缓冲器中的每行分成两个区域,用于存储左眼数据的第一区域和用于存储右眼数据的第二区域(图4B,4C)。
5.如权利要求3所述的方法,包括:
将帧缓冲器中的每行分成上区域和下区域,一个区域用于存储左眼数据,两个区域中的另一个区域用于存储右眼数据(图5B,5C)。
6.如权利要求2所述的方法,其中,产生左眼和右眼视点数据的步骤包括:
接收来自3D绘制模块的绘制请求,其中3D物体作为变元;以及,根据观察者模型输入,用两个投影平面代替一给定的目标投影平面(图7B,7C)。
7.如权利要求7所述的方法,其中,观察者模型输入基于3D绘制模块的3D物体几何表示和目标2D绘制平面的表示(图10)。
8.如权利要求1所述的方法,还包括将滤光器构造为用于产生到帧缓冲器的输出的硬件加速驱动器。
9.一种用于产生图形数据的计算机系统(100),包括:
图形模块(18),被构造为为由计算机系统执行的软件应用程序产生图形数据,其中,图形模块被构造为发送请求执行3D图形操作的函数调用;
滤光器(26),被构造为接收函数调用并产生图形物体的多个视点数据;以及
显示驱动程序(28),被构造为接收多个视点数据。
10.如权利要求9所述的计算机系统,其中,滤光器被构造为产生(66)图形物体的左眼视点数据和右眼视点数据。
11.如权利要求10所述的计算机系统,其中,滤光器被构造为:从图形模块接收绘制请求,以3D物体作为变元;以及,根据观察者模型输入,用两个投影平面代替一给定目标投影平面(图10)。
12.如权利要求11所述的计算机系统,其中,观察者模型输入基于图形模块的3D物体几何表示和目标2D绘制平面表示(图10)。
13.一种计算机可读介质(208),在其上存储有多个指令序列,所述多个指令序列包括在由处理器执行时使得所述处理器执行如下操作的指令序列:
接收由3D绘制模块(18)产生的、请求对图形物体的3D操作的函数调用;以及
产生图形物体的多个视点数据。
14.如权利要求13所述的计算机可读介质,其中,所述多个指令序列使得所述处理器:
产生(66)左眼视点数据和右眼视点数据;以及
向显示驱动程序发送(68)左眼和右眼视点数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/107,918 US6496183B1 (en) | 1998-06-30 | 1998-06-30 | Filter for transforming 3D data in a hardware accelerated rendering architecture |
US09/107,918 | 1998-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1277698A true CN1277698A (zh) | 2000-12-20 |
CN1143244C CN1143244C (zh) | 2004-03-24 |
Family
ID=22319158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998014559A Expired - Lifetime CN1143244C (zh) | 1998-06-30 | 1999-06-14 | 用于变换硬件加速绘制结构中的三维数据的滤光器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6496183B1 (zh) |
EP (1) | EP1038271B1 (zh) |
JP (1) | JP4364436B2 (zh) |
KR (1) | KR100637612B1 (zh) |
CN (1) | CN1143244C (zh) |
DE (1) | DE69912576T2 (zh) |
TW (1) | TW514836B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286225B (zh) * | 2007-04-11 | 2010-10-06 | 中国科学院自动化研究所 | 一种基于三维纹理硬件加速的海量数据体绘制方法 |
US8154543B2 (en) | 2005-07-05 | 2012-04-10 | Samsung Mobile Display Co., Ltd. | Stereoscopic image display device |
US8207961B2 (en) | 2005-07-05 | 2012-06-26 | Samsung Mobile Display Co., Ltd. | 3D graphic processing device and stereoscopic image display device using the 3D graphic processing device |
US8279221B2 (en) | 2005-08-05 | 2012-10-02 | Samsung Display Co., Ltd. | 3D graphics processor and autostereoscopic display device using the same |
CN103493102A (zh) * | 2011-03-14 | 2014-01-01 | 高通股份有限公司 | 用于基于着色器的图形内容的立体转换 |
CN104200520A (zh) * | 2014-08-29 | 2014-12-10 | 杭州易上弘网络技术有限公司 | 一种基于部件模型组合的三维云渲染方法及三维云渲染系统 |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159041B2 (en) * | 2000-03-07 | 2007-01-02 | Microsoft Corporation | Method and system for defining and controlling algorithmic elements in a graphics display system |
JP3841630B2 (ja) * | 2000-08-29 | 2006-11-01 | オリンパス株式会社 | 画像取り扱い装置 |
US20020154214A1 (en) * | 2000-11-02 | 2002-10-24 | Laurent Scallie | Virtual reality game system using pseudo 3D display driver |
US6828975B2 (en) | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
US6874150B2 (en) * | 2001-03-01 | 2005-03-29 | Microsoft Corporation | Method and system for maintaining connections between surfaces and objects in a graphics display system |
US7451457B2 (en) * | 2002-04-15 | 2008-11-11 | Microsoft Corporation | Facilitating interaction between video renderers and graphics device drivers |
KR100914120B1 (ko) * | 2002-04-15 | 2009-08-27 | 마이크로소프트 코포레이션 | 비디오 렌더러와 그래픽 디바이스 드라이버, 및 이들간의 상호 작용을 용이하게 하기 위한 장치, 시스템, 방법 및 전자적으로 액세스 가능한 매체 |
US7219352B2 (en) | 2002-04-15 | 2007-05-15 | Microsoft Corporation | Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays |
CA2507959A1 (en) * | 2002-11-29 | 2004-07-22 | Bracco Imaging, S.P.A. | System and method for displaying and comparing 3d models |
US6862530B2 (en) * | 2003-04-11 | 2005-03-01 | Schlumberger Technology Corporation | System and method for visualizing multi-scale data alongside a 3D trajectory |
US7158668B2 (en) * | 2003-08-01 | 2007-01-02 | Microsoft Corporation | Image processing using linear light values and other image processing improvements |
US7643675B2 (en) * | 2003-08-01 | 2010-01-05 | Microsoft Corporation | Strategies for processing image information using a color information data structure |
WO2005059842A1 (es) * | 2003-12-19 | 2005-06-30 | Tdvision Corporation S.A. De C.V. | Sistema de videojuegos 3d |
KR101177663B1 (ko) | 2004-02-27 | 2012-09-07 | 티디비전 코포레이션 에스.에이. 데 씨.브이. | 입체적 3d-비디오 이미지 디지털 디코딩 시스템 및 방법 |
CA2605347A1 (en) * | 2005-04-25 | 2006-11-02 | Yappa Corporation | 3d image generation and display system |
KR100898287B1 (ko) | 2005-07-05 | 2009-05-18 | 삼성모바일디스플레이주식회사 | 입체 영상 표시 장치 |
US7505170B2 (en) * | 2005-07-13 | 2009-03-17 | Microsoft Corporation | Conversions between spool files and PDL within a pipeline of modular filters |
EP1960968A4 (en) * | 2005-12-01 | 2016-06-29 | Intel Corp | INFOGRAPHIC PROCESSOR AND THREE-DIMENSIONAL IMAGE RENDERING METHOD ON DISPLAY SCREEN |
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 |
CN101105746B (zh) * | 2006-07-14 | 2010-05-12 | 联想(北京)有限公司 | 采用过滤驱动获取图形设备接口调用的方法 |
US8279222B2 (en) * | 2008-03-14 | 2012-10-02 | Seiko Epson Corporation | Processing graphics data for a stereoscopic display |
US8817054B1 (en) * | 2008-05-13 | 2014-08-26 | Google Inc. | Methods and systems for rendering in a multi-process browser using a shared memory area |
USD666663S1 (en) | 2008-10-20 | 2012-09-04 | X6D Limited | 3D glasses |
USD624952S1 (en) | 2008-10-20 | 2010-10-05 | X6D Ltd. | 3D glasses |
USRE45394E1 (en) | 2008-10-20 | 2015-03-03 | X6D Limited | 3D glasses |
USD603445S1 (en) | 2009-03-13 | 2009-11-03 | X6D Limited | 3D glasses |
CA2684513A1 (en) | 2008-11-17 | 2010-05-17 | X6D Limited | Improved performance 3d glasses |
US8542326B2 (en) | 2008-11-17 | 2013-09-24 | X6D Limited | 3D shutter glasses for use with LCD displays |
USD646451S1 (en) | 2009-03-30 | 2011-10-04 | X6D Limited | Cart for 3D glasses |
USD650956S1 (en) | 2009-05-13 | 2011-12-20 | X6D Limited | Cart for 3D glasses |
USD672804S1 (en) | 2009-05-13 | 2012-12-18 | X6D Limited | 3D glasses |
USD692941S1 (en) | 2009-11-16 | 2013-11-05 | X6D Limited | 3D glasses |
USD671590S1 (en) | 2010-09-10 | 2012-11-27 | X6D Limited | 3D glasses |
USD669522S1 (en) | 2010-08-27 | 2012-10-23 | X6D Limited | 3D glasses |
USD662965S1 (en) | 2010-02-04 | 2012-07-03 | X6D Limited | 3D glasses |
KR101085676B1 (ko) * | 2010-04-21 | 2011-11-22 | 김성도 | 단안식 3d영상촬영장치 및 3d카메라 |
US9053562B1 (en) | 2010-06-24 | 2015-06-09 | Gregory S. Rabin | Two dimensional to three dimensional moving image converter |
USD664183S1 (en) | 2010-08-27 | 2012-07-24 | X6D Limited | 3D glasses |
KR101227183B1 (ko) * | 2011-03-22 | 2013-01-28 | 주식회사 넥서스칩스 | 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법 |
JP5770018B2 (ja) * | 2011-06-03 | 2015-08-26 | 任天堂株式会社 | 表示制御プログラム、表示制御装置、表示制御方法及び表示制御システム |
CN102681849A (zh) * | 2012-05-07 | 2012-09-19 | 禹芙蓉 | 手持移动终端的数字时间3d显示方法 |
USD711959S1 (en) | 2012-08-10 | 2014-08-26 | X6D Limited | Glasses for amblyopia treatment |
US9992021B1 (en) | 2013-03-14 | 2018-06-05 | GoTenna, Inc. | System and method for private and point-to-point communication between computing devices |
WO2015142936A1 (en) * | 2014-03-17 | 2015-09-24 | Meggitt Training Systems Inc. | Method and apparatus for rendering a 3-dimensional scene |
US20180300840A1 (en) * | 2017-04-17 | 2018-10-18 | Joydeep Ray | Display link compression by render engine |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993022699A1 (en) * | 1992-04-24 | 1993-11-11 | Depth Enhancement Inc | Three-dimensional visualization by altered multiple two-dimensional perspective imagery |
DE4416935C2 (de) * | 1994-05-13 | 1996-03-14 | Terlutter Rolf Dr | Verfahren zum Erzeugen räumlich wirkender Bilder |
EP0809913B1 (en) * | 1995-12-19 | 2002-06-12 | Koninklijke Philips Electronics N.V. | Parallactic depth-dependent pixel shifts |
US5867210A (en) | 1996-02-09 | 1999-02-02 | Rod; Samuel R. | Stereoscopic on-screen surgical microscope systems |
DE69730565T2 (de) * | 1996-06-26 | 2005-02-03 | Matsushita Electric Industrial Co., Ltd., Kadoma | Gerät zur Erzeugung eines stereoskopischen bewegenden Bildes mittels Computergraphik |
-
1998
- 1998-06-30 US US09/107,918 patent/US6496183B1/en not_active Expired - Lifetime
-
1999
- 1999-06-14 EP EP99922458A patent/EP1038271B1/en not_active Expired - Lifetime
- 1999-06-14 KR KR1020007001924A patent/KR100637612B1/ko not_active IP Right Cessation
- 1999-06-14 JP JP2000557434A patent/JP4364436B2/ja not_active Expired - Lifetime
- 1999-06-14 DE DE69912576T patent/DE69912576T2/de not_active Expired - Lifetime
- 1999-06-14 CN CNB998014559A patent/CN1143244C/zh not_active Expired - Lifetime
-
2000
- 2000-02-03 TW TW089101981A patent/TW514836B/zh not_active IP Right Cessation
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8154543B2 (en) | 2005-07-05 | 2012-04-10 | Samsung Mobile Display Co., Ltd. | Stereoscopic image display device |
US8207961B2 (en) | 2005-07-05 | 2012-06-26 | Samsung Mobile Display Co., Ltd. | 3D graphic processing device and stereoscopic image display device using the 3D graphic processing device |
CN1893675B (zh) * | 2005-07-05 | 2012-11-14 | 三星移动显示器株式会社 | 三维图形处理装置及其立体图像显示装置 |
US8279221B2 (en) | 2005-08-05 | 2012-10-02 | Samsung Display Co., Ltd. | 3D graphics processor and autostereoscopic display device using the same |
CN101286225B (zh) * | 2007-04-11 | 2010-10-06 | 中国科学院自动化研究所 | 一种基于三维纹理硬件加速的海量数据体绘制方法 |
CN103493102A (zh) * | 2011-03-14 | 2014-01-01 | 高通股份有限公司 | 用于基于着色器的图形内容的立体转换 |
CN103493102B (zh) * | 2011-03-14 | 2016-11-09 | 高通股份有限公司 | 用于基于着色器的图形内容的立体转换 |
US9578299B2 (en) | 2011-03-14 | 2017-02-21 | Qualcomm Incorporated | Stereoscopic conversion for shader based graphics content |
CN104200520A (zh) * | 2014-08-29 | 2014-12-10 | 杭州易上弘网络技术有限公司 | 一种基于部件模型组合的三维云渲染方法及三维云渲染系统 |
CN104200520B (zh) * | 2014-08-29 | 2017-05-10 | 杭州易上弘网络技术有限公司 | 一种基于部件模型组合的三维云渲染方法及三维云渲染系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1143244C (zh) | 2004-03-24 |
EP1038271A2 (en) | 2000-09-27 |
KR20010023290A (ko) | 2001-03-26 |
EP1038271B1 (en) | 2003-11-05 |
DE69912576T2 (de) | 2004-08-19 |
TW514836B (en) | 2002-12-21 |
DE69912576D1 (de) | 2003-12-11 |
KR100637612B1 (ko) | 2006-10-24 |
JP2002519792A (ja) | 2002-07-02 |
JP4364436B2 (ja) | 2009-11-18 |
US6496183B1 (en) | 2002-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1143244C (zh) | 用于变换硬件加速绘制结构中的三维数据的滤光器 | |
CN100342403C (zh) | 使用图案阴影来产生阴影效果的方法与装置 | |
CN1617173A (zh) | 地图显示装置 | |
KR101041723B1 (ko) | 3차원 비디오게임 시스템 | |
CN1581234A (zh) | 使用多遍形成方式的图形基元成形装置及方法 | |
CN1218940A (zh) | 分隔多边形的图象处理 | |
CN1150675A (zh) | 用于纹理映射的方法和装置 | |
US20090079728A1 (en) | Apparatus, method, and computer program product for generating multiview data | |
US6888540B2 (en) | Autostereoscopic display driver | |
US20220366530A1 (en) | Dynamic uniformity correction | |
CN101079151A (zh) | 一种基于序列静态图像的360°环视全景生成方法 | |
CN1892288A (zh) | 立体图像显示设备 | |
WO2000000934A2 (en) | Filter for transforming 3d data in a hardware accelerated rendering architecture | |
CN114494559A (zh) | 一种基于多gpu协同的三维渲染融合方法、系统、介质 | |
CN114127834A (zh) | 用于时空抖动的系统和方法 | |
US11300793B1 (en) | Systems and methods for color dithering | |
EP4315018A1 (en) | Waveguide correction map compression | |
CN114174979B (zh) | 用于隐藏死像素的系统和方法 | |
EP0753184B1 (en) | Bump mapping in 3-d computer graphics | |
US20100177098A1 (en) | Image generation system, image generation method, and computer program product | |
CN1279494C (zh) | 在二维屏幕上对图像着色的着色方法 | |
US11056040B1 (en) | Systems and methods for mask-based temporal dithering | |
US11430398B2 (en) | Systems and methods for mask-based spatio-temporal dithering | |
CN1414795A (zh) | 在视窗中显示立体动画的装置及方法 | |
US11087442B1 (en) | Mask-based spatio-temporal dithering |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20040324 |
|
CX01 | Expiry of patent term |