用于渲染三维场景的计算机绘图方法_2

文档序号:8460775阅读:来源:国知局
]处理数据结构,该数据结构包含针对待由电子显示器示出的三维(3D)场景的数据;
[0061]通过正交投影来渲染所述场景满足预定条件的部分;以及
[0062]否则,使用透视投影来渲染所述场景;
[0063]从而减少了所述电子处理器所完成的用于渲染所述场景的计算的数量。
【附图说明】
[0064]本发明的优选特征、实施例和变型可从以下详细描述中进行阐明,该详细描述向本领域技术人员提供了实施本发明的足够信息。所述详细描述不会被看作以任何方式限制前述
【发明内容】
的范围。将参考以下附图做出详细描述,其中:
[0065]图1示出了用于实施根据本发明实施例所述方法的计算机系统;
[0066]图2示出了具有透视效果的对象;
[0067]图3示出了包括简单场景的线框立方体;
[0068]图4示出了线框立方体的透视投影;
[0069]图5示出了线框立方体的透视投影的平面图;
[0070]图6示出了包括矩形像素阵列的显示屏;
[0071]图7示出了具有透视效果的立方体内的对象;
[0072]图8示出了图6叠印在图7的矩形像素阵列上的透视投影;
[0073]图9示出了通过图7的屏幕对立方体的透视投影的渲染;
[0074]图10是立方体相对于像素显示屏的正交(即平行)投影与透视投影的比较图;
[0075]图11示出了图10的立方体叠印在像素显示屏上的透视投影;
[0076]图12示出了图10的立方体叠印在像素显示屏上的正交投影;
[0077]图13示出了通过像素显示屏对图10的立方体的透视投影的渲染;
[0078]图14示出了通过像素显示屏对图10的立方体的正交投影的渲染;
[0079]图15示出了限定示例性场景的八叉树立方体结构的高级八叉树立方体;
[0080]图16示出了穿过图15的八叉树立方体结构的切片,该切片示出了低级子八分体的产生;
[0081]图17描绘了根据本发明实施例进行渲染的简单三维(3D)场景;
[0082]图18描绘了图17的场景所对应的细分八叉树立方体;
[0083]图19是图18的八叉树立方体所对应的八叉树数据结构的节点图;
[0084]图20示出了图18的八叉树立方体的最高级立方体的3D到2D正交投影;
[0085]图21示出了图18的立方体的正交投影;
[0086]图22用于示出在不依赖3D到2D投影的情况下如何使用2D到2D操作根据限定高级立方体的投影的顶点来推出八分体的子立方体的投影;
[0087]图23描述了对图17场景的渲染;
[0088]图24示出了在正交模式下用于计算立方体2D投影顶点的替代性方法;
[0089]图25示出了如何将立方体2D投影的顶点计算为距显示屏的原点偏移;以及
[0090]图26至28包含根据本发明优选实施例所述的方法的流程图。
【具体实施方式】
[0091]现在参考图1,其示出了用于实施根据本发明实施例所述的方法的示例性计算机系统1,下面将描述该示例性计算机系统I。
[0092]可以理解的是,计算机系统I包括用于实施所述方法的、示例性的基于电子处理器的系统。然而,该方法也可轻易通过其他基于电子处理器的系统来实施。所述系统可包括但不限于:游戏控制台、平板、膝上和上网本型计算设备、蜂窝智能电话和医疗成像设备。
[0093]计算机系统I包括主板3,主板3包括用于供电和联接到至少一个板载处理器5的电路。所述至少一个板载处理器可包括两个或更多个分立的处理器或具有多个处理核的处理器。
[0094]作为非限定性示例,在用于玩计算机游戏的个人计算机中正流行的微处理器为Intel公司制造的i5或i7处理器组中的一种。
[0095]主板3用作微处理器5与次级存储器7之间的接口。次级存储器7可包括一个或多个光驱动器、磁驱动器或固态驱动器。次级存储器9存储用于操作系统9的指令。主板3还与随机访问存储器11和只读存储器(ROM) 13通信。ROM 13通常存储用于基本输入输出系统(Basic Input Output System, B1S)的指令,而微处理器5在启动时访问B1S并且B1S将微处理器5准备好用于载入操作系统9。
[0096]主板3也与图形处理器单元(Graphics Processor Unit,GPU) 15相连接。可以理解的是,在某些系统中,图形处理器单元15被集成在主板3中。
[0097]主板3通常包括通信适配器,例如LAN适配器或调制解调器,使得计算机系统I与诸如因特网的计算机网络进行数据通信。
[0098]计算机系统I的用户借助于键盘19、鼠标21和显示器17与计算机系统I交互。
[0099]系统I的用户可操作操作系统9以载入计算机绘图相关的软件产品29。计算机绘图相关的软件产品29被提供为承载在诸如光盘27的计算机可读介质上的有形指令。或者,也可经由端口 23进行下载。
[0100]计算机绘图相关的软件产品29包括数据结构,该数据结构存储限定各种场景(例如,游戏)的数据。
[0101]软件产品29也包括用于微处理器5以及可能用于GPU 15的指令,以响应于经由诸如键盘19和鼠标21的操作者控制器从用户处接收的输入来操纵场景数据。
[0102]可以认识到的是,存在可用来存储场景数据的多种计算机数据结构。在本发明的优选实施例中,使用八叉树数据结构,尽管该数据结构是优选的,但是也可使用其他类型的数据结构,例如,二叉空间分区(BSP)树。
[0103]不管使用哪种数据结构来存储场景的位置数据,都需要将数据从3D变换为2D以在显示设备17上显示。
[0104]3D和2D图形的主要差异之一为由于距视点的距离而导致的透视和尺寸减小的概念。在图2中,对象根据其距视点的距离而变小。对该距离的计算为与3D图形相关联的3D到2D计算显著增加了更多的工作。
[0105]现在参考图3,其描述了用于在计算机系统I的显示器17上进行渲染的线框立方体31。显示器可以是任何合适的类型。例如,阴极射线管(CRT)、液晶显示器(LCD)或等离子显示器为显示器17可使用的显示技术的非限定性示例。针对立方体31的顶点或边缘数据存储在如前所述计算机系统的合适的数据结构中。
[0106]图4代表了以侧视图示出的立方体31的2D单点投影在显示屏35上的视图。
[0107]从立方体31的顶点到相机点33的多束光线被示为穿过屏幕35以表示该立方体的3D顶点和边缘模型在包括屏幕35的2D观察面上的变换。该变换(或者也可称为“投影”)使用计算机绘图领域熟知的标准3D到2D透视投影来实现,所述标准3D到2D透视投影的解释参见以下书籍,例如:Computer Graphics Principles and Practice byFoley,van Dam, Feiner&Hughes 2nd Edit1n published 1990 by Addison-ffesley(ISBN0-201-12110-7)(计算机绘图原理与实践(第二版),Foley, van Dam, Feiner&Hughes, 1990年由Addison-Wesley出版(ISBN 0-201-12110-7)),其全部内容通过引用合并到本申请中。
[0108]如前面所评论的,透视变换是计算密集型,因为其涉及三角计算。
[0109]图5描绘了从相机点33所看到的立方体31的视图37。实际上,这是立方体31在观察平面35上的单点2D透视投影。为了在视觉上使立方体看起来为3D,该立方体的背面显示为明显地小于正面。
[0110]应当注意到的是,立方体31的投影37中背面和正面的投影间隔一距离T。
[0111]图7描绘了立方体中存在的对象。对象表现出尺寸上的差异,因为他们位于立方体的前部和后部。
[0112]在诸如图1中的系统I的计算机绘图系统的情况下,屏幕35通常将包括显示监视器或其他显示设备,例如图1中的显示器17,包括图6所示的像素网格39。
[0113]图8为叠印在像素网格39上立方体31的投影37的放大图。构成网格的像素具有所示出的假想宽度和高度P。
[0114]为了借助于像素网格39表示投影37,投影37的线所落入的那些像素被设置为对比色(即黑色,如本示例中所示)。所产生的像素图像如图9中所示。
[0115]应当指出的是,由于立方体31的投影37的背面和正面的距离T大于三个相邻像素的宽度,所以图9中的相应像素图像使得背面和正面能够相互区别。
[0116]图10与图4基本相似,不同之处在于前者表示从相机点33观察的较小3D立方体41 (以平面图示出)在显示屏35上的投影。由于所使用的焦距远大于图4中的焦距,所以存在以间隙43表示的线性尺度上的非连续性。在图10中,平行光线45a、45b表示立方体41在显示屏35上的正交投影,而会聚光线对47a、47b表示透视投影。
[0117]应当指出的是,由于立方体41的较小尺寸以及透视投影中所使用的较长焦距,所以正交投影的光线45a和45b以及与透视投影相关联的光线对47a和47b在显示屏35处被小于像素宽度P的距离所分开。<
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1