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

文档序号:8460775阅读:431来源:国知局
用于渲染三维场景的计算机绘图方法
【技术领域】
[0001]本发明涉及一种用于渲染三维场景的计算机绘图方法。
【背景技术】
[0002]对现有技术的方法、装置或文件的任何参考都不可看作证明或者承认其形成了世界上任何国家公知常识的一部分。
[0003]3D计算机绘图技术用于将描述三维场景的数据转化为二维图像以在电子显示屏上观看该图像。可以理解的是,包括在整个权利要求中,本文中的术语“场景”在广义上被理解为既包括非常复杂的场景,但又包括仅含有一些或单个对象的场景,或者在最简化的情况下包括只含有一个或多个可见点的集合的场景。
[0004]在过去20年中计算机绘图集中发展的领域为计算机和视频游戏领域,虽然这不是仅有的领域。
[0005]计算机游戏的发展和市场化是当前全球娱乐产业中极其重要的部分。例如,在2010年,视频游戏“使命召唤:黑色行动”在前五天的销售中便成交超过6.5亿美元。
[0006]为了向游戏玩家提供更为真实的游戏体验,大量研发涌入以增加游戏场景渲染的速度和真实感。
[0007]在渲染游戏场景的过程中,用于代表场景的数据,例如与该场景中的每个对象相关联的位置数据,必须由游戏机的处理器进行处理以将来自场景的3D空间的数据投影为适于由游戏机的显示设备进行显示的2D数据。该变换必须将玩家相对于场景的位置和视角考虑在内。由于人类在其正常视觉系统中感知到透视缩减,所以计算机绘图渲染方法通常采用透视投影。
[0008]透视投影是计算密集型,因为其涉及三角计算,三角计算通常施加有包括矩阵和矢量相乘的运算。因此,随着场景中所记录细节的量的增大,例如位置数据,必须用来渲染该场景的冗长计算的数量也将增大。这些额外的计算会要求以减小的帧速率进行游戏。
[0009]因此,将认识到在场景真实感与维持帧速率之间存在折中。一种被广泛采用的解决该问题的途径为使用多个平面多边形来渲染场景。多边形网格用于对需要渲染的场景对象进行建模。多边形的角随后从3D转换为2D并且显示给用户。为了同时适应增加的场景细节和较高的帧速率,ATI和NVIDIA等制造商开发并推售了用于并入游戏机的专用图形处理器卡。
[0010]但是,在当前使用多边形系统的过程中存在很多相关的限制。例如,因为多边形具有线性边界,所以其无法轻易用于代表曲面对象。此外,即使使用专用图形处理器,人眼仍然会对采用多边形的直线边缘进行近似的曲面对象敏感。因此,这些基于多边形的系统既计算密集又无法满足挑剔的游戏玩家。
[0011]有利的是能够提供一种用于显示三维场景的计算机绘图方法,该方法能够克服上述现有技术的问题或者至少能够作为迄今已知的方法的有用替代。

【发明内容】

[0012]根据本发明的第一方面,提供了一种计算机绘图方法,该方法在具有至少一个被配置为控制电子显示设备的基于电子处理器的系统上实施,所述方法包括运行处理器以执行以下步骤:
[0013]从数据结构中提取限定三维场景的数据;
[0014]在所述电子显示设备上根据正交投影对所述场景满足预定条件的部分所对应的提取数据进行渲染;以及
[0015]在所述电子显示设备上根据透视投影对所述场景的其他部分所对应的提取数据进行渲染;
[0016]其中,在所述显示设备上显示的经渲染场景看起来已经根据所述透视投影进行了整体渲染,从而相对于仅使用所述透视投影,减少了电子处理器所完成的用于渲染所述场景的计算的数量。
[0017]根据本发明的第一方面,提供了一种由基于电子处理器的系统实施的计算机绘图方法,所述方法包括:
[0018]处理数据结构,该数据结构包含针对待由电子显示器示出的三维(3D)场景的数据;
[0019]通过正交投影来渲染所述场景的满足预定条件的部分;以及
[0020]否则,使用透视投影来渲染所述场景;
[0021]从而相对于仅使用所述透视投影,减少了所述电子处理器所完成的用于渲染所述场景的计算数量。
[0022]在优选实施例中,所述方法包括:在考虑到部分的尺寸、所述透视投影的焦距以及所述显示器分辨率的情况下,测试所述场景的该部分是否满足所述预定条件。
[0023]优选地,所述方法包括:
[0024]将与所述场景满足所述预定条件的部分相关的3D点从3D投影到2D以生成2D形式图案;以及
[0025]基于所述2D形式图案确定所述场景的子部分的投影。
[0026]在优选实施例中,所述方法包括:递归地更新所述2D形式图案并且参考所更新的形式图案确定较低级子部分的投影。
[0027]递归地更新所述2D形式图案的步骤优选包括:对代表所述形式图案的顶点坐标值进行比特移位。
[0028]或者,递归地更新所述2D形式图案的步骤可包括:对代表所述形式图案的顶点坐标值进行乘加(multiply-and-add,MAD)运算或者融合乘加(fused multiply-and-add,FMAD)运算。例如,该步骤可包括:乘以0.5以二等分代表所述形式图案的顶点坐标值。
[0029]递归地更新所述2D形式图案的步骤可包括:计算关于所述递归前一次迭代的形式图案距边界框的最小值的偏移。
[0030]在优选实施例中,所述数据结构包括八叉树并且处理所述数据结构的步骤包括遍历所述八叉树以从中提取表示所述场景的数据。
[0031]在数据结构包括八叉树的情况下,所述部分对应于与该八叉树相关的母八分体和子八分体。
[0032]优选地,所述方法包括:确定一个序列用于相对于预定观察位置按照从前到后的顺序处理所述八叉树的节点。
[0033]此外,所述方法可包括:测试八分体的边界是否与视锥体相交。
[0034]优选地,所述方法包括:在写入所述显示器之前进行掩模测试。
[0035]所述方法也可包括:在写入所述显示器之前进行闭塞测试(occlus1n test)。
[0036]根据本发明的另一方面,提供了一种计算机绘图系统,包括处理器,该处理器与存储有针对三维(3D)场景数据结构的存储器设备进行通信并且被配置为控制显示设备,所述处理器被配置为:
[0037]处理所述数据结构以检索限定所述场景的数据;
[0038]使用正交投影对所述场景的满足预定条件的部分进行渲染;以及
[0039]否则,在所述显示设备上使用透视投影对所述场景进行渲染;
[0040]从而相对于仅使用所述透视投影进行渲染,通过使用所述正交投影减少了所述电子处理器所完成的用于渲染所述场景的计算数量。
[0041]优选地,所述计算机绘图系统的所述处理器被进一步配置为:
[0042]将与所述场景满足所述预定条件的部分相关的3D点从3D投影到2D以生成2D形式图案;以及
[0043]基于所述2D形式图案确定所述场景的子部分投影。
[0044]在优选实施例中,所述计算机绘图系统的所述处理器被进一步配置为:在考虑到部分的尺寸、所述透视投影的焦距以及所述显示器分辨率的情况下,测试所述场景的该部分是否满足所述预定条件。
[0045]优选地,所述计算机绘图系统的处理器被进一步配置为:将与所述场景满足所述预定条件的部分相关的3D点从3D投影到2D以生成2D形式图案;以及
[0046]在不依赖3D到2D投影的情况下,基于所述2D形式图案确定所述场景的子部分投影。
[0047]根据本发明的另一方面,提供了一种计算机绘图软件产品,包括载有由处理器执行有形指令的计算机可读介质,用于实现前述方法。
[0048]根据本发明的另一方面,提供了一种由基于电子处理器的系统实施的计算机绘图方法,用于使用正交投影来渲染场景的部分,所述方法包括以下步骤:
[0049]将与关于所述部分的边界框相关的3D点从3D投影到2D以生成2D形式图案;以及
[0050]基于所述2D形式图案确定所述场景的子部分投影。
[0051]根据本发明的另一方面,提供了一种计算机绘图软件产品,包括载有由处理器执行有形指令的计算机可读介质,用于实现前述方法。
[0052]根据本发明的另一方面,提供了一种计算机绘图系统,包括处理器,该处理器与存储有针对三维(3D)场景数据结构的存储器设备进行通信并且被配置为控制显示设备,所述处理器被配置为:
[0053]处理所述数据结构以检索限定所述场景的数据;
[0054]将与关于所述场景的部分的边界框相关的3D点从3D投影到2D以产生2D形式图案;以及
[0055]基于所述2D形式图案产生所述场景的子部分投影。
[0056]根据本发明的其他方面,提供了一种用于生成图像的计算机绘图方法,以使得该图像看起来由第一投影生成,所述方法由计算机系统来执行,该计算机系统包括至少一个被配置为对电子显示设备的像素进行控制的处理器,所述方法包括;
[0057]通过所述第一投影在所述显示设备上产生所述图像的部分;
[0058]同时通过第二投影在所述显示设备上产生所述图像的其他部分,所述第二投影近似于所述第一投影,其中,所述第二投影比所述第一投影的计算强度低。
[0059]根据本发明的第一方面,提供了一种由基于电子处理器系统实施的计算机绘图方法,所述方法包括:
[0060
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1