首页> 中国专利> 折射现象的一种基于硬件的图形工作站的解决方案

折射现象的一种基于硬件的图形工作站的解决方案

摘要

一种用于绘制具有真实的折射属性的透明目标的系统与方法。该系统用一个非单位的折射率调整目标的象素值,以便得出的图像逼近一个折射图像。根据计算的折射值复制相邻的象素值并与正在描绘的象素混合。折射可以作为一种表面效应、作为具有平行的正与背面的一个目标的一种性质、以及作为具有非平行对侧面的一个任意目标,用位移矢量来逼近。较复杂的表示法提供折射图像的改进的逼近。得到的图像提供该折射图像的更逼真的视图。

著录项

  • 公开/公告号CN1121225A

    专利类型发明专利

  • 公开/公告日1996-04-24

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN95101688.1

  • 申请日1995-01-24

  • 分类号G06T11/00;

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人杜有文;马铁良

  • 地址 美国纽约州

  • 入库时间 2023-12-17 12:44:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-03-25

    专利权的终止(未缴年费专利权终止)

    专利权的终止(未缴年费专利权终止)

  • 2003-10-01

    授权

    授权

  • 1996-04-24

    公开

    公开

  • 1996-02-07

    实质审查请求的生效

    实质审查请求的生效

说明书

本发明涉及用于生成物体的图形图象的装置。更具体地,涉及在一个显示器表面上生成描绘三维目标的二维图象的计算机图形系统。更具体地,本发明涉及描绘具有非单位折射率的透光三维目标的图形系统。

许多自然界中存在的透光物质具有非单位折射率。这又导致透过这些目标的光线弯曲。在计算机图形学中,透光物质是用α混色逼近的。通过透光物质见到的颜色是物体的颜色与原先在对应的象素上的帧缓冲器中的颜色的组合。

这一受限制的模型将折射率限制为1并且在大多数情况中导致计算机生成的透明目标偏离现实。为了正确地描绘通过光密物质看到的图象,要求在透光物质的几何与物理性质的基础上从屏幕上的周围取出象素。

我们提供一种装置与算法,借此光疏与光密透光介质都能用一种光栅子系统来逼近。建立折射过程的模型实际上超出了本发明的范围,在本发明中所提供的是一种逼近。对于在电磁学说水平上的折射过程的深入讨论,请参阅.“光学原理”(Born,Max与Emil Wolf著,第六版,Pergamon出版社,1980)。具体地,本发明涉及诸如玻璃等均匀的、各向同性的介电介质。

在传统的硬件光栅图形系统中从未引入过折射。过去,折射是作为光线跟踪全局照明算法的一部分来完成的。例如见“计算机图形学—原理与实践”(Foley James D.,Andries van Dam,Steven K.Feiner与John F.Hughes著,第二版,Addison-Wesley出版公司,ReadingMass,1990)或者“光线跟踪导论”(Andrew S.Glassner编,学院出版公司,1989)。

折射是光线通过一种光密度介质进入另一种光密度介质时出现的一种光学现象。光密度的改变导致光的速度的改变而引起传播方向的弯折。

图6从几何上描绘存在折射时出现的光线矢量的弯折。矢量602以相对于法线矢量603的入射角θi入射在物质界面601上。透射矢量604与向内朝向的法线形成一个角θt。Snell定律式(1)提出了在理想化条件下入射角与透射角之间的关系。 >>>>Sin>>(>>θ>i>>)>>>>Sin>>(>>θ>t>>)>>>>=>>>η>t>>>η>i>>>->->->->>(>1>)>>>s>

空气的折射率接近一,不同种类的玻璃与塑料可具有稍高于1至2或3的折射率。常见物质的折射率的值可参见“CRC化学与物理手册”(第一学生版,Robert C.Weas编,CRC出版公司,1988)。

图7中描绘了更完整的透射图。其中示出了具有折射率ηt的块厚度为d的透光板。与图6中一样,入射光线702以入射角θi到达。透射光线704形成一个角θt。当到达平板的底面时,透射光再一次被折射而成为与原来的入射光线706平行的。在满足下述两个条件时出现这一情况:板的两个表面是平行的;在板的两面的物质的折射率是相等的,例如,被空气包围的一块板。当物体的两个表面不平行时,通常光线702与706不再平行。

在一般情况中,当一条光线射在一个表面上时,反射与透射光线的方向可以通过施加一定的连续性边界条件而解麦克斯韦方程计算出。然而,对于本发明而言,一种简单的几何方法已经够用了。

对于透明介质,透射光线的矢量为,其中,θi为入射光线与法向矢量之间的夹角。ηit为包含入射光线的物质的折射率相对于包含透射光线的物质的折

射率之比,即ηi/ηtit。  指向交点的单位入射矢量  检溉出的向外的法向矢量  离开交点进入物质的单位透射矢量注:当透射光线矢量公式中根式中的变量为负数而导致的一个复系

数时出现全内反射。

折射率不一定是实数量。一个复数折射率表示一定程度的吸收,虚数部分对应于吸收指数。通过逼近指数函数来计入透射介质的吸收,然后用该指数函数来代替α(ηi是作为输入的折射率的虚数部分,而d则为由正面与背面交点上的坐标差确定的物体的厚度,例如在图4中所示)。其结果为根据其厚度指数地降低透射过样本的光强。本发明旨在提供三种精确地表示折射图象的不同方案。由于第一种方案只考虑一个单一的面,这一衰减项只有必要作用在第二与第三种方案上。

下述方案是在硬件光栅发生器(rasterizer)的当前技术上的一种改进,因为它能逼近折射现象。在其它图形硬件中,折射是完全被忽略的。以前对这一问题的解决全部在软件中,因此运行速度达不到实时。

通过观察得到的图像很容易了解经历折射现象的一个图象的质量。当观察一半浸在一杯水中的一根尺时所见到的“折断”的尺的众所周知的效果是折射的日常实例。(见图8。)现有的光线跟踪法能够精确地表示折射图象,但要付出低性能的代价。光线跟踪法是一种计算量极大的操作;采用光线跟踪来考虑折射显著地减慢绘图的性能。

本发明由两部分构成。第一为在逐个象素控制下将象素数据从任一位置移动到另一位置的一种机制,并可认为是一种数据驱动的屏幕到屏幕的复制机制。对于一个给定的象素,根据该象素处的数值,对周围的一个象素进行一次复制。

本发明的第二部分包括用于确定何种象素运动最适合于逼近折射现象的装置。这一部分提供控制象素数据的源与目的地的输入。其余的讨论集中在第二部分上。

为了考虑光线通过折射物质时的弯折,移动象素数据是必要的。所生成的图象不再是由在表面的正“后”方的象素构成的了(即沿同一观察矢量的较大Z深度上)。折射的图象包含在较大的Z深度上、但由于折射现象而在X与Y方向位移了的象素。要在一个特定的显示位置(X,Y)上混和进图象的象素数据是通过沿Z方向跟踪一个位移矢量直到它与可显示的象素数据相交为止而定位的。

从帧缓冲器中得到用于与插入的Z进行比较的正确Z数据的机制在具有如图2中所示的一条单一的光栅流水线的一个系统中是最简单的。在本例中,存储器控制器能访问帧缓冲器中所有象素并能直接读取在由X、Y所定义的地址上表示最新插入的Z位置的Z缓冲器。这也是用各光栅发生器(rasterizer)与帧缓冲器的存储器控制器之间的一个十字矩阵来设计的并行光栅系统的情况。各流水线的存储器控制器能够访问所采用的折射方案所要求的Z缓冲器的任何单元。对于其存储器控制器硬接线在帧缓冲器上的平行光栅系统(即不用十字矩阵),访问一个Z缓冲器值的机制变成依赖于帧缓冲器的组织。然而在任何情况下,各平行光栅流水线必须能够与其它流水线通信,或者必须有一个中央机构,数据可以在其中在平行流水线之间进行交换。

本发明旨在用于生成多个三维物体的二维表示的一种系统,多个目标中至少有一个是具有非单位折射率的一个折射目标。本系统包括用于在折射率的基础上生成一个位移矢量的装置;以及用于通过用位移矢量的一个函数在从当前象素位置偏离一定距离(该距离是该位移量的一个函数)的一个第二象素位置上的第二象素值来为折射目标的各象素位置确定一个对当前象素值的修正值,而描绘该折射目标的装置。

因此,本发明的一个目的是对一种三维数据的逼真图形显示进行改进的方法与装置。

本发明的另一个目的为将透明介质纳入图形绘制系统所支持的原语组中。

本发明的又一个目的为在描绘透明目标时逼近折射现象。

从下面对本发明的例示在附图中的一个较佳实施例的更具体的描述中,本发明的上述与其它目的、特征及优点将是显而易见的,在附图中相同的参照数字表示本发明的相同部件。

在所附的权利要求书中提出据信为本发明的新颖的特征。然而,在结合附图阅读与参照一个例示的实施例的下述详细描述时,将对本发明本身以及其一种较佳的使用模式更进一步的目标及优点,有更好的理解,其中相同的数字表示相同的目标。

图1描绘一个图形适配系统的总体结构。

图2更详细地描绘图1的光栅发生器。

图3a-3d表示用与不用本发明所描绘一个三角形的比较。图3a表示先有技术。

图4描述入射在一个存在折射的目标上的一条光线。

图5描述计算位移矢量中涉及的几何学。

图6表示出现在一个空气/玻璃界面上的折射的有关的几何学。

图7表示出现在位于空气中的玻璃板中的折射的有关的几何学。

图8例示日常情景中的折射效果。

考虑图1中所描绘的图形系统。该系统由向几何处理子系统101发送图形命令的主处理器100构成。几何处理器101也可以是作为主处理器100所执行的一部分功能包含在主处理器中的,而不一定是一个物理上或逻辑上的独立实体。在较佳实施例中,光栅生成子系统102接收一个原语流。与本发明有关的这一原语流的子集由顶点定义三角形构成。对本发明的数据流的扩充的详细说明如下。

在处理该数据流时,光栅发生子系统102生成多个象素,然后将它们送到帧缓冲器103,通常将一个象素的可显示部分导向视频随机存取存储器(VRAM)104而将指定给Z缓冲器、特征缓冲器等的非显示部分则导向动态随机存取存储器(DRAM)105。RAMDAC106从VRAM104接收串行扫描的数据,并将数字数据转换成供CRT监视器107使用的模拟控制信号。

本发明的较佳实施例为光栅发生子系统102的一部分。图2示出光栅发生子系统的细节。输入级200接收来自几何处理器101的数据,并处理一切子系统间的通信协议。初始化级201计算用在三角形插值算法中的部分积。这可包括作为本发明的一部分的位移矢量的分量。插值器202响应初始化级201提供的部分积并生成多个供修正逻辑203操作的象素。下面描述作为本发明的一部分而引入的新概念—位移矢量。修正逻辑203执行分段操作、布尔运算、混色与Z比较。存储器控制器204起光栅发生子系统102与帧缓冲器103之间接口的作用,生成用于包括帧缓冲器103在内的多个VRAM104与DRAM105模块的标准控制信号。

在所描述的实施例中,我们已经示出了以超大规模集成(VLSI)为基础的解决方案。还设计了包含以辅助处理器为基础的解决方案的其它实施例。例如,可将一个通用处理器连接到光栅发生子系统102上来执行分配给图2中的方框的一个或多个任务。以处理器为基础的系统胜过大量使用VLSI的方案的相对优点为增加了灵活性与通用性。为了减少图中的混乱与复杂性,我们只选择了使用VLSI的方案加以例示。

在已经建立了本发明的来龙去脉的情况下,我们提出若干实现替代解决方案的替代实施例,其中在速度、精度与系统资源之间作出了折衷。在上文物理背景部分引用的参考资料中说明折射现象的物理学基础。第一种解决方案(性能最快、精度最低)

在这一算法中,一种透明物质是作为一个单一的表面逼近的。从而,全部折射现象都约简为一种表面边界效应。在图3中,一个透明目标的同一三角片的两种型式示出一个带条纹的参照背景上。用已有技术方法绘制的图3a中的三角形301的图象是以单位折射率为基础生成的。在图3c中,透过三角形302见到的条纹响应一个非单位折射率而移位了,如用本发明可能做到的。图3b描绘存在非单位折射率时这一情况的侧视图。作为折射的结果,光线被弯折了。与三角形302的一个顶点相关联的数据列出在图3d中。    

几何处理器101将名义上包含作为一个RGB三元组的色彩、透明度α(A)及位置数据X、Y、Z的三角形的坐标送至光栅发生子系统102。此外,与三角形302的各顶点a、b与c相关联的(特别是作为本发明的一部分)有一个位移矢量[OX,OY]。这三个位移矢量(每个顶点一个)以与Phong上色时处理用的顶点法向矢量相同的方式插值到三角形的区域上。在待描绘的一个特定的象素上,插入的位移矢量是用于控制象素移动机构去读取与折射透过的光相对应的正确帧缓冲器值的。

在本方案中,系统软件(应用程序或应用程序接口)负责提供正确的位移矢量,并且几何处理器101负责响应作用在目标上的几何变换矩阵中的改变,变换位移矢量。

在图3所示的例中,位移矢量是在一定程度上指向右侧的。位移矢量指向经过折射弯折的方向。在绘制三角形302时,对于三角形上的一个给定的象素,读取该给定象素右侧的一个象素的象素数据,并将其与来自该给定的象素的数据相混合。虽然我们所关注的光线是在图3b中所示的相反方向上传播的,由于利用了几何学与物理学的可逆性,因此这一构造是正确的。

将折射作为一种表面性质处理的这一方法的优点在于它既快速又简单,但它需要主处理器100与几何处理器101的专门处理来计算及变换位移矢量。由于将折射用一种表面现象模型来逼近而会出现不精确性。折射实际上是一种整体现象,在能够精确地逼近更复杂的目标以前,必须对物质的厚度与表面法线有所了解。第二种解决方案(精确度较高但性能较慢)

在本实施例中,通过计入透射目标的厚度而牺牲某些性能来换取较精确的折射模型。在图4中提出了这一配置的侧视图。假定目标的两个表面401与402是平行的,但是表面片之间的目标厚度不要求保持不变。虽然这是物理上矛盾的假设,但用这种逼近有可能得到满意的视觉效果。

通过下述步骤便能完成确定适当的位移矢量的方法:

从后向前对目标的三角形进行排序。这一操作可由主处理器100

或几何处理器101或两者的一定组合执行。

将背面的多边形(三角形)绘制进一个通常位于DRAM105中的Z

缓冲器中。

这前两步骤可通过两次绘制目标来完成,第一次只绘背面的三角形,第二次只绘前面的。PHIGS图形编程界面提供这种选择性绘制的工具。结果是将三角形402(表示背面)写入一个Z缓冲器中。

在对透射矢量408进行插值的同时,绘制图象的正面。这一插值

采取对一个二维位移矢量501进行插值的方式。请看图5。矢量

408是用式(2)计算的。几何处理器能够为各顶点计算一个矢量408,

然后便能对这些矢量来进行插值提供用于折射目标的前面三角形401

上的一个给定的象素的矢量408。

对于前面三角形401上的一个给定的象素,沿透射矢量408在XY

平面上的投影(501)插值。对于沿投影矢量的各象素,执行一次

插值的Z值与先前绘制进帧缓冲器103中的Z值的比较。当插入

的Z值在一个给定的ε范围内等于帧缓冲器中的值时,便停止插

值而用当前象素的色彩作为进行混合的色彩。这便是矢量408与

先前绘制的表面402的交点。

图5中描述投影操作。投影501从象素502一直到503、504等。对于每一个象素502、503、504…,将Z缓冲器(帧缓冲器103的一部分)中的值与经过插值而得的Z值进行比较。继续这一插值处理直到插入的值在一个给定的ε的范围内等于Z缓冲器值,或者到达当前窗口的边为止。后一个终止条件防止无限的搜索。这一条件的一个原因是一个象素被遮断了,如下面讨论的。对于图5中的布局,透射矢量408的经插值后的Z值在象素504上等于Z缓冲器值。从而象素504表示透射矢量408与透射目标的背面402的相交位置。

当通过一个目标的透射使本来遮住的一个目标成为可见时,会出现一个潜在的问题。例如,如果在一个平面的前面有一个细的园柱体,并且在该圆柱体的后面有一种折射的物质,则在该园柱体正后方的象素有可能通过折射物质而看见。在这一情况中,折射光线所需要的色彩信息便不能得到。这时可以选择某种中性的背景色,或采用沿插值投影矢量的邻接象素的色彩。减轻这一问题的适当行动取决于环境。因此,在不能得到一个象素的信息时,本发明允许用户选择作法。第三种解决方案(最精确但是最慢)

第三实施例对第二实施例的精度改进在于去掉了平行的正与背目标表面的限制。目标的几何形状是不受限制的,并且目标的厚度及表面法线可以变化。

计算折射的过程从上述第二替代方法的相同的三个步骤开始。

从后到前对物体的三角形进行排序。

将背面的多边形(三角形)绘入一个备用的Z缓冲器中,并用帧

缓冲器存储法线。绘制前面的三角形并对透射矢量408进行插值。

沿透射矢量在XY平面上的投影501插值。对于沿投影矢量的每

一个象素执行一次插值的Z值与帧缓冲器中的Z值的比较。当插

值的Z值超过帧缓冲器中的值时便停止插值。(前面的步骤与第二解决方案相同)

计算从折射介质透射出来再回到周围介质406中的矢量。这一计

算是利用对式(2)中给出的透射矢量的公式的逼近来完成的。再一

次沿透射矢量406的投影插值,将插值所得的Z值与读自相应的

Z缓冲器单元的Z值进行比较。到达一个Z交叉点时,读取帧缓

冲器中的色彩。如果在找到一个目标以前便到达了当前窗口的边,

便采用事先设定的环境彩色。然后在最后的混色中采用找到的值

(或环境色彩)。

虽然已经作为包含一个几何处理器前端的一个系统的一部分描述了本发明,但这只是为了示例性目的。并不要求存在独立的几何处理器。任何进行有限的计算的单一装置足以作为计算装置。

提供任意象素移动的机构可容易地用在其它应用中,诸如图象处理。虽然我们考虑的是各向同性的均匀介质中的折射现象,但这些概念也能推广到更复杂的光物理学中,诸如各向异性介质。

从上面的描述中应能理解,在本发明的较佳实施例中可进行各种修正与改变而仍不脱离其本质。这一描述只是为了示例的目的而不应视为一种限制。本发明的范围只受以下的权利要求书的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号