【技术实现步骤摘要】
【国外来华专利技术】图形处理系统
技术介绍
本文所描述的技术涉及图形处理系统,并且具体地涉及用于在渲染图像以供显示时考虑折射的效应的方法和设备。当渲染图像(诸如输出帧)以便在图形处理系统中显示时,常常期望能够在被渲染的场景中考虑折射的效应。每当透明的或半透明的对象出现在场景中时这些效应可以存在。各种渲染技术设法做这个。一个这样的技术是所称的“光线追踪”。在此技术中光线的路径通过图像平面中的各个像素来追踪并且它与场景中的对象遭遇的效应被模拟。虽然光线追踪可以是用于允许在渲染图像时考虑折射的效应的有效技术,但是它一般而言是非常计算昂贵的。光线追踪因此通常不适于在图形处理系统的处理能力有限的情形下渲染图像。这可能例如特别是期望使用例如可以相应地具有有限处理容量的移动装置来渲染图像的情况。用于考虑折射的效应的另一技术利用所称的“扰动纹理”。在此技术中,场景的(例如相对于视点(摄像机)位置)在透明的或半透明的对象后面的部分被首先渲染到纹理。纹理然后经受某种形式的扰动,例如使得当纹理被随后应用于对象时为该对象实现了“折射样子”。因为此技术基于纹理的扰动,所以它未适当地考虑折射的真实世界物理效应,并且所以结果得到的图像可能常常是不逼真的。附加地,此技术不可考虑场景的在摄像机的视场外部但是由于折射的效应而将另外可见的区域。通常也存在诸如像素闪烁的失真和不稳定。这在例如当显示复杂透明的或半透明的对象的特写镜头时和/或当摄像机正在移动时折射的效应在场景中重要的情况下可能是特别引人注意的。此外,使用此技术,有必要每当视点(摄像机)位置改变(各个帧可发生)时再生纹理。这例如在用于准备、存储并使用纹理的处理 ...
【技术保护点】
一种在渲染场景以供输出时操作图形处理系统的方法,其中,表示要渲染的所述场景的全部或部分的体积的包围体被定义,该方法包括:当在所述场景中渲染在所述包围体内的至少部分透明的对象时:针对所述对象的一些或全部执行渲染通道,其中,所述对象被渲染,好像它是不透明的对象一样;以及在所述渲染通道中:针对所述对象的表面上的至少一个采样位置,通过以下步骤来确定要用于表示将在所述采样位置处通过所述对象可见的所述场景的所述部分的颜色:使用从针对所述场景的视点位置起的视图矢量来确定针对所述采样位置的折射视图矢量;确定由所述折射视图矢量在所述包围体上交叉的位置;使用所述交叉位置来确定要用于对表示所述场景中的所述包围体的所述表面的所述颜色的图形纹理进行采样的矢量;以及使用所确定的矢量来对所述图形纹理进行采样以针对所述采样位置确定要用于表示将在所述采样位置处通过所述对象可见的所述场景的所述部分的颜色。
【技术特征摘要】
【国外来华专利技术】2015.02.27 GB 1503391.3;2015.02.27 GB 1503386.31.一种在渲染场景以供输出时操作图形处理系统的方法,其中,表示要渲染的所述场景的全部或部分的体积的包围体被定义,该方法包括:当在所述场景中渲染在所述包围体内的至少部分透明的对象时:针对所述对象的一些或全部执行渲染通道,其中,所述对象被渲染,好像它是不透明的对象一样;以及在所述渲染通道中:针对所述对象的表面上的至少一个采样位置,通过以下步骤来确定要用于表示将在所述采样位置处通过所述对象可见的所述场景的所述部分的颜色:使用从针对所述场景的视点位置起的视图矢量来确定针对所述采样位置的折射视图矢量;确定由所述折射视图矢量在所述包围体上交叉的位置;使用所述交叉位置来确定要用于对表示所述场景中的所述包围体的所述表面的所述颜色的图形纹理进行采样的矢量;以及使用所确定的矢量来对所述图形纹理进行采样以针对所述采样位置确定要用于表示将在所述采样位置处通过所述对象可见的所述场景的所述部分的颜色。2.根据权利要求1所述的方法,其中,表示所述包围体的所述表面的所述颜色的所述纹理包括针对围绕所述纹理包含的所述体积内的参照位置的表面上的点来指示并存储针对各个点的一个或更多个颜色值的纹理,其中,然后基于从针对所述纹理的所述参照位置起的方向对所述纹理进行采样。3.根据权利要求1或2所述的方法,其中,使用所述包围体上的所确定的交叉位置来确定要用于对表示图形纹理的所述颜色进行采样的所述矢量的步骤包括:使用所述包围体上的所确定的交叉位置来确定从定义所述纹理所相对于的参照位置到所确定的交叉点的矢量;并且所述方法还包括:然后使用从所述参照位置到所确定的交叉点的所确定的矢量来对所述颜色指示纹理进行采样。4.根据权利要求2或3所述的方法,其中,所述参照位置位于所述至少部分透明的对象内。5.根据前述权利要求中的任一项所述的方法,其中:使用所述视图矢量来确定所述折射视图矢量包括确定由于所述视图矢量在所述对象的所述表面处的折射而导致的所述视图矢量的方向的改变。6.根据前述权利要求中的任一项所述的方法,所述方法还包括将所述折射视图矢量制成动画。7.根据前述权利要求中的任一项所述的方法,所述方法还包括针对多个不同的颜色中的每一个来确定多个不同的折射视图矢量。8.根据前述权利要求中的任一项所述的方法,其中,所述图形纹理包括存储供在渲染所述场景时使用的附加信息的一个或更多个通道;并且其中所述方法包括在所述渲染通道中:对所述图形纹理的所述一个或更多个通道中的一个或更多个进行采样以确定附加信息;以及使用所述附加信息来控制或者影响所述渲染通道。9.根据前述权利要求中的任一项所述的方法,其中:针对所述对象的一些或全部执行所述渲染通道包括针对所述对象的后表面执行所述渲染通道;并且其中所述方法还包括:针对所述对象的前表面执行附加渲染通道;以及使所述附加渲染通道的结果与所述渲染通道的结果混合。10.根据前述权利要求中的任一项所述的方法,所述方法还包括:当渲染其中存在第二对象和至少部分透明的第一对象的场景时,其中所述第二对象至少部分地在所述第一对象后面和/或在所述第一对象内:针对所述第一对象的表面上的至少一个采样位置,通过以下步骤来确定要用于表示将在所述采样位置处通过所述第一对象可见的所述第二对象的所述部分的颜色:使用从所述场景的视点位置起的视图矢量来确定所述采样位置的折射视图矢量;使用所述折射视图矢量来确定要用于对表示所述第二对象的图形纹理进行采样的纹理坐标;以及使用所确定的纹理坐标来对所述图形纹理进行采样以针对所述采样位置确定要用于表示将在所述采样位置处通过所述第一对象可见的所述第二对象的所述部分的颜色。11.一种生成用于当渲染场景以供输出时在图形处理系统中使用的纹理的方法,其中,表示要渲染的所述场景的全部或部分的体积的包围体被定义并且在所述包围体内存在至少部分透明的对象,该方法包括:通过以下步骤来生成包括纹理纹元的阵列以供当在所述场景中渲染所述至少部分透明的对象时使用的图形纹理:设定所述纹理中的纹元值,使得它们各自存储在从将对所述纹理进行采样所相对于的参照位置起的给定方向上表示所述包围体的所述表面的所述颜色的一个或更多个颜色值,所述参照位置位于所述场景中的所述至少部分透明的对象内;以及存储表示所述纹理的所述纹元值并且指示将对所述纹理进行采样所相对于的所述参照位置的数据。12.根据权利要求11所述的方法,所述方法还包括使所述纹理在所述纹理已经被生成之后经受一个或更多个处理操作。13.根据前述权利要求中的任一项所述的方法,所述方法还包括存储附加信息以供当在所述纹理的一个或更多个通道中渲染所述场景时使用。14.根据前述权利要求中的任一项所述的方法,所述方法还包括在渲染所述场景以供输出时至少部分地生成和/或更新所述纹理。15.根据前述权利要求中的任一项所述的方法,其中,所述包围体形式为包围盒。16.根据前述权利要求中的任一项所述的方法,其中,所述纹理是立方体纹理。17.一种图形处理流水线,该图形处理流水线包括:多个处理级,至少包括:光栅化输入基元以生成要处理的图形片段的光栅化器,各个图形片段具有与它关联的一个或更多个采样位置;以及处理由所述光栅化器生成的片段以生成输出片段数据的渲染器;其中,所述图形处理流水线当渲染其中定义有表示要渲染的场景的全部或部分的体积的包围体的所述场景以供输出时被配置为:当在所述场景中渲染在所述包围体内的至少部分透明的对象时:针对所述对象的一些或全部执行渲染通道,其中,所述对象被渲染,好像它是不透明的对象一样;以及在所述渲染通道中:针对所述对象的表面上的至少一个采样位置,通过以下步骤来确定要用于表示将在所述采样位置处通过所述对象可见的所述场景的所述部分的颜色:使用从针对所述场景的视点位置起的视图矢量来确定针对所述采样位置的折射视图矢量;确定由所述折射视图矢量在所述包围体上交叉的位置;使用所述交叉位置来确定要用于对表示所述场景中的所述包围体的所述表面的所述颜色的图形纹理进行采样的矢量;以及使用所确定的矢量来对所述图形纹理进行采样以针对所述采样位置确定要用于表示将在所述采样位置处通过所述对象可见的所述场景的所述部分的颜色。18.根据权利要求17所述的流水线,其中,表示所述包围体的所述表面的所述颜色的所述纹理包括针对围绕所述纹理包含的所述体积内的参照位置的表面上的点来指示并存储针对各个点的一个或更多个颜色值的纹理,其中,然后基于从针对所述纹理的所述参照位置起的方向对所述纹理进行采样。19.根据权利要求17或18所述的流水线,其中,所述流水线被配置为:通过使用所述包围体上的所确定的交叉位置来确定从定义所述纹理所相对于的参照位置到所确定的交叉点的矢量,来使用所述包围体上的所确定的交叉位置来确定要用于对表示图形纹理的所述颜色进行采样的所述矢量;并且然后使用从所述参照位置到所确定的交叉点的所确定的矢量来对所述颜色指示纹理进行采样。20.根据权利要求18或19所述的流水线,其中,所述参照位置位于所述至少部分透明的对象内。21.根据权利要求17至20中的任一项所述的流水线,其中,所述流水线被配置为:通过确定由于所述视图矢量在所述对象的所述表面处的折射而导致的所述视图矢量的方向的改变来使用所述视图矢量来确定所述折射视图矢量。22.根据权利要求17至21中的任一项所述的流水线,其中,所述流水线被配置为将所述折射视图矢量制成动画。23.根据权利要求17至22中的任一项所述的流水线,其中,所述流水线被配置为针对多个不同的颜色中的每一个来确定多个不同的折射视图矢量。24.根据权利要求17至23中的任一项所述的流水线,其中,所述图形纹理包括存储供在渲染所述场景时使用的附加信息的一个或更多个通道;并且其中所述流水线被配置为在所述渲染通道中:对所述图形纹理的所述一个或更多个通道中的一个或更多个进行采样以确定附加信息;并且使用所述附加信息来控制或者影响所述渲染通道。25.根据权利要求17至24中的任一项所述的流水线,其中,所述流水线被配置为:针对所述对象的后表面执行所述渲染通道;针对所述对象的前表面执行附加渲染通道;以及使所述附加渲染通道的结果与所述渲染通道的结果混合。26.根据权利要求17至25中的任一项所述的流水线,其中,所述流水线被配置为,当渲染其中存在第二对象和至少部分透明的第一对象的场景时,其中所述第二对象至少部分地在所述第一对象后面和/或在所述第一对象内:针对所述第一对象的表面上的至少一个采样位置,通过以下步骤来确定要用于表示将在所述采样位置处通过所述第一对象可见的所述第二对象的所述部分的颜色:使用从针对所述场景的视点位置起的视图矢量来确定针对所述采样位置的折射视图矢量;使用所述折射视图矢量来确定要用于对表示所述第二对象的图形纹理进行采样的纹理坐标;以及使用所确定的纹理坐标来对所述图形纹理进行采样以针对所述采样位置确定要用于表示将在所述采样位置处通过所述第一对象可见的所述第二对象的所述部分的颜色。27.一种用于生成当渲染场景以供输出时在图形处理系统中使用的纹理的设备,其中,表示要渲染的所述场景的全部或部分的体积的包围体被定义并且在所述包围体内存在至少部分透明的对象,该设备包括处理电路,该处理电路被配置为:通过以下步骤来生成包括纹理纹元的阵列以供当在所述场景中渲染所述至少部分透明的对象时使用的图形纹理:设定所述纹理中的纹元值,使得它们各自存储在从将对所述纹理进行采样所相对于的参照位置起的给定方向上表示所述包围体的所述表面的所述颜色的一个或更多个颜色值,所述参照位置位于所述场景中的所述至少部分透明的对象内;以及存储表示所述纹理的所述纹元值并且指示将对所述纹理进行采样所相对于的所述参照位置的数据。28.根据权利要求27所述的设备,其中,所述处理电路被配置为:使所述纹理在它已经被生成之后经受一个或更多个处理操作。29.根据权利要求17至28中的任一项所述的流水线或设备,其中,所述纹理存储附加信息以供当在所述纹理的一个或更多个通道中渲染所述场景时使用。30.根据权利要求17至29中的任一项所述的流水线或设备,其中,所述流水线或处理电路被配置为:在渲染所述场景以供输出时至少部分地生成和/或更新所述纹理。31.根据权利要求17至30中的任一项所述的流水线或设备,其中,所述包围体形式为包围盒。32.根据权利要求17至31中的任一项所述的流水线或设备,其中,所述纹理是立方体纹理。33.一种用于当渲染场景以供输出时在图形处理系统中使用的纹理,其中,表示要渲染的所述场景的全部或部分的体积的包围体被定义并且在所述包围体内存在至少部分透明的对象,该纹理包括:纹理纹元的阵列,其中:所述纹元值被设定为使得它们各自存储在从将对所述纹理进行采样所相对于的参照位置起的给定方向上表示所述包围体的所述表面的所述颜色的一个或更多个颜色值,所述参照位置位于所述场景中的所述至少部分透明的对象内。34.一种当渲染场景以供输出时操作图形处理系统的方法,该方法包括:当渲染其中存在第二对象和至少部分透明的第一对象的场景时,其中所述第二对象至少部分地在所述第一对象后面和/或在所述第一对象内:针对所述第一对象的表面上的至少一个采样位置,通过以下步骤来确定要用于表示将在所述采样位置处通过所述第一对象可见的所述第二对象的部分的颜色:使用从针对所述场景的主视点位置起的视图矢量来确定针对所述采样位置的折射视图矢量;使用所述折射视图矢量来确定要用于对表示所述第二对象的...
【专利技术属性】
技术研发人员:R·洛佩兹·门德斯,S·巴拉,S·P·莱顿,
申请(专利权)人:ARM有限公司,
类型:发明
国别省市:英国,GB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。