CN107784622A - 图形处理系统和图形处理器 - Google Patents
图形处理系统和图形处理器 Download PDFInfo
- Publication number
- CN107784622A CN107784622A CN201710735647.2A CN201710735647A CN107784622A CN 107784622 A CN107784622 A CN 107784622A CN 201710735647 A CN201710735647 A CN 201710735647A CN 107784622 A CN107784622 A CN 107784622A
- Authority
- CN
- China
- Prior art keywords
- data
- primitive
- processes pixel
- view
- segment
- 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
- 238000000034 method Methods 0.000 claims abstract description 320
- 230000008569 process Effects 0.000 claims abstract description 291
- 238000012545 processing Methods 0.000 claims abstract description 116
- 238000011282 treatment Methods 0.000 claims abstract description 15
- 241001269238 Data Species 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 description 105
- 239000012634 fragment Substances 0.000 description 26
- 238000004040 coloring Methods 0.000 description 24
- 238000009877 rendering Methods 0.000 description 24
- 238000012360 testing method Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 8
- 210000003128 head Anatomy 0.000 description 7
- 238000005259 measurement Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000000889 atomisation Methods 0.000 description 1
- 210000000481 breast Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- 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
- H04N13/279—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开涉及图形处理系统和图形处理器。一种图形处理系统包括图形处理流水线,该图形处理流水线包括图元生成阶段和像素处理阶段。在图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图相关联的第二图元数据。在像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据。针对与第二视图相关联的第二像素处理后的数据,做出是否使用第一像素处理后的数据作为第二像素处理后的数据或是否在像素处理阶段处理第二图元数据来产生第二像素处理后的数据的判定。在图形处理流水线中基于该判定执行附加处理。
Description
技术领域
本公开涉及图形处理系统和图形处理器。
背景技术
在已知的图形处理系统中,图形处理单元(GPU)可以渲染两个单独的图像来描绘三维场景。一个图像针对场景的观察者的左眼,另一个图像针对观察者的右眼。每个图像从略微不同的摄像机位置描绘场景。这使得观察者能够从二维图像构建三维图像或场景。
在一些已知的图形处理系统中,图形处理系统中的一些图形处理是单独针对每只眼睛进行的,并且可以单独针对每只眼睛进行的一些图形处理被合并在一起,从而使得这些图形处理可以同时针对两只眼睛进行。这种合并在一起的图形处理的示例是多视图处理,其中针对两只眼睛的顶点着色被合并在一起。
然而,图形处理系统还有改进的空间。
发明内容
根据本发明的第一方面,提供了一种操作图形处理系统的方法,该图形处理系统包括图形处理流水线,该图形处理流水线包括图元生成阶段和像素处理阶段,该方法包括:在图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图相关联的第二图元数据;在像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据;针对与第二视图相关联的第二像素处理后的数据,判定是否使用第一像素处理后的数据作为第二像素处理后的数据或是否在像素处理阶段处理第二图元数据来产生第二像素处理后的数据;以及在图形处理流水线中基于所述判定执行附加处理。
根据本发明的第二方面,提供了一种方法,包括:在图形处理流水线的图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图先关联的第二图元数据;在图形处理流水线的像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据;使用第一像素处理后的数据作为与第二视图相关联的第二像素处理后的数据。
根据本发明的第三方面,提供了一种操作图形处理器的方法,该图形处理器与图形处理流水线相关联,该图形处理流水线包括图元生成阶段和像素处理阶段,该方法包括:在图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图相关联的第二图元数据;在像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据;针对与第二视图相关联的第二像素处理后的数据,判定是否使用第一像素处理后的数据作为第二像素处理后的数据或是否在像素处理阶段处理第二图元数据来产生第二像素处理后的数据;以及在图形处理流水线中基于所述判定执行附加处理。
根据本发明的第四方面,提供了一种包括软件代码的计算机程序,该计算机程序在图形处理系统中运行时适于执行一个或多个上述方法。
根据本发明的第五方面,提供了一种图形处理系统,该图形处理系统包括图形处理流水线,该图形处理流水线包括图元生成阶段和像素处理阶段,该图形处理系统被布置为:在图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图相关联的第二图元数据;在像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据;针对与第二视图相关联的第二像素处理后的数据,判定是否使用第一像素处理后的数据作为第二像素处理后的数据或是否在像素处理阶段处理第二图元数据来产生第二像素处理后的数据;以及在图形处理流水线中基于所述判定执行附加处理。
根据本发明的第六方面,提供了一种虚拟现实用户设备,包括上述图形处理系统。
根据本发明的第七方面,提供了一种装置,被布置为:在图形处理流水线的图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图相关联的第二图元数据;在图形处理流水线的像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据;以及使用第一像素处理后的数据作为与第二视图相关联的第二像素处理后的数据。
根据本发明的第八方面,提供了一种虚拟现实用户设备,包括上述装置。
根据本发明的第九方面,提供了一种与图形处理流水线相关联的图形处理器,该图形处理流水线包括图元生成阶段和像素处理阶段,该图形处理器被布置为:在图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图相关联的第二图元数据;在像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据;针对与第二视图相关联的第二像素处理后的数据,判定是否使用第一像素处理后的数据作为第二像素处理后的数据或是否在像素处理阶段处理第二图元数据来产生第二像素处理后的数据;以及在图形处理流水线中基于所述判定执行附加处理。
根据本发明的第十方面,提供了一种虚拟现实用户设备,包括上述图形处理器。
根据下面参考附图仅以示例方式做出的描述,进一步的特征和优点将变得显而易见。
附图说明
图1示意性地示出了根据本发明实施例的图形处理系统的示例;
图2示意性地示出了根据本发明实施例的图形处理流水线的示例;
图3示意性地示出了根据本发明实施例的图形处理流水线的另一示例;
图4示意性地示出了根据本发明实施例的数据存储布置的示例;
图5示意性地示出了根据本发明实施例的数据存储布置的另一示例;
图6示意性地示出了根据本发明实施例的图形处理流水线的另一示例;
图7示出了描绘根据本发明实施例的操作图形处理系统的方法的示例的流程图;
图8A和8B示意性地示出了根据本发明实施例的图形处理流水线的另一示例;以及
图9示出了描绘根据本发明实施例的操作图形处理系统的方法的另一示例的流程图。
具体实施方式
现在将在处理计算机图形以供显示的背景下,描述根据本发明实施例的多个示例。
参考图1,示意性地示出了图形处理系统100的示例。
在该示例中,在主机处理器110上运行的应用105(例如,游戏)请求图形处理操作被相关GPU 115执行。为此,应用105生成应用程序接口(API)调用,驱动器120为GPU 115解析这些API调用。驱动器120在主机处理器110上运行。驱动器120生成针对GPU的生成应用105所请求的图形输出的适当命令。响应于来自应用105的命令,一组命令被提供给GPU115。这些命令可以是生成将被显示在显示器上的帧。
以描绘调用描述符(DCD)的形式提供针对GPU 115的生成例如,渲染帧的输出的命令。响应于来自在主机处理器110上运行的应用105的命令生成DCD。可以执行多个描绘调用,每个描绘调用具有相应的DCD。每个描绘调用使用图形处理流水线的不同处理阶段中的至少一些处理阶段。
参考图2,示意性地示出了图形处理流水线200的示例。图形处理流水线200指示可以由GPU执行的动作序列。
在该示例中,GPU是基于图块的(tile-based)渲染器。因此,GPU产生将被生成的渲染器输出数据阵列的图块。渲染器输出数据阵列可以是输出帧。基于图块的渲染与立即模式渲染的不同在于,不是一次性地处理整个渲染器输出,而是将渲染器输出划分为多个更小的子区域(或者“范围”)。在这里将这些子区域称为图块。单独对每个图块进行渲染。例如,可以依次渲染每个图块。随后对渲染后的图块进行重新组合,以提供完整的渲染器输出供显示。在基于图块的渲染中,可以将渲染器输出划分为尺寸和形状规律的图块。这些图块可以是正方形或者其他形状。
可以用于拼接和基于图块的渲染的其他术语包括“组块化(chunking)”和“分块(bucket)”渲染,其中,可将正在渲染的图块称为“组块”。后面为了方便,将使用术语“图块”和“拼接”,但是应该理解的是,这些术语意图覆盖所有替代和等同术语和技术。
渲染器输出数据阵列可以是用于在显示设备(例如,屏幕或打印机)上显示的输出帧。渲染器输出还可以例如,包括用于后续渲染过程的中间数据。例如,用于纹理输出的渲染器。
当要显示计算机图形图像时,可以首先将计算机图形图像定义为一组图元(或者“几何图形”)。图元的示例是多边形。随后在光栅化处理中,将图元划分为图形片断。然后进行像素处理。在像素处理操作期间,渲染器可以修改与每个片断相关联的数据,使得这些片断可以被正确显示。这种数据的示例包括颜色和透明度。一旦片断完全穿过渲染器,它们的相关数据值被存储在存储器中,准备输出。
图2示出了与GPU相关联的各种元件和流水线阶段。但是,也存在图形处理流水线的图2中没有示出的其他元件和阶段。还应该注意的是,图2只是示意性的,例如,实际上,所示出的功能单元和流水线阶段可以共享硬件电路,即使它们在图2中被示意性地示出为单独阶段。还应该理解的是,图形处理流水线200的每个阶段、元件和单元等可以根据需要来实现,并且因此将包括例如,用于执行相关操作和功能的适当电路和/或处理逻辑等。
如图2中所示,GPU执行的图形处理流水线220包括多个阶段,这些阶段包括:顶点着色器205、外壳着色器210、细分器(tesselator)215、域着色器220、图元着色器225、拼接器230、光栅化阶段235、早期Z(或者深度)以及模板测试阶段240、片断着色阶段形式的渲染器245、后期Z(或者深度)以及模板测试阶段250、混合阶段255、图块缓冲器260、以及下采样和写出阶段265。GPU的其他布置也是可能的。
顶点着色器205接收与针对将被生成的输出定义的顶点相关联的输入数据值。顶点着色器205处理这些数据值,以生成一组相应的顶点着色后的输出数据值,供图形处理流水线200的后续阶段使用。
将被处理的每个图元可以由一组顶点定义和表示。图元的每个顶点可以具有与其相关联的一组属性。一组属性可以是顶点的一组数据值。这些属性可以包括位置数据和其他非位置数据。非位置数据可以定义正在讨论的顶点的例如,色、光、正则和/或纹理坐标。
针对将由GPU生成的给定输出定义一组顶点。针对该输出将被处理的图元包括该组顶点中的给定顶点。顶点着色操作将每个顶点的属性变换为期望形式,供后续图形处理操作使用。这可以包括例如,将顶点位置属性从世界或用户空间变换到屏幕空间,其中顶点位置属性最初是在世界或用户空间定义的,图形处理系统的输出将在屏幕空间显示。这可以包括例如,考虑将要渲染的图像中的照明效果来修改输入数据。
外壳着色器210对多组补丁控制点执行操作,并且生成被称为补丁常量的附加数据。
细分阶段215对图元进行细分,以创建外壳的更高阶表示。
域着色器220以类似于顶点着色器205的方式,对细分阶段输出的顶点执行操作。
图元着色器225处理诸如,三角形、点、或者线之类的整个图元。
顶点着色器205、外壳着色器210、细分器215、域着色器220以及图元着色器225响应于提供给GPU的命令和顶点数据,执行诸如,变换和照明操作和图元建立之类的片断前端操作,以建立将被渲染的图元。
一旦已经适当建立所有将被渲染的图元,拼接器230随后判定针对出于处理的目的渲染器输出已经被划分为的每个图块将处理哪些图元。为此,拼接器230对将被处理的每个图元的位置与图块位置进行比较,并且将图元添加到其所确定的图元有可能落入的每个图块的相应图元列表中。用于对图元进行筛选并且将图元分仓到图块列表中的任何适当和期望的技术(例如,精确分仓、边界框分仓等)可以用于拼接处理。
一旦针对每个渲染图块准备好了将被渲染的图元列表(或者图元的列表),该图元列表被存储供使用。图元列表使得系统在所讨论的图块被渲染时能够识别哪些图元将被考虑和渲染。
一旦拼接器230准备好了所有图块列表,则可以渲染每个图块。为此,在拼接器230后面的图形处理流水线阶段处理每个图块。
当正在处理给定图块时,将针对该图块将被处理的每个图元传递到光栅器235。图形处理流水线200的光栅化阶段235进行操作,以将图元光栅化为用于处理的相应图形片断。为此,光栅器235将图元光栅化为采样点,并且生成具有用于渲染图元的适当位置的图形片断。随后将光栅器235生成的片断向前发送到流水线200的其余阶段供处理。
早期Z以及模板测试阶段240可以对其从光栅器235接收到的片断执行Z(或者深度)测试,以查看在该阶段是否可以丢弃(或者剔除)任何片断。为此,早期Z以及模板测试阶段240将光栅器235发布的片断的深度值与已经被渲染的片断的深度值进行比较。已经被渲染的片断的深度值被存储在作为图块缓冲器260的一部分的深度缓冲器中。早期Z以及模板测试阶段240执行的比较用于判定新片断是否将被已经被渲染的片断遮挡。同时,执行早期模式测试。经过早期Z以及模式测试阶段240的片断被发送到片断着色阶段245。片断着色阶段245对经过早期Z以及模式测试的片断执行适当的片断处理操作,以生成适当的渲染后的片断数据。该片断处理可以包括任何适当的片断着色处理,例如,对片断执行片断着色器程序以生成适当的片断数据,对片断施加纹理,对片断施加雾化或者其他操作等。片断着色阶段245可以是可编程的片断着色器。
然后是后期片断Z以及模式测试阶段250,该阶段在流水线的末端对着色后的片断执行深度测试,以判定渲染后的片断是否将在最终图像中被实际看到。该深度测试使用存储在图块缓冲器260中的Z缓冲器中的片断位置的Z缓冲器值,来判定新片断的片断数据是否应该替换掉已经被渲染的片断的片断数据。这可以包括将片断着色阶段245发布的片断的深度值与Z缓冲器中存储的已经被渲染的片断的深度值进行比较。该后期片断深度以及模式测试阶段250还可以对片断执行后期阿尔法和/或模式测试。
随后可以在混合器255中对经过后期片断测试阶段250的片断与已经存储在图块缓冲器260中的片断执行任何混合操作。片断所必需的任何其他剩余操作,例如,抖动等(未示出)也在这个阶段执行。
最后,将输出片断数据(或者值)写入图块缓冲器260。随后可以将输出片断数据输出给帧缓冲器270供显示。还将输出片断的深度值适当写入图块缓冲器260中的Z缓冲器。图块缓冲器260存储颜色和深度缓冲器,该颜色和深度缓冲器分别存储缓冲器所表示的每个采样点的适当颜色或者Z值。这些缓冲器存储片断数据阵列,其中,在该示例中,片断数据阵列表示整个渲染器输出的部分图块,缓冲器中的各组采样值对应于整个渲染器输出的各个像素。例如,每个2*2采样值组可以对应于使用4x多重采样的输出像素。
将图块缓冲器260作为图形处理流水线200本地的随机存取存储器(RAM)的一部分提供。换言之,在片上存储器中提供图块缓冲器260。
将来自图块缓冲器260的数据输入到下采样写出单元265,然后将其输出(回写)到外部的存储器输出缓冲器,例如,显示设备(未示出)的帧缓冲器270。显示设备可以包括包含像素阵列的显示器,例如,计算机监视器或者打印机。
下采样写出单元265将图块缓冲器260中存储的片断数据下采样到适当分辨率,用于输出缓冲器和设备,例如,生成对应于输出设备的像素的像素数据阵列。这使得像素形式的输出值输出到输出缓冲器270。
一旦处理了渲染器输出的图块并且其数据被输出到主存储器(例如,主存储器中的帧缓冲器270)进行存储,则随后处理下一个图块,直到已经处理生成整个渲染器输出的足够多的图块为止。随后,针对下一个渲染器输出重复该过程。
从图2可以看出,图形处理流水线200包括多个可编程处理或“着色器”阶段,即,顶点着色器205、外壳着色器210、域着色器220、图元着色器225、以及片断着色器245。这些可编程的着色器阶段执行具有一个或多个输入变量的各个着色器程序,并且生成多组输出变量。可以针对将要处理的每个工作项,执行正在讨论的着色器程序,例如,针对每个顶点执行顶点着色器205。可以针对将要处理的每个工作项发布执行线程,然后该线程可以执行着色器程序中的指令来产生期望的着色后的输出数据。
诸如以上参考图1描述的应用105之类的应用提供了将使用高级着色器编程语言(例如,Shading Language(GLSL)、High-level Shading Language(HLSL)、OpenComputing Language(OpenCL)等)执行的着色器程序。着色器语言编译器随后将这些着色器程序翻译为用于目标图形处理流水线200的二进制代码。这可以包括在编译器中创建程序的一个或多个内部中间表示。编译器可以是例如,驱动器120的一部分,其中,存在专门的API调用来使编译器运行。编译器执行可以被看作驱动器响应于应用105生成的API调用而进行的描绘调用准备的一部分。
如上所述,多视图图形处理系统中的已知的顶点着色器可以同时针对两只眼睛执行顶点着色。这有助于减少对于两只眼睛共用的顶点相关处理中的计算和数据存取。这种系统中的拼接器可以产生多视图图块列表,其中,与一只眼睛相关联的图块的原始信息和与另一只眼睛相关联的相应图块的原始信息被存储在一起。
在这里描述的示例中,进一步利用了左眼视图和右眼视图中的图元之间的通用性。特别地,对于后续的图形流水线操作,已经识别出了进一步的效率提高。特别地,在后续操作和阶段不是独立对左眼视图和右眼视图的输出数据进行渲染,而可以通过识别左眼视图和右眼视图之间的视觉通用性、并且稍后在图形流水线中利用这种通用性来增强处理。例如,在左眼视图和右眼视图看到基本相同的场景或场景部分的情况下,不单独对左眼视图和右眼视图的图块进行渲染,而可以仅针对一只眼睛(而不是两只眼睛)执行一次像素处理。例如,在左眼视图图块中示出的数据与相应的右眼视图图块中示出的数据相同或者基本相同的情况下,可以仅对左眼视图执行像素处理来生成针对左眼的像素处理后的图块,并且使用该图块作为右眼视图的相应图块。由于这样的处理在实际中可以跳过或者省略,因此可以节省像素处理的计算密集操作和相关的延迟和功率消耗需求。在左眼视图图块中示出的数据不与相应的右眼视图图块中的数据相同或者基本相同的情况下,对两只眼睛执行像素处理。这里描述的技术也可以应用于左眼视图和右眼视图在图形处理流水线的多个部分中被单独处理(但是,针对其中一个视图进行的工作也可以用于流水线后的其他视图)的图形处理系统中。因此,在这里描述的示例中,实际上并不是对同一像素渲染两次,而可以针对一只眼睛渲染像素一次,并且将该像素用于另一只眼睛,如现在将更详细地描述的。
参考图3,示意性地示出了图形处理流水线300的示例。
在图形处理流水线300中执行的处理可以在VR环境或背景中执行。GPU加速的一个用例是VR应用的渲染。因此,可以使用图形处理流水线300来加速和/或增强VR应用的渲染。
例如,在场景的一些或所有对象处于相对于该场景的观察者的无穷远距离的情况下,由于场景中的任意对象都远离相机位置,所以左眼视图和右眼视图之间不存在视差。天空盒、空间背景、以及其他类似的描绘背景幕布(painted backdrop)是场景的相对于观察者处于无穷远距离的部分的示例。针对无穷远距离的对象渲染同一像素两次(即,一次针对右眼、一次针对左眼)会增加GPU的工作载荷,增加功率消耗,并且增加延迟(而只有很少的益处或者没有益处)。功率消耗是诸如智能电话、平板计算设备、VR头戴设备等的电池供电设备中的重要考虑因素。延迟可以是VR中的重要考虑因素,因为检测观察者与场景之间的互动和相应地更新场景的视图之间的显著滞后会减损用户体验。判定场景中的无穷远距离区域和/或对象并且将这些区域和/或对象降低到单次渲染操作可以降低GPU冗余。通过加速和/或增强这种渲染,可以释放渲染能力用于其他渲染操作。这里描述的技术还可以通过进行更少的渲染操作来减少GPU功率消耗。
图形处理流水线300包括包含以下阶段的图像处理流水线:图元生成阶段305、像素处理阶段310、以及附加处理阶段315。
图元生成阶段305处理输入数据,以产生第一图元数据320和第二图元数据325。输入数据可以包括例如,顶点属性数据。图元生成阶段305可以包括一个或多个顶点着色器。在图元生成阶段305处理输入数据可以包括对输入数据执行顶点着色。这里使用的术语“图元数据”是指图元生成阶段输出的数据。第一图元数据320与场景的第一视图相关联,第二图元数据325与场景的第二视图相关联。场景的第一视图可以与场景的观察者的第一眼睛相关联,第二视图可以与场景的观察者的第二眼睛相关联。场景的第一视图可以与场景的观察者的左眼相关联,第二视图可以与场景的观察者的右眼相关联。
在像素处理阶段310处理第一图元数据320,来产生第一像素处理后的数据330。像素处理阶段310可以包括一个或多个光栅器和一个或多个片断着色器。在像素处理阶段310处理第一图元数据320可以包括对第一图元数据320执行光栅化和/或顶点着色。这里使用的术语“像素处理后的数据”是指像素处理阶段输出的数据。第一像素处理后的数据330与场景的第一视图相关联。
在该示例中,做出针对或者有关与场景的第二视图相关联的第二像素处理后的数据335的判定。判定是否使用第一像素处理后的数据330作为第二像素处理后的数据335,或是否在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。在图元生成阶段305、像素处理阶段310、或者介于图元生成阶段305和像素处理阶段310之间的一个或多个阶段作出该判定。通过分析第一图元数据320和/或第二图元数据325和/或第一像素处理后的数据330和/或一个或多个其他数据项来做出该判定。在一些示例中,在像素处理阶段310处理第一图元数据320来产生第一像素处理后的数据330之前,做出针对第二像素处理后的数据335的判定。在其他示例中,在像素处理阶段310处理第一图元数据320来产生第一像素处理后的数据330之后,做出针对第二像素处理后的数据335的判定。
在一些示例中,通过比较第一图元数据320和第二图元数据325(例如)来评估第一图元数据320和第二图元数据325之间的相似程度,做出针对第二像素处理后的数据335的判定。在其他示例中,通过检查包括第一图元数据320和第二图元数据325之间的相似程度的指示的数据,来做出针对第二像素处理后的数据335的判定。包括相似程度的指示的数据可以是二进制的,它可以指示第一图元数据320和第二图元数据325是否足够类似以使得可以使用第一像素处理后的数据330作为第二像素处理后的数据335。包括相似程度的指示的数据可以由图形处理流水线300中的、与做出针对第二像素处理后的数据335的判定的实体或处理不同的实体或处理生成。例如,可以在像素处理阶段310做出针对第二像素处理后的数据335的判定,并且可以在图元生成阶段305或者介于图元生成阶段305和像素处理阶段310之间的一个或多个阶段生成包括相似程度的指示的数据。
在一些示例中,判定将使用第一像素处理后的数据330作为第二像素处理后的数据335。在这些示例中,如虚线箭头340所示,使用第一像素处理后的数据330作为第二像素处理后的数据335。
在一些示例中,使用第一像素处理后的数据330作为第二像素处理后的数据335可以包括将第一像素处理后的数据330写入与第一视图相关联的一个或多个存储器位置,从与第一视图相关联的一个或多个存储器位置读取第一像素处理后的数据330,并且将第一像素处理后的数据330写入与第二视图相关联的一个或多个存储器位置。
将第一像素处理后的数据330写入与第一视图相关联的一个或多个存储器位置可以包括生成头部数据和有效载荷数据,并且将头部数据和有效载荷数据存储在与第一视图相关联的一个或多个存储器位置中。头部数据可以指向有效载荷数据,并且可以被存储在与第一视图相关联的一个或多个存储器位置的一个或多个部分,该一个或多个部分不同于与第一视图相关联的一个或多个存储器位置的存储有效载荷数据的一个或多个部分。
参考图4,示意性地示出了数据存储布置400的示例。在该示例中,头部数据405指向有效载荷数据410。例如,第一头部数据H1指向相应的第一有效载荷数据B1,第二头部数据H2指向相应的第二有效载荷数据B2。
现在返回图3,从与第一视图相关联的一个或多个存储器位置读取第一像素处理后的数据330可以包括识别与第一像素处理后的数据330相关联的头部数据,然后基于头部数据中的指针来存取有效载荷数据。识别与第一像素处理后的数据330相关联的头部数据可以基于与第一视图有关的第一像素处理后的数据330的逻辑位置。例如,在第一像素处理后的数据330对应于图形处理流水线300的输出中的某图块的情况下,相应图块在该输出中的位置可以映射到存储头部数据的存储器位置。类似地,对应于输出中的图块的、与第一视图相关联的其他像素处理后的数据可以映射到存储它们相关联的头部数据的存储器位置。
将第一像素处理后的数据330写入与第二视图相关联的一个或多个存储器位置可以包括生成头部数据和有效载荷数据,并且将头部数据和有效载荷数据存储在与第二视图相关联的一个或多个存储器位置中。头部数据可以指向有效载荷数据,并且可以被存储在与第二视图相关联的一个或多个存储器位置的一个或多个部分,该一个或多个部分不同于与第二视图相关联的一个或多个存储器位置的存储有效载荷数据的一个或多个部分。
因此,实际上,重复使用第一像素处理后的数据330作为第二像素处理后的数据335。
在一些示例中,与第一视图相关联的一个或多个存储器位置和与第二视图相关联的一个或多个存储器位置在存储器中是顺序的或者至少部分顺序的。相比与第一视图相关联的一个或多个存储器位置和与第二视图相关联的一个或多个存储器位置在存储器中是非顺序的情况,这有助于相对高效的存储器存取。由于像素置换,像素在被存储在顺序的存储器位置中时在原始像素级坐标方面不可能是严格顺序的。例如,同步动态随机存取存储器(SDRAM)和双倍数据速率SDRAM(DDR SDRAM)中的顺序存储器存取比非顺序存取更高效。由于存储数据在存储器管理单元(MMU)页面中具有更好的局部性,还可以改善转换查找缓冲器(TLB)中的缓存。
但是,在以上所述的示例中,第一像素处理后的数据330仍然被写入一个或多个存储器位置,从该一个或多个存储器位置读取,然后写入一个或多个其他存储器位置。
在其他示例中,使用第一像素处理后的数据330作为第二像素处理后的数据335包括将第一像素处理后的数据330写入与第一视图相关联的一个或多个存储器位置,生成包括指向与第一视图相关联的一个或多个存储器位置的指针的数据,并且将该包括指针的数据存储在与第二视图相关联的一个或多个存储器位置中。
可以通过生成头部数据和有效载荷数据并将头部数据和有效载荷数据存储在与第一视图相关联的一个或多个存储器位置中,来如上所述地将第一像素处理后的数据330写入与第一视图相关联的一个或多个存储器位置。
但是,不是从与第一视图相关联的一个或多个存储器位置读取第一像素处理后的数据330并将第一像素处理后的数据330写入与第二视图相关联的一个或多个存储器位置,可以生成与第二视图相关联的进一步的头部数据并将其存储在与第二视图相关联的一个或多个存储器位置中。该进一步的头部数据可以指向与第一像素处理后的数据330相关联的现有有效载荷数据,或者可以指向与第一视图相关联的存储器位置中的与第一像素处理后的数据330相关联的现有有效载荷数据相关联的头部数据。因此,与第一像素处理后的数据330相关联的有效载荷数据被写入与第一视图相关联的存储器位置一次,而不被读取并被重写到与第二视图相关联的存储器位置。这节省了相关的读写操作。因此,与第一像素处理后的数据330相关联的有效载荷数据与两个不同指针相关联,这两个指针分别是存储在与第一视图相关联的存储器位置中的头部数据中的指针和存储在与第二视图相关联的存储器位置中的头部数据中的指针。可以根据需要,使用存储在与第二视图相关联的存储器位置中的头部数据来读取第一像素处理后的数据330。
参考图5,示意性地示出了数据存储布置500的示例。在该示例中,与第一视图相关联的头部数据505指向与第一视图相关联的有效载荷数据510。例如,与第一视图相关联的第一头部数据LH1指向与第一视图相关联的相应的第一有效载荷数据LB1,与第一视图相关联的第二头部数据LH2指向与第一视图相关联的相应的第二有效载荷数据LB2,等等。
在该示例中,与第二视图相关联的一些头部数据515指向与第一视图相关联的有效载荷数据510,如虚线箭头520所示。在该示例中,箭头520指示共享的有效载荷参考标号。例如,与第二视图相关联的第四头部数据RH4指向与第一视图相关联的相应的第四有效载荷数据LB4,与第二视图相关联的第六头部数据RH6指向与第一视图相关联的相应的第六有效载荷数据LB6。
另外,在该示例中,与第二视图相关联的其他头部数据515指向与第二视图相关联的有效载荷数据525。例如,与第二视图相关联的第一头部数据RH1指向与第二视图相关联的第一有效载荷数据RB1,与第二视图相关联的第七头部数据RH7指向与第二视图相关联的相应的第七有效载荷数据RB7。
返回图3,在一些示例中,在使用第一图元数据320作为第二像素处理后的数据335的情况下,不在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。因此,避免了与在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335相关联的开销。
在其他示例中,判定在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。在这些示例中,不使用第一图元数据320作为第二像素处理后的数据335。相反,在这些示例中,在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335,如点划线箭头345所示。
在一些示例中,针对第二像素处理后的数据335的判定是基于第一图元数据320的一个或多个几何特性和/或第二图元数据325的一个或多个几何特性的。
第一图元数据320和/或第二图元数据325包括标识、描述和/或定义一个或多个图元的数据。第一图元数据320和/或第二图元数据325可以被包括在公共(或者共享)多视图图块列表中,尽管如下所述,在非多视图布置中它们可以被包括在不同的图块列表中。一个或多个几何特性可以与在第一图元数据320和/或第二图元数据325中标识、描述和/或定义的一个或多个图元有关。
在一些示例中,一个或多个几何特性包括第一图元数据320和第二图元数据325中的一者的特性相对于第一图元数据320和第二图元数据325中的另一者的特性。这样的特性基于第一图元数据320和第二图元数据325二者,因此在这个意义上是相对几何特性。这与基于第一图元数据320和第二图元数据325中的一者而非二者的绝对特性相反。使用相对特性可以有助于在例如,执行对一个或多个几何特性的识别的实体或者处理能够访问第一图元数据320和第二图元数据325二者的情况下识别该一个或多个几何特性。这可以是例如,多视图处理可用的情况。
在一些示例中,一个或多个几何特性包括预定视差特性。视差特性是相对几何特性的示例,其中,视差的度量是使用来自第一图元数据320和第二图元数据325二者的信息确定的。具有预定视差特性意味着,第一图元数据320和第二图元数据325中的任意图元之间的视差为零或者足够小以使得第一图元数据320和第二图元数据325中的图元之间不存在差异,或者任意差异足够小以使得使用第一像素处理后的数据330作为第二像素处理后的数据335仍将产生场景的可接受的表示而不会减损用户体验。
在一些示例中,响应于识别出第一图元数据320和第二图元数据325具有预定视差特性,判定将使用第一像素处理后的数据330作为第二像素处理后的数据335。在第一图元数据320和第二图元数据325具有预定视差特性的情况下,通过在像素处理阶段310处理第二图元数据325产生的第二像素处理后的数据335将与第一像素处理后的数据330相同或者基本相同。因此,使用第一像素处理后的数据330作为第二像素处理后的数据335。
在一些示例中,响应于识别出第一图元数据320和第二图元数据325不具有预定视差特性,判定将在像素处理阶段320处理第二图元数据325来产生第二像素处理后的数据335。在第一图元数据320和第二图元数据325不具有预定视差特性的情况下,通过在像素处理阶段310处理第二图元数据325产生的第二像素处理后的数据335将不与第一像素处理后的数据330相同或者基本类似。因此,不使用第一像素处理后的数据330作为第二像素处理后的数据335,而是在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。
在一些示例中,基于与第一图元数据320中的任意图元和第二图元数据325中的任意相应图元相关联的视差的度量,来识别第一图元数据320和第二图元数据325是否具有预定视差特性。如上所示,视差的度量可以指示第一像素处理后的数据330可以被用作第二像素处理后的数据335的程度。
在一些示例中,基于比较第一图元数据320中的图元的顶点的位置与第二图元数据325中的图元的相应顶点的位置,识别第一图元数据320和第二图元数据325是否具有预定视差特性。这有助于判定第一图元数据320和第二图元数据325是否具有预定视差特性。
在一些示例中,响应于判定第一图元数据320中的图元的顶点的位置和第二图元数据325中的相应图元的相应顶点的位置之间的一个或多个偏移没有超过一个或多个预定偏移阈值,识别出第一图元数据320和第二图元数据325具有预定视差特性。
预定偏移阈值可以用来指示可以允许的相似程度或度量,在该预定偏移阈值以下,第一图元数据320和第二图元数据325可以被认为是足够类似,因而可以使用第一像素处理后的数据330作为第二像素处理后的数据335。
在一些示例中,预定偏移阈值为零。这些示例要求第一图元数据320和第二图元数据325中的图元之间不存在偏移。这可以指示任意这样的图元全都在场景的观察者的无穷远距离处,因此可以使用第一像素处理后的数据330作为第二像素处理后的数据335。
在一些示例中,预定偏移阈值为非零。这些示例允许第一图元数据320和第二图元数据325中的图元之间存在一些偏移。这可以指示任意这样的图元基本都在场景的观察者的无穷远距离处,或者距离观察者足够远使得可以使用第一像素处理后的数据330作为第二像素处理后的数据335。
在一些示例中,预定偏移阈值是预定误差容限偏移阈值,被选择用于负责顶点捕捉。即使在预定误差容限偏移为非零的情况下,也可能使用第一像素处理后的数据330作为第二像素处理后的数据335,其中,顶点位置全部对齐到相同的子像素位置,例如,在图形API使用顶点捕捉的情况下。
在一些示例中,预定偏移阈值是预定两眼间偏移阈值,被选择用于负责两眼间转移。在一些示例中,可以执行仿真来判定是否存在两眼间转移,即,图元之间的间隔是否是由两眼间的间隔而不是图元不处于无穷远距离处导致的。在设备或场景相机已经设立的情况下,两眼间的间隔可以对应于一个视图相对于另一个视图的坐标的固定偏移。
当判定相似性时,可以首先使用预定两眼间偏移阈值,随后可以使用预定误差容限偏移阈值。针对相似性的预定两眼间偏移阈值可以例如,对应于多个像素,并且针对相似性的预定误差容限偏移可以在例如,子像素等级更小。
在一些示例中,一个或多个几何特性包括第一图元数据320和/或第二图元数据325的绝对特性。在可以通过检查第一图元数据320和/或第二图元数据325而无需参考第一图元数据320和/或第二图元数据325中的另一者即可识别的意义上,几何特性可以是绝对特性。例如,可以通过检查第一图元数据320而不检查第二图元数据325,判定第一图元数据320是否具有绝对特性。在例如执行一个或多个几何特性的识别的实体或处理无法访问第一图元数据320和第二图元数据325二者的情况下,这有助于对该一个或多个几何特性的识别。这可以是例如,多视图处理不可用或者未启用的情况。
在一些示例中,一个或多个几何特性包括无穷远距离特性。无穷远距离特性可以涉及在第一图元数据320中标识、描述和/或定义的一个或多个几何特性和/或在第二图元数据325中标识、描述和/或定义的一个或多个几何特性被认为距离观察者足够远的程度,任意这样的图元存在于两个视图中并且它们具有零视差或者足够小的视差使得它们仅需要被渲染一次。
在一些示例中,响应于识别出第一图元数据320和第二图元数据325均具有无穷远距离特性,判定使用第一像素处理后的数据320作为第二像素处理后的数据335。在第一图元数据320和第二图元数据325均具有无穷远距离特性的情况下,通过在像素处理阶段310处理第二图元数据325产生的第二像素处理后的数据335与第一像素处理后的数据330相同。因此,使用第一像素处理后的数据330作为第二像素处理后的数据335。
在一些示例中,响应于识别出第一图元数据320和第二图元数据325中的一者或二者不具有无穷远距离特性,判定在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。在第一图元数据320和第二图元数据325中的一者或二者不具有无穷远距离特性的情况下,通过在像素处理阶段310处理第二图元数据325产生的第二像素处理后的数据335与第一像素处理后的数据330不同。因此,不使用第一像素处理后的数据330作为第二像素处理后的数据335,而是在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。
在一些示例中,响应于判定与第一图元数据320中的一个或多个图元相关联的剪辑空间Z值和/或与第二图元数据325中的一个或多个图元相关联的剪辑空间Z值超过了预定剪辑空间Z值阈值,识别出第一图元数据320和/或第二图元数据325具有无穷远距离特性。在这些示例中,该一个或多个图元可以被认为离观看者足够远,使得这些图元可以被当作在观看者的无穷远距离处。在一些示例中,预定剪辑空间Z值阈值是用户可配置的,其中,用户可以通过例如,图形处理系统操作器和/或内容创建器和/或阅读器设置、配置或者定义该预定剪辑空间Z值阈值。例如,可以基于期望的相似程度来设置预定剪辑空间Z值阈值,使得超过预定剪辑空间Z值阈值的所有图元被认为是相同的。在其他示例中,自动设置预定剪辑空间Z值阈值。
在一些示例中,第一图元数据320的一个或多个几何特性和/或第二图元数据325的一个或多个几何特性包括几何相似特性。几何相似特性可以涉及在第一图元数据320中标识、描述和/或定义的一个或多个图元和/或在第二图元数据325中标识、描述和/或定义的一个或多个图元之间的几何相似度量或程度。几何相似度量可以与图元的大小、形状、方向、位置、类型等相关联。
可以响应于识别出第一图元数据320中的任意图元与第二图元数据325中的任意图元相同或者基本相同,判定使用第一像素处理后的数据330作为第二像素处理后的数据335。在第一图元数据320中的任意图元与第二图元数据325中的任意图元相同的情况下,通过在像素处理阶段310处理第二图元数据325产生的第二像素处理后的数据335将与第一像素处理后的数据330相同。因此,使用第一像素处理后的数据330作为第二像素处理后的数据335。在观察者不会注意到使用了第一图元数据320和第二图元数据325之一中的任意图元而不是使用第一图元数据320和第二图元数据325中的另一者中的任意图元的情况下,第一图元数据320中的图元可以被认为与第二图元数据320中的图元基本相同。这节省了与通过在像素处理阶段310不必要地处理第二图元数据325来产生第二像素处理后的数据335相关联的开销。
可以响应于识别出第一图元数据320和第二图元数据325中的一者或两者具有至少一个图元不与第一图元数据320和第二图元数据325中的另一者中的图元相同或者基本相同,判定将在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。在第一图元数据320中的至少一个图元不与第二图元数据325中的图元相同或者基本相同的情况下,通过在像素处理阶段310处理第二图元数据325产生的第二像素处理后的数据335将与第一像素处理后的数据330不同。因此,不使用第一像素处理后的数据330作为第二像素处理后的数据335,而是在像素处理阶段310处理第二图元数据325来产生第二像素处理后的数据335。
在一些示例中,基于与第一图元数据320相关联的几何特性指示符和/或与第二图元数据325相关联的几何特性指示符来识别第一图元数据320是否具有几何特性和/或第二图元数据325是否具有几何特性。几何特性指示符可以指示第一图元数据320和/或第二图元数据325是否具有预定视差特性、无穷远距离特性、和/或几何相似特性。几何特性指示符可以由做出针对第二像素处理后的数据335的判定的实体或处理以外的实体或处理生成。几何特性指示符可以被存储在一个或多个图块列表中。与第一视图相关联的一个或多个几何特性指示符可以被存储在与第一视图相关联的一个或多个图块列表中,与第二视图相关联的一个或多个几何特性指示符可以被存储在与第二视图相关联的一个或多个单独图块列表中。替代地或者另外,与第一视图相关联到的一个或多个几何特性指示符和与第二视图相关联的一个或多个几何特性指示符可以被存储在与第一和第二视图二者相关联的公共(共享)多视图图块列表中。
在一些实施例中,几何特性指示符的值是用户可配置的。例如,该值可以由用户通过图形处理系统操作器和/或图形内容创建器和/或阅读器进行手动注释来配置。在其他示例中,可以自由设置无穷远距离特性指示符的值。
基于针对第二像素处理后的数据335的判定结果,在图形处理流水线300中的附加处理阶段315执行附加处理。附加处理的示例是写出到一个或多个存储器位置。该一个或多个存储器位置可以在一个或多个缓冲器中。该一个或多个缓冲器可以在一个或多个帧缓冲器中。
在一些示例中,例如,在执行基于图块的渲染的情况下,第一图元数据320与第一视图的子区域相关联,第二图元数据325与第二视图的相应子区域相关联。子区域可以对应于如上所述的图块。例如,每个图块的大小可以是16*16像素。图块全体形成与将要输出的整个图像相对应的规则网格或阵列。GPU可以分别渲染每个图块,而不是对整个图像进行渲染。这使得GPU能够以图块的方式渲染到片上存储器,而不是渲染到外部的芯片外存储器。当针对给定图块的渲染完成时,该图块可以被写到片外存储器,并且被GPU渲染的下一个图块被写入其片上存储器。可以并行使用多个图形处理流水线来执行图块的并行渲染。
在其他示例中,第一图元数据320与整个第一视图相关联,第二图元数据325与整个第二视图相关联。这可以是不使用基于图块的渲染,而将第一和第二视图整体进行处理的情况。
在一些示例中,进一步的第一图元数据与第一视图的至少一个进一步的子区域相关联,进一步的第二图元数据与第二视图的至少一个相应的进一步的子区域相关联。进一步的子区域可以对应于进一步的图块。
在一些示例中,在像素处理阶段310处理进一步的第一图元数据,以产生与第一视图相关联的进一步的第一像素处理后的数据。对于与第二视图相关联的进一步的第二像素处理后的数据,做出是否使用进一步的第一像素处理后的数据作为进一步的第二像素处理后的数据或是否在像素处理阶段310处理进一步的第二图元数据来产生进一步的第二像素处理后的数据的判定。这样,该判定可以逐图块地做出。例如,对于一些图块可以判定可以使用进一步的第一像素处理后的数据作为进一步的第二像素处理后的数据,对于其他图块可以判定应该在像素处理阶段310处理进一步的第二图元数据来产生进一步的第二像素处理后的数据。
在一些示例中,处理在处理与第一视图相关联的数据和处理与第二视图相关联的数据之间交替。例如,可以处理与第一视图相关联的图块,然后可以处理与第二视图相关联的图块,接着可以处理与第一视图相关联的图块,等等。这种交替(或者交叉)处理可以继续进行到与场景相关联的所有图块被处理为止。这种交替处理可以与图元处理、像素处理和/或附加处理有关。
在一些示例中,在像素处理阶段310处理与第一视图相关联的所有第一图元数据,以产生与第一视图相关联的所有第一像素处理后的数据。例如,在使用基于图块的渲染的情况下,可以在像素处理阶段310处理与第一视图相关联的所有图块,以产生与第一视图相关联的所有第一像素处理后的数据。
参考图6,示意性地示出了图形处理流水线600的示例。
在该示例中,图形处理流水线600使用多视图处理来同时执行针对第一和第二视图的顶点着色。在该示例中,第一视图与观察者的左眼相关联,第二视图与观察者的右眼相关联。在该示例中,图形处理流水线600使用基于图块的渲染,其中,如上所述,逐图块地执行渲染。
在该示例中,图形处理流水线600使用多视图使能的图块列表数据结构来向GPU提供图元数据。多视图着色和拼接处理具有左眼和右眼视图中的图元,例如,三角形的同时可见性。因此,可以判定是否可以针对左眼渲染这些图元并且判定渲染后数据是否可以用于右眼,或者判定是否应该单独针对左眼和右眼二者渲染这些图元。该判定可以根据上述一个或多个几何特性,例如,预定视差特性、无穷远距离特性、和/或几何相似特性。仅在需要时进行渲染可以节省与处理相同的图元相关联的重复片断着色器核心处理成本。
在该示例中,将左眼变换数据605和右眼变换数据610提供给多视图顶点着色器615。左眼变换数据605和右眼变换数据610可以被用来构建场景的左眼视图和右眼视图。多视图顶点着色器615可以例如,接收一个顶点数据流和两个矩阵流,其中,一个矩阵流与左眼相关联,另一个数据流与右眼相关联。多视图顶点着色器615可以使用顶点数据流和与左眼相关联的矩阵生成针对左眼视图的数据,并且可以使用相同的顶点数据流和与右眼相关联的矩阵生成针对右眼视图的数据。
多视图顶点着色器615在多视图顶点着色阶段执行多视图顶点着色。多视图顶点着色阶段是图元生成阶段的示例。在该示例中,多视图顶点着色包括执行一个或多个多视图处理操作,其中,第一图元数据620和第二图元数据625同时产生。多视图顶点着色器615具有第一图元数据620和第二图元数据625二者中的图元,例如,多边形的同时可见性。
在该示例中,第一图元数据620和第二图元数据625被包括在多视图数据结构630中。在该示例中,多视图数据结构630是多视图图块列表。该多视图图块列表可以由拼接器在图元生成阶段生成。
多视图顶点着色器615和/或另一实体或处理可以判定例如,第一图元数据620中的图元和第二图元数据625中的相应图元是否是零视差,从而使得可以使用与第一视图相关联的第一像素处理后的数据作为与第二视图相关联的第二像素处理后的数据。这可以包括例如,判定第一图元数据620中的所有图元的所有顶点的顶点位置是否与第二图元数据625中的所有相应图元的所有相应顶点相同或者足够类似。
多视图图块列表630可以包括指示是否可以或者应该使用第一像素处理后的数据作为第二像素处理后的数据、或者是否应该在像素处理阶段处理第二图元数据625来产生第二像素处理后的数据的一个或多个指示符。
在该示例中,像素处理阶段包括图块交错的片断着色器635。
可以使用单比特指示符。比特值1可以指示应该使用第一像素处理后的数据作为第二像素处理后的数据。比特值0可以指示片断着色器635应该处理第二图元数据625来产生第二像素处理后的数据。多视图顶点着色器615和/或一个或多个其他实体或处理可以设置一个或多个指示符的一个或多个值。一个或多个指示符的值可以开始于指示应该使用第一像素处理后的数据作为第二像素处理后的数据的初始值,但是可以在应该在像素处理阶段例如,通过片断着色器635处理第二图元数据625来产生第二像素处理后的数据的情况下被设置为另一值。
片断着色器635在片断着色阶段执行以图块交错的片断着色。在该示例中,片断着色器635继续以图块的方式处理多视图图块列表630中的数据。在该示例中,以图块的方式处理数据包括交替处理与左眼相关联的数据和与右眼相关联的数据。
在每个图块位置,片断着色器635从多视图图块列表630读取针对各个图块位置的所有图元,例如,多边形。在该示例中,片断着色器635只渲染仅在左眼中被标记为可见或者在左眼和右眼二者中被标记为可见的这些图元。
图形处理流水线600包括一组缓冲器,该组缓冲器包括左眼离屏缓冲器640、右眼离屏缓冲器645、以及前置缓冲器650。离屏缓冲器也被称为后置缓冲器。包括后置缓冲器和前置缓冲器的双缓冲器布置支持图像的双重缓冲。当前置缓冲器被显示在屏幕上的同时,像素被描绘到后置缓冲器。当准备好显示后置缓冲器中的图像时,后置缓冲器中的内容被复制到前置屏幕缓冲器,并且被显示在屏幕上。双重缓冲有助于更平滑的图像显示。
在该示例中,片断着色器635渲染与左眼相关联的图块,并且将针对左眼的帧缓冲内容写入左眼离屏缓冲器640。
片断着色器635针对右眼的相应图块判定该图块的指示符的比特值为1还是0。
当针对该图块的指示符的比特值为1时,左眼和右眼看到相同的视图。针对右眼的片断着色被完全跳过。相反,与该图块相关联的左眼离屏帧缓存器640中的现有内容被写入右眼离屏缓冲器645。
当针对该图块的指示符的比特值为0时,左眼和右眼看到不同的视图。针对右眼执行片断着色。与该图块相关联的左眼离屏帧缓存器640的现有内容不被写入右眼离屏缓冲器645。
来自左眼离屏帧缓冲器640和右眼离屏缓冲器645二者的内容被复制到前置缓冲器650,并且可以应用头部追踪变换655。
然后,读取前置缓冲器650的内容,并将该内容作为最终当前屏幕渲染660进行显示。
可以做出有关将左眼离屏缓冲器640中的内容写到右眼离屏缓冲器645的判定的上述方法节省了对相同的图块进行片断着色的双重片断着色器处理开销。
但是,可以进一步增强或者优化该方法,以节省与例如,使用ARM帧缓冲器压缩(AFBC)数据格式将来自左眼离屏缓冲器640的内容写到右眼离屏缓冲器650相关联的冗余帧缓冲写带宽。AFBC将数据存储为头部块及跟在其后的主体块。头部块包括存储地址偏移以找出存储器中的相关主体块的指针。在该示例中,左眼离屏缓冲器640和右眼离屏缓冲器645被顺序或者至少部分顺序存储在存储器中。右眼头部包括指向左眼主体块区域中存储的一块或多块纹理数据的指针,其中在该左眼主体块区域中两只眼睛看到相同的数据。在一些示例中,右眼头部存储到左眼主体块区域的精确偏移。在其他示例中,左眼头部存储例如,指示将使用地址偏移的数据,例如,单个比特。地址偏移可以被单独提供给例如,片断着色器635中的或者与片断着色器635相关联的纹理映射单元。
参考图7,示出了操作图形处理系统的方法700的示例。在该示例中,图形处理系统包括以上参考图6描述的图形处理流水线600。
在项目705处,该方法开始。
在项目710处,从多视图图块列表630中读取针对左眼和右眼视图的所有多边形。
在项目715处,在所有图元在这两个视图中都可见的情况下,将标记为identical_geom的单状态比特形式的指示符设置为具有值1,并且在至少一个图元仅在其中一个视图中可见的情况下,将该指示符设置为具有值0。
在项目720处,生成针对左眼的图块缓冲器内容。
在项目725处,将针对左眼的图块缓冲器内容写入左眼离屏缓冲器640。
在项目725处,判定identical_geom指示符的当前值是否等于1。
如果在项目725处判定identical_geom指示符的当前值等于1,则在项目735处,将针对左眼的现有图块缓冲器内容写入右眼离屏缓冲器645。
如果在项目725处判定identical_geom指示符的当前值不等于0,则在项目740处,从针对右眼的图元数据生成针对右眼的图块缓冲器数据,并将针对右眼的图块缓冲器数据写入右眼离屏缓冲器645。
在项目735或740之后的项目745,该方法结束。
参考图8A和8B,示意性地示出了图形处理流水线800的示例。
图形处理流水线800可以用在不支持以上参考图6和图7描述的多视图拼接处理特征,因此分别且单独处理左视图和右视图以及缓冲器的图形处理系统中。
在该示例中,左眼变换数据805和右眼变换数据810分别被提供给左眼顶点着色器815和右眼顶点着色器820。包括左眼着色器815和右眼着色器820的顶点着色阶段是图元生成阶段的示例。
顶点着色阶段检测左眼视图和右眼视图中的哪些图元具有无穷远距离特性。在该示例中,左眼顶点着色器815检测左眼视图中的哪些图元具有无穷远距离特性,右眼顶点着色器820检测右眼视图中的哪些图元具有无穷远距离特性。
顶点着色阶段的输出是左眼图块列表825和右眼图块列表830,这两个列表都包括一个或多个指示符。在该示例中,指示符是无穷远标签,其指示相关联的图块是否具有无穷远距离特性。在该示例中,左眼顶点着色器815输出具有一个或多个左眼无穷远标签的左眼图块列表825,右眼顶点着色器820输出具有一个或多个右眼无穷远标签的右眼图块列表830。
片断着色阶段用于在渲染期间从图块列表825和830读取无穷远标签。片断着色阶段还用于支持向眼睛专用缓冲器或者共享的无穷远缓冲器写入图块,或者丢弃这些图块。如果图块已经存在于另一缓冲器中,则该图块可以被丢弃。有关向哪个输出缓冲器写入的决定取决于哪只眼睛当前正在被渲染以及输入图元的无穷远标签状态,其中,这些输入图元被光栅化为正在渲染的当前图块。
左眼片断着色器835读取左眼图块列表和无穷远标签825。右眼片断着色器850读取右眼图块列表和无穷远标签830。
如果正被左眼片断着色器835检查的图块中的所有图元都在无穷远,则左眼片断着色器835渲染该图块并将该图块写入部分无穷远离屏缓冲器840。
如果正被左眼片断着色器835检查的图块中的至少一个图元不在无穷远,则左眼片断着色器835渲染该图块并将该图块写入部分左眼离屏缓冲器845。
如果正被右眼片断着色器850检查的图块中的所有图元都在无穷远,且无穷远离屏缓冲器840包含相应图块(由于左眼片断着色器835已经将该图块写入无穷远离屏缓冲器840),则右眼片断着色器850不渲染该图块。相反,从无穷远离屏缓冲器840读取该图块。
如果正被右眼片断着色器850检查的图块中的至少一个图元不在无穷远,则右眼片断着色器850渲染该图块并将该图块写入部分右眼离屏缓冲器855。
识别存储在无穷远离屏缓冲器840、左眼离屏缓冲器850、和/或右眼离屏缓冲器860中的数据的信息可以被存储。例如,在图形处理流水线800中可以创建并存储元数据,以追踪哪些图块被写入了哪些缓冲器。这使得右眼处理阶段能够决定如何处理右眼渲染和最终构图,以构建最终图像。
前置缓冲器构图860是使用无穷远离屏缓冲器840、左眼缓冲器845、和/或右眼缓冲器855中的信息创建的。该构图阶段利用无穷远离屏缓冲器840、左眼缓冲器845、和/或右眼缓冲器855来写出最终当前屏幕渲染865供显示。头部追踪变换870可以被用来形成前置缓冲器构图860。
第一缓冲器对(无穷远离屏缓冲器840和左眼缓冲器845)和第二缓冲器对(无穷远离屏显示器840和右眼缓冲器855)应该被作为单个逻辑图像暴露给纹理映射器。
对于未压缩的纹理,纹理映射器可能需要附加逻辑,或者MMU可能需要被修改以从不同MMU页面组装单个虚拟图像。但是,AFBC可以被用来将每个图像存储为头部阵列,例如,每个16*16图块一个头部。每个头部包含到更高存储器地址中的主体块的地址偏移。因此,可以针对逻辑左眼创建AFBC头部的阵列,该逻辑左眼包含一组地址偏移,每个地址偏移根据相关联的数据被存储在的缓冲器而到无穷远离屏缓冲器840或者左眼缓冲器845。类似地,可以针对逻辑右眼创建AFBC头部的阵列,该逻辑左眼包含一组地址偏移,每个地址偏移根据相关联的数据被存储在的缓冲器而到无穷远离屏缓冲器840或者右眼缓冲器855。这使得三个不同缓冲器将被用来产生两个逻辑图像。
因此,眼睛渲染阶段产生针对左、右、以及无穷远数据的稀疏分布的主体缓冲器。眼睛渲染阶段还产生了针对左眼和右眼的完整AFBC头部,这允许后续阶段将纹理作为单个资源进行处理。眼睛渲染阶段还产生了针对无穷远缓冲器的覆盖图,这使得第二眼睛渲染阶段能够判定“无穷远”图块是否已经被渲染。
现在参考图9,示出了操作图形处理系统的方法900的示例。在该示例中,图形处理系统包括以上参考图8描述的图形处理流水线900。
在项目905处,该方法开始。
在项目910处,判定与左眼视图和右眼视图相关联的所有图块是否已经被处理。
如果在项目910处判定与左眼视图和右眼视图相关联的所有图块已经被处理,则处理在项目915处结束。
如果在项目910处判定并不是与左眼视图和右眼视图相关联的所有图块都已经被处理,则在项目920处识别将被处理的下一个图块。
在项目925处,判定正在处理的当前图块是否与左眼视图相关联。
如果在项目925处判定正在处理的当前图块与左眼视图相关联,则在项目930处判定该图块中的所有图元是否在无穷远。
如果在项目930处判定该图块中的所有图元都在无穷远,则在项目935处将该图块写入左眼缓冲器,并且处理返回到项目910。
如果在项目930处判定并不是该图块中的所有图元都在无穷远,则在项目940处将该图块写入无穷远缓冲器,并且处理返回到项目910。
如果在项目925处判定正在处理的当前图块不与左眼视图相关联,则在项目945处判定该图块中的所有图元是否都在无穷远。
如果在项目945处判定该图块中的所有图元都在无穷远,则在项目950处判定相应图块是否已经在无穷远缓冲器中。
如果在项目950处判定相应图块已经在无穷远缓冲器中,则在项目955处丢弃该图块,并且处理返回到项目910。
可以在任何渲染发生之前,在渲染已经发生之后并且在写出之前,或者在这些点之间的任何位置丢弃该图块。
如果在项目950处判定相应图块并没有已经在无穷远缓冲器中,则在项目960中将该图块写入右眼缓冲器,并且处理返回到项目910。
如果在项目945处判定并不是该图块中的所有图元都在无穷远,则在项目960处将该图块写入右眼缓冲器,并且处理返回到项目910。
上述实施例将被理解为示例性示例。进一步的实施例。
在上述示例中,做出有关是否使用第一像素处理后的数据作为第二像素处理后的数据或是否在像素处理阶段处理第二图元数据来产生第二像素处理后的数据的判定。在其他示例中,没有做出有关是否使用第一像素处理后的数据作为第二像素处理后的数据或是否在像素处理阶段处理第二图元数据来产生第二像素处理后的数据的判定。在这样的其他示例中,第一像素处理后的数据可以一直被用作第二像素处理后的数据,而不需要做判定。因此,提供了各种措施(图形处理系统、图形处理器、图形处理流水线、方法和计算机程序),其中,在图形处理流水线的图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与场景的第二视图相关联的第二图元数据。在图形处理流水线的像素处理阶段处理第一图元数据,以产生与第一视图相关联的第一像素处理后的数据。使用第一像素处理后的数据作为与第二视图相关联的第二像素处理后的数据。
在一些示例中,提供了判定覆盖功能或特征。判定覆盖特征被用来设置针对第二像素处理后的数据的判定结果,使得给定判定结果被指定而不考虑其他因素。因此,判定覆盖功能指定将使用第一像素处理后的数据作为第二像素处理后的数据,或者将在像素处理阶段处理第二图元数据来产生第二像素处理后的数据。例如,期望即使在两个图块具有相同的图元的情况下,也要对这两个图块进行单独的像素处理操作,以便向这两个图块中的一者施加一种纹理或颜色,并且向这两个图块中的另一者施加另一纹理或颜色。
在一些示例中,指示着色结果是否视图无关(即,着色结果对于两个视图相同(视图无关)或者对于两个视图不同(视图相关))的比特被添加到片断DCD中。这提供了一种有效的实施方式,其中,判定覆盖功能可以用在每个图块上。从图块列表读出的每个图元已经与给定绘图调用的DCD相关联。DCD指示哪个着色器将被用来对图元进行着色、哪个深度测试将被使用等。在着色器编译时间,编译器可以指示特定片段是否是视图无关的,并且该比特随后被传播到DCD中。
不是仅追踪上述identical_geom位,追踪还可以包括判定用于给定图块的所有DCD是否已经设置了视图无关比特。如果identical_geom和视图无关比特被设置,换言之,如果视图具有相同的几何形状并且着色结果是视图无关的(即,对于两个视图相同),则针对左眼的结果随后将仅用于右眼。
驱动器侧追踪可以被用来禁止整个帧上的覆盖功能。
将理解的是,与任意一个实施例相关描述的任意特征可以单独使用或者与所描述的其他特征组合使用,并且也可以与任意其他实施例的一个或多个特征组合使用或者与任意其他实施例组合使用。另外,在不偏离所附权利要求限定的本发明的范围的条件下,上面没有描述的等同和修改也可以被采用。
Claims (10)
1.一种操作图形处理系统的方法,该图形处理系统包括图形处理流水线,该图形处理流水线包括图元生成阶段和像素处理阶段,该方法包括:
在所述图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与所述场景的第二视图相关联的第二图元数据;
在所述像素处理阶段处理所述第一图元数据,以产生与所述第一视图相关联的第一像素处理后的数据;
针对与所述第二视图相关联的第二像素处理后的数据,判定是否使用所述第一像素处理后的数据作为所述第二像素处理后的数据或是否在所述像素处理阶段处理所述第二图元数据来产生所述第二像素处理后的数据;以及
在所述图形处理流水线中基于所述判定执行附加处理。
2.根据权利要求1所述的方法,其中,所述判定基于所述第一图元数据的一个或多个几何特性和/或所述第二图元数据的一个或多个几何特性。
3.根据权利要求2所述的方法,其中,所述一个或多个几何特性包括:
所述第一图元数据和所述第二图元数据中的一者的特性相对于所述第一图元数据和所述第二图元数据中的另一者的特性;
预定视差特性;
所述第一图元数据和/或所述第二图元数据的绝对特性;
无穷远距离特性;和/或
几何相似特性。
4.根据权利要求1所述的方法,其中,所述第一图元数据与所述第一视图的子区域相关联,所述第二图元数据与所述第二视图的相应子区域相关联。
5.根据权利要求1所述的方法,包括:在所述像素处理阶段处理与所述第一视图相关联的所有第一图元数据,以产生与所述第一视图相关联的所有第一像素处理后的数据。
6.根据权利要求1所述的方法,其中,所述执行附加处理包括将所述第一像素处理后的数据写入与所述第一视图相关联的一个或多个第一存储器位置。
7.根据权利要求1所述的方法,所述方法包括:使用判定覆盖功能来做出针对所述第二像素处理后的数据的所述判定,所述判定覆盖功能指定将使用所述第一像素处理后的数据作为所述第二像素处理后的数据、或者将在所述像素处理阶段处理所述第二图元数据来产生所述第二像素处理后的数据。
8.根据权利要求1所述的方法,所述方法被用在虚拟现实环境中。
9.一种包括软件代码的计算机程序,当所述程序在图形处理系统中运行时,适于执行操作所述图形处理系统的方法,所述图形处理系统包括图形处理流水线,所述图形处理流水线包括图元生成阶段和像素处理阶段,所述方法包括:
在所述图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与所述场景的第二视图相关联的第二图元数据;
在所述像素处理阶段处理所述第一图元数据,以产生与所述第一视图相关联的第一像素处理后的数据;
针对与所述第二视图相关联的第二像素处理后的数据,判定是否使用所述第一像素处理后的数据作为所述第二像素处理后的数据或是否在所述像素处理阶段处理所述第二图元数据来产生所述第二像素处理后的数据;以及
在所述图形处理流水线中基于所述判定执行附加处理。
10.一种图形处理系统,包括图形处理流水线,所述图形处理流水线包括图元生成阶段和像素处理阶段,所述图形处理系统被布置为:
在所述图元生成阶段处理输入数据,以产生与场景的第一视图相关联的第一图元数据和与所述场景的第二视图相关联的第二图元数据;
在所述像素处理阶段处理所述第一图元数据,以产生与所述第一视图相关联的第一像素处理后的数据;
针对与所述第二视图相关联的第二像素处理后的数据,判定是否使用所述第一像素处理后的数据作为所述第二像素处理后的数据或是否在所述像素处理阶段处理所述第二图元数据来产生所述第二像素处理后的数据;以及
在所述图形处理流水线中基于所述判定执行附加处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1614506.2A GB2553293B (en) | 2016-08-25 | 2016-08-25 | Graphics processing systems and graphics processors |
GB1614506.2 | 2016-08-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107784622A true CN107784622A (zh) | 2018-03-09 |
CN107784622B CN107784622B (zh) | 2023-11-24 |
Family
ID=57119764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710735647.2A Active CN107784622B (zh) | 2016-08-25 | 2017-08-24 | 图形处理系统和图形处理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10432914B2 (zh) |
KR (1) | KR102442488B1 (zh) |
CN (1) | CN107784622B (zh) |
GB (1) | GB2553293B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10573055B2 (en) * | 2017-08-31 | 2020-02-25 | Intel Corporation | Apparatus and method for a programmable depth stencil graphics pipeline stage |
CN113495793A (zh) * | 2020-04-02 | 2021-10-12 | 英特尔公司 | 用于缓冲器共享的方法和装置 |
US11514161B2 (en) * | 2020-09-11 | 2022-11-29 | Mcafee, Llc | Method and apparatus for detecting malware via analysis of a screen capture |
US11545209B2 (en) * | 2021-05-28 | 2023-01-03 | Micron Technology, Inc. | Power savings mode toggling to prevent bias temperature instability |
US11581049B2 (en) * | 2021-06-01 | 2023-02-14 | Sandisk Technologies Llc | System and methods for programming nonvolatile memory having partial select gate drains |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110018863A1 (en) * | 2009-07-21 | 2011-01-27 | Samsung Electronics Co., Ltd. | Image processing apparatus performing rendering at multiple viewpoints and method |
US20130100132A1 (en) * | 2011-03-31 | 2013-04-25 | Panasonic Corporation | Image rendering device, image rendering method, and image rendering program for rendering stereoscopic images |
CN103136774A (zh) * | 2011-12-05 | 2013-06-05 | Arm有限公司 | 用于处理计算机图形的方法和装置 |
US20140327688A1 (en) * | 2013-05-02 | 2014-11-06 | Arm Limited | Graphics processing systems |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9611939D0 (en) * | 1996-06-07 | 1996-08-07 | Philips Electronics Nv | Stereoscopic image display driver apparatus |
JP4766877B2 (ja) * | 2002-11-27 | 2011-09-07 | ビジョン サード イメージング,インコーポレイテッド | コンピュータを用いて画像を生成する方法、コンピュータ可読メモリ、および、画像生成システム |
KR101195942B1 (ko) | 2006-03-20 | 2012-10-29 | 삼성전자주식회사 | 카메라 보정 방법 및 이를 이용한 3차원 물체 재구성 방법 |
JP4764305B2 (ja) * | 2006-10-02 | 2011-08-31 | 株式会社東芝 | 立体画像生成装置、方法およびプログラム |
US9830714B2 (en) * | 2014-06-27 | 2017-11-28 | Samsung Electronics Co., Ltd. | Graphics processing with advection to reconstruct missing sample data points |
KR101736660B1 (ko) * | 2016-01-15 | 2017-05-17 | 세종대학교산학협력단 | 스테레오 3d 내비게이션 장치 및 이를 위한 세일리언시 기반의 카메라 파라미터 조절 방법 |
US10469821B2 (en) * | 2016-06-17 | 2019-11-05 | Altek Semiconductor Corp. | Stereo image generating method and electronic apparatus utilizing the method |
-
2016
- 2016-08-25 GB GB1614506.2A patent/GB2553293B/en active Active
-
2017
- 2017-08-22 US US15/683,653 patent/US10432914B2/en active Active
- 2017-08-24 KR KR1020170107360A patent/KR102442488B1/ko active IP Right Grant
- 2017-08-24 CN CN201710735647.2A patent/CN107784622B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110018863A1 (en) * | 2009-07-21 | 2011-01-27 | Samsung Electronics Co., Ltd. | Image processing apparatus performing rendering at multiple viewpoints and method |
US20130100132A1 (en) * | 2011-03-31 | 2013-04-25 | Panasonic Corporation | Image rendering device, image rendering method, and image rendering program for rendering stereoscopic images |
CN103136774A (zh) * | 2011-12-05 | 2013-06-05 | Arm有限公司 | 用于处理计算机图形的方法和装置 |
US20140327688A1 (en) * | 2013-05-02 | 2014-11-06 | Arm Limited | Graphics processing systems |
Also Published As
Publication number | Publication date |
---|---|
GB2553293A (en) | 2018-03-07 |
CN107784622B (zh) | 2023-11-24 |
GB2553293B (en) | 2022-06-01 |
US20180061115A1 (en) | 2018-03-01 |
US10432914B2 (en) | 2019-10-01 |
GB201614506D0 (en) | 2016-10-12 |
KR102442488B1 (ko) | 2022-09-13 |
KR20180023856A (ko) | 2018-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220230380A1 (en) | Watertight ray triangle intersection | |
US11113790B2 (en) | Adding greater realism to a computer-generated image by smoothing jagged edges | |
US11804002B2 (en) | Techniques for traversing data employed in ray tracing | |
US7973790B2 (en) | Method for hybrid rasterization and raytracing with consistent programmable shading | |
US10607400B2 (en) | Graphics processing systems using a vertex shader to render plural images | |
CN107784622A (zh) | 图形处理系统和图形处理器 | |
CN110827385A (zh) | 树遍历的特定于查询的行为修改 | |
CN110827387A (zh) | 没有着色器干预下对交点进行连续层次包围盒遍历的方法 | |
CN110827390A (zh) | 处理无序不透明和α光线/图元交点的方法 | |
CN110458905A (zh) | 用于层级自适应曲面细分的设备和方法 | |
CN107209951B (zh) | 单遍表面溅射 | |
US20230084570A1 (en) | Accelerating triangle visibility tests for real-time ray tracing | |
Friedrich et al. | Exploring the use of ray tracing for future games | |
CN113781624A (zh) | 具有可选的世界空间变换的光线跟踪硬件加速 | |
CN113822788B (zh) | 光线追踪硬件中对资源的早期释放 | |
US10846908B2 (en) | Graphics processing apparatus based on hybrid GPU architecture | |
US11341708B2 (en) | Graphics processing | |
US20210398253A1 (en) | Adding greater realism to a computer-generated image by smoothing jagged edges | |
Celarek | Merging ray tracking and rasterization in mixed reality | |
US20240009226A1 (en) | Techniques for traversing data employed in ray tracing | |
US20240087211A1 (en) | Generation and Traversal of Partial Acceleration Structures for Ray Tracing | |
Kaveney | Advanced Visualization and Interactive Display Rapid Innovation and Discovery Evaluation Research (VISRIDER) Program Task 6: Point Cloud Visualization Techniques for Desktop and Web Platforms | |
CN115690301A (zh) | 图形处理系统 | |
Bansal | Development of a Graphical Interface for an Endoscopy Simulator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |