CN106296565A - 图形管线方法和设备 - Google Patents
图形管线方法和设备 Download PDFInfo
- Publication number
- CN106296565A CN106296565A CN201610465090.0A CN201610465090A CN106296565A CN 106296565 A CN106296565 A CN 106296565A CN 201610465090 A CN201610465090 A CN 201610465090A CN 106296565 A CN106296565 A CN 106296565A
- Authority
- CN
- China
- Prior art keywords
- sampling
- image
- screen
- shader
- pixels
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Computer Graphics (AREA)
- Controls And Circuits For Display Device (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
提供一种图形管线方法和设备。针对多个屏幕像素中的每一个,基于设置的图案确定一个或多个采样点的位置,以修改待渲染的图像。在一个或多个采样点中的采样点的确定的位置上产生对应于设置的图元的像素。使用产生的像素渲染图像。
Description
本申请要求于2015年6月23日提交到韩国知识产权局的第10-2015-0089092号韩国专利申请的权益,所述韩国专利申请的公开通过引用完整地包含于此。
技术领域
一个或多个实施例涉及图形管线方法和设备。
背景技术
图形处理装置或元件(诸如图形处理单元(GPUs))可在计算装置中执行图形数据的渲染。仅作为一个示例,这样的图形处理装置可将对应于二维或三维对象的图形数据转换为二维像素表示,以产生用于显示的帧。
发明内容
一个或多个实施例包括图形管线方法,所述方法包括:通过针对多个屏幕像素中的每一个基于设置的模式确定采样点的位置,来使用一个或多个处理装置针对显示器的多个屏幕像素确定采样点的各自的位置,以修改待渲染的图像;在采样点中的被确定为与被设置为将要被光栅化的图元叠置的采样点的确定的位置上,产生基于图像的并与设置的图元对应的像素,使用产生的像素渲染图像。
所述模式可以是用于将畸变施加到图像的畸变模式,以使渲染的图像是畸变图像。
所述各自的位置的确定可包括:基于多个屏幕像素的每个修改的位置的各自的中心位置确定采样点的各自的位置,其中,所述多个屏幕像素可被布置在等距离或重复的网格图案中。
所述方法还可包括:当选择性地没有应用模式时,通过基于所述多个屏幕像素的未修改的位置来分别映射图像的像素的位置来确定采样点的各自的位置。
所述方法还可包括获得显示器的多个屏幕像素的分辨率的信息,所述分辨率限定多个屏幕像素的位置,所述各自的位置的确定还可包括:基于分辨率的信息将多个屏幕像素中的屏幕像素的位置转换为基于模式的对应的采样点的位置;将图像的像素的位置映射到对应的采样点的位置。
所述各自的位置的确定可以是由所述一个或更多个处理装置实现的可编程阶段,所述一个或更多个处理装置处理用于改变和定义模式的在多个模式类型中的模式类型的着色器源代码。
所述多个模式类型中的至少一个可以是由用户交互定义的模式,使用电子装置的用户交互实现图形管线方法,识别要修改的图像的用户选择的点或区域。
多个模式类型中的至少一个可以是非线性模式。
多个模式类型中的至少一个可以是包括在模式中的多个定义的位置或点之间变化的间隔的模式。这里,根据在着色器源代码中提出的预设算法可将多个定义的位置或点定义为在它们之间具有变化的间隔。
各自的位置的确定可包括:当确定启用多重采样时,针对一个屏幕像素确定两个或更多个采样点的位置;当确定禁用多重采样时,针对所述一个屏幕像素确定单个采样点的位置,当确定启用多重采样时,与多个屏幕像素中的每一个的位置被设置为按模式进行修改的程度成比例地布置针对每个屏幕像素确定的相应的两个或更多个采样点,使得渲染图像是畸变图像。
各自的位置的确定可以是在执行像素的产生的图形管线的光栅化阶段的操作之前与图形管线的顶点着色阶段、剪切阶段和投影阶段的操作并行地执行。
像素的产生可包括:基于四叉树算法通过从采样点的确定的各自的位置的选择的一个或更多个子集中搜索与所述图元叠置的采样点的位置来确定采样点的位置,所述四叉树算法基于集的采样点分别所属的视口的区域反复地调用将采样点的所述集细分为更小的子集的操作。
各自位置的确定还可包括根据四叉树算法以四叉树格式将确定的各自位置存储在存储器,像素的产生还可包括从存储器中选择性地读取仅仅与所述一个或多个子集对应的选择的采样点的位置并搜索与所述图元重叠的所述一个或多个子集的采样点的读取的位置,所述一个或多个子集被确定为表现与所述图元至少部分地叠置的区域。
所述各自的位置的确定可包括:当针对屏幕像素的不同颜色分量确定各自的采样点的位置时,通过分别施加不同的偏移来针对屏幕像素的不同的颜色分量确定各自的采样点的位置。
当图形管线是用于基于图块的渲染的图形管线时,可在图块像素组合操作的单个通道中执行各自的位置的确定的步骤。
一个或多个实施例可包括:非暂时性处理器-可读记录介质,所述介质包括计算机可读代码以控制至少一个处理装置来实现这里描述的一个或多个实施例。
一个或多个实施例包括一种图形管线设备,所述设备包括:着色器,被配置为通过针对多个屏幕像素中的每一个基于设置的模式确定采样点的位置,来针对显示器的多个屏幕像素确定采样点的各自的位置,以修改待渲染的图像;光栅化器,被配置为在采样点中的被确定为与被设置为将要被光栅化的图元叠置的采样点的确定的位置上产生基于图像的并与设置的图元对应的像素,并输出产生的像素以渲染图像。
图形管线设备可以是电子装置,所述电子装置还包括显示器和包括着色器和光栅化器的图形处理装置,而且光栅化器可产生包括对应于图元的产生的像素的多个像素以渲染图像和输出多个产生的像素以在显示器上显示渲染图像,所述图像是根据模式进行畸变的。
设备还可包括存储器,而且光栅化器可通过将多个像素存储在存储器中输出多个像素,以在显示器上显示渲染图像。
所述模式可以是用于将畸变施加到图像的畸变模式,使得渲染的图像是畸变图像。
着色器可基于多个屏幕像素的每个修改的位置的各自的中心位置确定采样点的各自的位置,所述多个屏幕像素可被布置在等距离或重复的网格图案中。
着色器还可被配置为当未选择性地施加模式时,基于未修改的屏幕像素的位置,通过图像的各自的映射的像素位置确定采样点的各自位置。
着色器还可被配置为获取显示器的多个屏幕像素的分辨率的信息,所述分辨率限定多个屏幕像素的位置,在所述各自的位置的确定中,着色器可基于分辨率的信息将多个屏幕像素中的屏幕像素的位置转换为基于模式的对应的采样点的位置,并将图像的像素的位置映射到对应的采样点的位置。
着色器可被配置为图形处理装置的可编程着色器阶段,所述图形处理装置被配置为处理用于改变和定义模式的多种模式类型中的模式类型的着色器源代码。
所述多个模式类型中的至少一个可以是由用户交互定义的模式,使用电子装置的包括图形管线设备的用户接口,识别要修改的图像的用户选择的点或区域。
多个模式类型中的至少一个可以是非线性模式。
多个模式类型中的至少一个可以是包括在模式中的多个定义的位置或点之间变化的间隔的模式。这里,根据在着色器源代码中提出的预设算法可将多个定义的位置或点定义为在它们之间具有变化的间隔。
着色器可被配置为当确定启用多重采样时,针对一个屏幕像素确定两个或更多个采样点的位置,并被配置为当确定禁用多重采样时,针对所述一个屏幕像素确定单个采样点的位置,当确定启用多重采样时,与多个屏幕像素中的每一个的位置被设置为按模式进行修改的程度成比例地布置针对每个屏幕像素确定的相应的两个或更多个采样点,使得渲染图像是畸变图像。
着色器可在光栅化器执行产生的像素的光栅化之前将各自位置确定为产生的像素的输出以渲染图像。
在像素的产生中,光栅化器可基于四叉树算法通过从采样点的确定的位置的选择的一个或更多个子集中搜索与所述图元叠置的采样点的位置来确定采样点的位置,所述四叉树算法基于集的采样点分别所属的视口的区域反复地调用将采样点的所述集细分为更小的子集的操作。
设备还可包括存储器,而且在各自位置的确定中,着色器还可被配置为根据四叉树算法以四叉树格式将确定的各自位置存储在存储器,在像素的产生中,光栅化器还可被配置为从存储器中选择性地读取仅仅与所述一个或多个子集对应的选择的采样点的位置并且还可被配置为搜索与所述图元重叠的所述一个或多个子集的采样点的读取的位置,所述一个或多个子集被确定为表现与所述图元至少部分地叠置的区域。
在各自位置的确定中,当针对屏幕像素的不同颜色分量确定各自的采样点的位置时,着色器可通过选择性地施加不同的偏移来针对屏幕像素的不同颜色分量确定各自采样点的位置。
一个或多个实施例包括一种图形管线设备,所述设备包括:着色器,被配置为基于设置的畸变模式确定采样点,所述采样点被确定以渲染图像;顶点着色器,被配置为在三维空间中针对顶点确定位置,以用于图像的渲染;光栅化器,被配置为使用确定的采样点产生用于具有畸变的图像的渲染的像素,所述畸变由设置的畸变模式定义;渲染器,用于使用产生的像素输出具有畸变的图像;其中,使用操作着色器、顶点着色器和光栅化器的单个通道执行具有畸变的图像的渲染。
图形管线设备可以是图形处理单元(GPU)。
着色器的操作的单个通道可与操作顶点着色器的单个通道并行地被执行。
设备还可包括:像素着色器,被配置为确定用于产生的图像像素的像素颜色值,其中,使用操作像素着色器的单个通道执行具有畸变的图像的渲染,在着色器的单通道操作之后执行图像的渲染。
另外的方面将在下面的描述中部分地阐述,部分地将通过所述描述而变得明显,或者可通过实施例的实施来了解。
附图说明
通过下面结合附图对实施例进行的描述,这些和/或其他方面将会变得更加清楚和更加容易理解,其中:
图1是根据一个或多个实施例的描述电子装置的示图;
图2A至2D是根据一个或多个实施例的描述畸变的类型的图示;
图3是根据一个或多个实施例的描述利用畸变图像的头戴式显示器系统的示图;
图4A是描述在一般的图形管线中使用采样点确定图像的像素的方法的示图;
图4B是根据一个或多个实施例的描述在图形管线中使用采样点确定图像的像素的方法的示图;
图5是示出根据一个或多个实施例的图形处理单元(GPU)的框图;
图6是根据一个或多个实施例的用于渲染图像的图形管线的流程图;
图7是根据一个或多个实施例的描述基于畸变模式的与屏幕像素对应的采样点的位置的示图;
图8A是根据一个或多个实施例的描述确定与未施加畸变模式时的屏幕像素对应的采样点的方法的示图;
图8B是根据一个或多个实施例的描述基于施加的畸变模式确定与屏幕像素对应的采样点的方法的示图;
图9是根据一个或多个实施例的描述未施加畸变时采样点的位置与施加畸变时采样点的位置之间的比较的示图;
图10是根据一个或多个实施例的描述使用由采样着色器确定的采样点为像素产生执行光栅化的方法的示图;
图11是根据一个或多个实施例的描述用于基于桶形畸变模式确定采样点的着色器源代码的示例的示图;
图12是根据一个或多个实施例的描述在光栅化器中寻找与视口上的图元重叠的采样点的方法的示图;
图13是根据一个或多个实施例的描述在光栅化器中寻找与视口上的图元重叠的采样点的方法的示图;
图14是根据一个或多个实施例的描述在头戴式显示器(HMD)系统上基于枕形畸变模式使用采样点显示渲染的畸变图像的方法的图示;
图15A和15B是根据两个或更多个实施例的描述单次采样和多重采样的示图;
图16是根据一个或多个实施例的描述确定用于屏幕像素的每种颜色分量的不同的采样点的位置的过程的示图;
图17是根据一个或多个实施例的描述存在未使用的区域时基于施加的畸变模式渲染畸变图像的方法的图示;
图18是根据一个或多个实施例的描述由采样着色器确定用于抖动的采样点的方法的示图;
图19是根据一个或多个实施例的描述在图形管线用于基于图块的渲染的情况下利用采样着色的方法的示图;
图20是根据一个或多个实施例的具有用于渲染带有畸变的图像的图形管线的设备的框图;
图21是根据一个或多个实施例的用于渲染带有畸变的图像的图形管线方法的流程图。
具体实施方式
提供下面具体的描述,以帮助读者获得对这里描述的方法、设备和/或系统的全面的理解。然而,这里描述的方法、设备和/或系统的各种变形、修改和等同对本领域普通技术人员来说将是显而易见的。这里描述的操作顺序仅仅是示例,并不限于本文所述的这些,而是如对本领域普通技术人员来说将显而易见的是可被改变的,除了以一定顺序必然发生的操作以外。此外,为了更加清楚和简明起见,对本领域普通技术人员众所周知的功能和结构的描述可被省略。
这里描述的特征可以以不同的形式体现,并不一定被解释为局限于这里所描述的示例。
可对描述的实施例进行各种变形和修改,其中一些将在附图和详细的描述中进行详细说明。然而,应当理解,这些实施例不被解释为限于示出的形式,还包括在本公开的思路和技术范围内的所有变化、等价物和替换。
这里使用的术语仅仅是为了解释特定的实施例,因此不意味着限定。单数表达包括复数表达,除非当两个表达在上下文中彼此不同。例如,如这里所使用,单数形式“一”、“一个”和“这个”意图在于同样包括复数形式,除非上下文另外清楚地指出。这里提供的任何和所有的示例以及示例性语言(例如,“诸如”)的使用意图仅仅在于更好地说明下面的概念,而不是不构成对本公开的范围的限定。在这里,术语“包括”和“具有”意图同样在于指示在说明书上公开的特征、数字、操作、组件和元件及其组合存在。应理解,术语“包括”和“具有”不是为了排除一个或多个其他特征、数字、操作、组件和元件及其组合和更多可能的存在。此外,为了描述的方面,使用了包括常用数字(诸如,“第一”和“第二”等)的术语,以描述和区分各种元件,但元件不应该由这些术语限定,而且其意图不在于代表想要的序列或顺序,除非上下文有不同的含义。
鉴于本公开,除非另外被定义,否则包括这里所使用的技术和科学术语的所有术语具有与被本发明所属领域的普通技术人员普遍理解的含义相同的含义。还将理解,术语(诸如那些在普遍使用的字典中所定义的术语)应该被解释为具有与他们在相关领域和本公开的语境中的含义一致的含义,而且将不会被解释为理想化或过于形式化的意义,除非此处明确这样定义。
以下,将参照附图对某些实施例进行更加详细地说明,其中相同的参考标记至始至终指代相同的元件。将对彼此相似或相同的组件提供相同的参考标记,并将省略他们的详细描述。当在理解本公开之后确定相关或公知的功能和配置的具体描述可能会使本公开的实施例的目的变得不必要的模糊和冗长时,可省略这样的详细描述。
图1是描述根据一个或多个实施例的电子装置的示图。
参照图1,电子装置1可包括:GPU 10,中心处理器(CPU)20,存储器30,显示器40,总线50,例如注意到还可包括除了示出的元件之外的元件。
电子装置1可包括例如台式电脑、笔记本电脑、智能电话、个人数字助理(PDA)、便携式媒体播放器、视频游戏控制台、电视机顶盒、平板设备、电子书阅读器、可穿戴设备,HMD装置等,但实施例不限于此。换言之,可在电子设备1的范围内包括作为被配置为执行或控制图形处理操作(例如,用于输出内容的操作或在显示器上显示内容的操作)的装置的各种装置,诸如电子装置1的显示器40。
CPU 20可以是用于控制电子装置1的整体操作和功能的硬件。例如,CPU 20可驱动操作系统(OS),为GPU 10调用图形API,并执行GPU 10的驱动器。此外,CPU 20可执行各种存储在存储器30中的应用程序,例如网络浏览应用程序,游戏应用程序,视频应用程序等。
作为用于操作示例图形管线100的装置,GPU 10可与图形专用处理器对应。换言之,GPU 10可以是实现为操作用于将三维图像上的三维对象渲染成二维图像以便显示的三维图形管线的硬件。例如,GPU 10可执行各种功能(诸如着色,混合,和照明)以及各种用于产生将被显示的像素的像素值的功能。根据实施例,GPU 10还可对用于基于图块的渲染(TBR)的基于图块的图形管线进行操作或者可选择的操作。
参照图1,将由GPU 10实现的图形管线100可与由图形APIs(仅作为示例,诸如各种版本的DirectX和开放式图形库(OpenGL)API)所定义的图形管线中的一个对应。换言之,根据不同实施例的这种图形管线100的一个或多个不限于一个版本和任何一个API类型,但可通过各种APIs实现。
作为用于存储将在电子装置1内被处理的各种类型的数据的硬件,例如,根据实施例,存储器30可存储在GPU 10和/或CPU 20中被处理的数据和将要被处理的数据,而且可有多个存储器30。此外,存储器30可存储将由GPU 10和/或CPU 20驱动的应用程序和驱动程序等。存储器30可包括随机存取存储器(RAM)(诸如动态RAM(DRAM)和/或静态存储器(SRAM)),只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),光盘只读存储器(CD-ROM)、蓝光或其他光盘存储器,硬盘驱动器(HDD),固态硬盘(SSD),或闪存的任何一种和任意组合。此外,存储器30可代表能由电子装置1访问的外部存储装置。
显示器40是用于显示由GPU 10处理的图像的硬件。例如,包括由GPU 10渲染的图像以便包括畸变的显示器40可显示由GPU 10渲染的图像。显示器40包括具有预定分辨率的屏幕像素,而且GPU 10通常会对图像进行渲染使其适用于那种分辨率。显示器40可由各种类型的显示面板(仅作为示例,诸如液晶显示器(LCD)和有机发光二极管(OLED))实现。
总线50用作用于连接硬件部分的硬件,使得可以在电子装置1内的数个硬件之间发送和接收数据。例如,总线50可包括各种类型的总线(诸如外设组件互连标准(PCI)总线和PCI Express总线)。
具体地,电子装置1可对用于修改原始图像和渲染畸变图像的图形管线100进行操作。在实施例中,电子装置1可被配置为使用户能够选择畸变,或者可基于与电子装置1的用户交互选择性地将畸变施加到图像上,并因此对图形管线100进行操作以使相应的图像畸变并渲染相应的图像。此外,在一个或多个实施例中,施加的畸变可以是畸变或畸变模式(distortion pattern,畸变样式),所述畸变模式反转在输入图像中存在的畸变,例如,仅作为示例,在图像捕获透镜有瑕疵或已知图像捕获透镜以特定方式使捕获的场景畸变。将参照图2A至2D对示例畸变类型进行描述。
图2A至D是根据一个或多个实施例的描述畸变类型的示图。
参照图2A,畸变图像215可由于具有伸展形状的桶形畸变发生,在所述桶形畸变中,使得原始图像210的中心像素和其他像素之间的距离相对于原始图像210的中心像素逐渐增加。例如,桶形畸变可以是使得原始图像210看似是由鱼眼透镜捕获的畸变效应。当然,如果已知原始图像是被这样的鱼眼透镜捕获,那么变形的桶形畸变可使原始图像畸变,使得结果的畸变图像实际上出现更少的畸变。参照图2B,与桶形畸变相对照,畸变图像215可由于具有收缩形状的枕形畸变发生,在所述枕形畸变中,使得原始图像210的中心像素和其他像素之间的距离相对于原始图像210的中心像素逐渐减少。另一方面,尽管未示出,但是由桶形畸变和枕形畸变混合的胡子畸变(mustache distortion)可发生或被引起发生。
参照图2C,示出了基于示例用户的操作的畸变图像235。在一个或多个实施例中,当用户例如使用电子装置的用户界面随意地操作或选择想要在原始图像230上修改的点的位置时,可产生畸变图像235。换言之,与图2A和2B不同,根据用户的喜好可以以各种形状非线性地产生畸变图像235。参照图2D,示出了将具有16:9的分辨率的原始图像240改变为具有4:3的分辨率的畸变图像245的示例。此时,由分辨率变化引起的畸变可以是由非线性畸变模式引起的原始图像240的像素网格243到畸变网格247的变化。与图2C类似,图2D的畸变图像245可以是当用户随意地指定需要修改的区域时的畸变图像。根据实施例,除了展示的图2A至2D的畸变以外,还存在(仅作为示例)其他类型的畸变,所述其他类型的畸变可被应用于图像,以例如通过畸变模式或算法产生具有期望的畸变的或减小现有畸变的畸变图像。
仅作为示例,在一个或多个实施例中描述的畸变图像的这样的类型可包括根据用户的操作的非线性畸变模式和线性畸变模式。换言之,将在实施例中进行描述的畸变图像不限于任何一个图像。例如,图1的电子装置1(具体地,GPU 10)可根据各种畸变模式将原始图像渲染为各自的畸变图像。
图3是根据一个或多个实施例的描述采用畸变图像的头戴式显示器系统的示图。
参照图3并仅作为示例,畸变图像215可被渲染以具有上述桶形畸变并在HMD系统300中被使用。HMD系统300是一种图像显示系统,将所述系统戴在他/她的头上(诸如戴一副眼镜)的用户可通过所述图像显示系统立即观看他/她眼前的图像。HMD系统300可以是HMD装置,所述HMD装置包括示出的透镜320和显示面板330,或者它们可以是配对显示面板330和透镜320的系统的独立装置组件。用户可通过透镜320查看在显示面板330上显示的屏幕。可控制显示面板330来显示例如被修改为具有桶形畸变的一对畸变图像340。然而,由于透镜320预定的畸变特征,实际上通过透镜320将畸变图像310观察(或看起来)为非畸变图像。
通过在图1的电子装置1(具体地,GPU 10)中处理的图形管线100渲染的畸变图像例如可用于上述HMD系统300,但实施例不限于此。仅作为这样的HMD系统300的示例,在实施例中,电子装置1可以代表HMD系统300的显示面板330,使得这样的HMD系统/装置实施例可产生与透镜320的特征一致的畸变图像以将想要的虚拟体验提供给用户。
图4A是描述在一般的图形管线中使用采样点来确定图像的像素的方法的示图。
参照图4A,可使用在视口上的采样点402的位置来将三角形对象401绘制为图像像素。在视口上的采样点402的位置与将在显示屏上进行渲染的图像的特定像素403有预定的关系,即根据图形管线的固定1:1映射。此外,根据与图形管线的固定操作对应的光栅化(固定的1:1映射),使用在视口上的采样点402的位置上的对象信息(或图元信息)来执行光栅化相应的像素403的方法。
因此,在图4A的一般的图形管线中,采样点402的位置与显示屏上的待渲染的图像的像素403具有固定映射。此外,由于这种方法,当期望畸变图像时,一般的图形管线必须实现渲染管线的两个通道。第一通道在畸变前渲染正常图像。然后,在第二通道中,以覆盖整个屏幕的多边形网格上的纹理对多边形网格进行渲染。将来自第一通道的渲染的图像用作第二通道上的纹理。通过在第二通道期间调节多边形网格的顶点位置,由第二通道施加畸变。
因此,即使当期望畸变图像时,一般的图形管线也仍然使用该固定1:1映射执行渲染,以渲染畸变图像,因为期望采样点402相对于视口和屏幕的位置一直是一样的。此外,一般的图形管线必须执行管线处理的两个通道,渲染正常图像的第一通道和将正常图像应用为纹理的第二通道,其中,纹理的顶点之后被移动,以施加畸变。
图4B是根据一个或多个实施例的描述在图形管线中使用采样点来确定图像的像素的方法的示图。
参照图4B,在视口上的采样点412是位于三角形对象411内。尽管采样点412是位于与图4A的采样点402不同的位置,但是实际上可将与采样点412对应的最终渲染的像素413的位置映射到与图4A的像素403相同的位置。因此,当依照任何被施加到采样点的位置的映射的相应的畸变模式将三角形对象411改变为三角形对象414时,位于三角形对象411内的采样点412的位置可对应于在畸变的三角形对象414内的任意一个像素413的位置,而在图4A中像素403的相似位置被渲染到屏幕上的三角形对象的外部。在采样点412和像素413之间的上述映射可由采样着色器410例如在图1的图形管线100内执行。
如在图4A中所示,在一般的图形管线中,采样点402的位置与像素403的位置之间的映射关系是根据固定映射固定的。因此,利用一般的图形管线,即使三角形对象401畸变,也不能改变像素403的位置,由此需要参照图4A描述的一般图形管线在不改变采样点402和像素403之间的映射关系的情况下处理在一般的图形管线内不同阶段或通道中的期望的畸变。
然而,如在图4B中所演示和在一个或多个实施例中,图形管线100可仅仅包含采样着色器410(替代实现图4A的固定映射),以例如在单个阶段或通道中渲染畸变图像。
图5是示出根据一个或多个实施例的GPU(诸如图1的GPU 10)的框图。这里,尽管将参照图1的GPU 10对图5进行解释,但是实施例不限于此,替代的实施方式和应用也是可用的。
参照图5,GPU 10可包括顶点着色器110、镶嵌控制着色器(tessellation controlshader,细分控制着色器)121、镶嵌图元发生器123、镶嵌评估着色器125、几何着色器127、剪切器130、投影器140、采样着色器150、光栅化器160、像素着色器170和光栅化操作器180,以例如实现图形管线100。此外,GPU 10还可包括控制器191和缓冲器192。用于实现图形管线100的上述组件中的每个或者任何一个可由在非暂时性介质上/中呈现的程序逻辑或软件二者择一地实现,以控制至少一个处理装置来实现同样的组件。此外,仅作为示例,用于实现图形管线100的上述组件可由在GPU 10内提供的子处理装置(或处理器核)或一个处理装置实现。换言之,实现用于实现图形管线100的上述组件的形式不限于任何一种硬件或者非暂时性介质方法。
此外,尽管图形管线100的某些组件的名称被用于描述(例如,将在下面进一步描述和根据实施例的)至少一个基本操作,但是本领域技术人员将理解,组件的名称不应被视为限制任何特征和实施例。在这个方面,仅仅为了方便描述,在OpenGL 4.5中定义的组件的某些名称也被用作组件的名称来实现在GPU 10中的图形管线100。再次注意到,这类组件的名称不应被视为将实施例限制到API的任何特定标准或类型。换言之,在一个或多个实施例中,在GPU 10中实现图形管线100的组件可对应于在其他类型的API(诸如其他版本的OpenGL、微软的DirectX(DX)和计算统一设备架构(CUDA))中定义的类似组件。例如,本领域技术人员将理解,镶嵌评估着色器125可对应于在DX中使用的域着色器,在GPU 10内的其他组件可类似地对应于在其他API(诸如DX和CUDA)中使用的组件。此外,根据实施例,在GPU10中可包括或者在GPU 10中可不包括图5中的由虚线指示的组件(即镶嵌控制着色器121、镶嵌图元产生器123、镶嵌评估着色器125和几何着色器127)。
图6是根据一个或多个实施例的渲染图像的图形管线的流程图。以下,仅作为示例,将参照图5和图6对将在GPU 10中操作的图形管线100进行描述。这里,尽管将参照图1的GPU 10对图5和图6进行解释,但是实施例不限于此,可使用其他实施方式和应用。
在操作610中,GPU 10获得或被提供用于显示器(诸如图1的显示面板40)的屏幕像素并被存储在存储器(诸如,图1的存储器30)中的场景信息。用于屏幕像素的场景信息可包括关于显示器的屏幕分辨率和屏幕像素的矩阵位置的信息等。此外,GPU 10也可获得或被提供关于存储在存储器中的构成对象的顶点的场景信息。
在操作620中,顶点着色器110可使用场景信息中包括的与顶点的位置和属性有关的信息等来确定每个顶点在三维空间中的坐标。
在操作630中,剪切器130可在从顶点着色器110输出的顶点构成的图元中剪掉和剔除与被包括在相机的视场(即视口)中的图元不同的其他图元。属于视场的图元的位置可由规格化设备坐标(NDC)系统中的坐标指定。
在操作640中,投影器140可将位于NDC系统上的图元的坐标转换为屏幕空间上的屏幕坐标。
在操作651中,采样着色器150也可获取或被提供关于显示器的屏幕像素的信息。例如,采样着色器150可获取屏幕分辨率和与屏幕像素的矩阵位置有关的屏幕像素的场景信息等。
此后,在操作652中,采样着色器150基于变化的图案或算法针对屏幕像素中每一个屏幕像素确定一个或多个采样点的位置,以例如表示将被渲染的图像。例如,采样着色器150可基于屏幕像素中的每一个的畸变模式确定一个或多个采样点的位置,以使原始图像畸变。换言之,采样着色器150可例如根据屏幕分辨率确定用于一定数量的屏幕像素中的每一个的各自的采样点。这里,仅作为示例,畸变模式可参照图2A至2D施加上述畸变中的任何一个或可被设计为补偿相同的畸变,再次注意到,也可施加或校正替代的畸变。
采样着色器150可基于修改的屏幕像素中的每一个的中心位置(即基于施加的畸变模式的屏幕像素的中心位置)确定一个或多个采样点的位置。因此,采样着色器150基于畸变模式将例如依赖于显示器的分辨率的屏幕像素的位置转换为相应的采样点的位置。例如,当采样着色器150的输入具有“pixelLocation.x,pixelLocation.y”(pixelLocation.x和pixelLocation.y是任意特定的屏幕像素的位置坐标)的值时,采样着色器150的输出可包括“sampleLocation.x,sampleLocation.y,”(sampleLocation.x和sampleLocation.y是特定屏幕像素的对应采样点的位置坐标)的值。换言之,采样着色器150可通过限定或表示期望的畸变模式的算法执行将位置“pixelLocation.x,pixelLocation.y,”转换或映射为位置“sampleLocation.x,sampleLocation.y”的操作。限定或表示期望畸变模式的算法可以是实现变化的线性映射(诸如,用于桶形畸变和枕形畸变等的映射)的算法,或者是例如根据用户的任意操作实现非线性映射的算法。
此外,为了实现一个或多个实施例,在图形管线100内的阶段或组件中,采样着色器150可以是可编程着色器,所述可编程着色器被配置为处理着色器源代码。例如,可将着色器源代码设计为使用户能够自由地改变和限定线性畸变和/或非线性畸变的类型,其中可根据用户的设置确定采样点的位置。因此,操作651的采样着色可以是图形管线100的可编程阶段。
相应地,在操作652中,采样着色器150可基于期望的畸变将用于待渲染的畸变图像的像素的位置映射到采样点的位置。可将用于待渲染的畸变图像的像素的位置和基于期望的畸变的采样点的位置之间的映射关系以例如查找表的形式存储在缓冲器192中。
在一个或多个实施例中,将要由采样着色器150执行的操作651和操作652可与操作620至640并行地执行。换言之,由采样着色器150执行的操作651和操作652是在操作661的光栅化阶段之前执行。光栅化器160可获得在操作651和操作652中产生的信息。
回到操作640,当已经完成操作640时,投影器140将与具有视口上的屏幕坐标的图元有关的信息输出到光栅化器160。
在操作661中,光栅化器160确定与处于与待光栅化的图元重叠的采样点的映射位置的图元对应的像素,所述采样点是由采样着色器150确定的采样点中的采样点。首先,光栅化器160可从采样点的坐标中寻找组成图元的顶点的坐标内的采样点。然后,光栅化器160可例如通过参照存储在缓冲器192中的查找表确定待渲染的畸变图像的像素,所述像素对应于与图元重叠的各自发现的采样点。
在操作662中,光栅化器160确定用于确定的像素的属性值。因此,光栅化器160可产生用于每个采样点的图像像素。
在操作670中,像素着色器170确定用于产生的图像像素的像素颜色值,来对畸变图像的像素进行着色。
在操作680中,光栅化操作器180针对每个像素执行任意附加的预定义的像素操作(诸如,漏印板(stencil),z测试和混合等)。
在操作690中,当完成了光栅化操作阶段(操作680)时,GPU 10完成畸变图像的渲染并将渲染的畸变图像输出到显示器40。
如上所述,在实施例中,畸变图像的渲染可以在图形管线100的一个通道内执行。因此,在一个或多个实施例中,由于用于确定采样点的采样着色操作,不单独需要用于渲染畸变图像的额外通道,所以与需要额外的通道来渲染这样的畸变图像的一般的图形管线相比,可减少GPU 10的计算量和性能劣化。
在实施例中,控制器191可控制图形管线100的组件110至180以及缓冲器192的各自和/或整个的操作。
缓冲器192可存储在GPU 10内待处理的信息(例如,关于采样点的信息等)。此外,缓冲器192可从存储器接收将要由GPU 10处理的信息(例如,场景信息和顶点信息等),并暂时存储接收的信息。
在一个或多个实施例中,GPU也包括镶嵌控制着色器121、镶嵌图元产生器123和镶嵌评估着色器125,以用于图元的镶嵌。在一个或多个实施例中,GPU 10也可包括几何着色器127以针对单个图元产生一个或多个额外的输出图元。
图7是根据一个或多个实施例的描述对应于基于畸变模式的屏幕像素的采样点的位置的示图。
参照图7,在该示例中,将假定畸变模式为枕形畸变。如上所述,枕形畸变可由图像朝着中心逐渐减小的畸变模式施加。因此,采样点的网格可以是与聚焦在中心的枕形畸变模式对应的修改的形状的网格,而不是对应于屏幕像素710的网格图案的规则网格图案形状的网格。例如,对于与上面讨论的具有图4A的一般的图形管线的1:1固定对应关系,采样点的网格会反映例如具有与屏幕像素的中心对准的每个采样点的屏幕像素710。因此,可根据基本的枕形算法将对应于特定像素715的采样点725的位置确定为朝着视口720上的中心方向聚焦的任意位置。例如,采样着色器(诸如图5的采样着色器150)可基于枕形畸变模式确定对应于屏幕像素710的全部采样点的映射位置。
图8A是根据一个或多个实施例的描述确定对应于未施加畸变模式时的屏幕像素的采样点的方法的示图。在下面,尽管可参照图1、5和6的组件或操作对图8A和8B的方面进行解释,但是实施例不限于此,而是可使用其他实施方式和应用。
参照图8A,当未施加畸变模式时,可将对应于特定屏幕像素的采样点的位置确定为对应于在视口上的屏幕像素的中心位置的位置。例如,可将对应于屏幕像素2的采样点SP2的位置确定为对应于在视口上的屏幕像素2的区域的区域的中心位置。然而,诸如当执行多重采样抗混叠(多重采样反走样)时,可根据图形管线的设置(诸如图5的图形管线100)将对应的采样点的位置确定为该区域内的距离该区域的中心位置(例如在屏幕像素的中心位置的地方)恒定的偏移量的位置。在实施例中,可可选择地将对应的采样点的位置确定为该区域内的由用户随意地设置的位置。换言之,尽管已经描述了对应的采样点的位置对应于屏幕像素的中心位置的情况,但是该描述是为了描述的方便,而实施例不限于此。在实施例中,当未施加畸变时,采样着色器(诸如图5的采样着色器150)可不操作或可只传递与各个屏幕像素的位置具有这样的固定对应性的采样点位置。
图8B是根据一个或多个实施例的描述基于施加的畸变模式确定对应于屏幕像素的采样点的方法的示图。
参照图8B,在该示例中,将畸变模式假定为枕形畸变。相应地,如在图8B中所示,将要修改网格图案810的屏幕像素,以根据畸变模式(枕形畸变模式)产生畸变图像820。因此,可将对应于屏幕像素2的采样点SP12的映射位置确定为从对应于视口上的屏幕像素2的区域的区域的中心位置沿左上方向稍微地分离的位置或朝向左上方向映射的位置。此外,也可将对应于屏幕像素4的采样点SP14的映射位置确定为从对应于视口上的屏幕像素4的区域的区域的中心位置沿左上方向稍微地分离的或朝向左上方向稍微地映射的位置。
换言之,采样着色器(诸如图5的采样着色器150)可基于畸变模式通过在图形管线(诸如图5的图形管线100)内的采样着色阶段(例如,图6的操作651)确定对应于屏幕像素的采样点(或采样点的映射位置)。因此,与未施加畸变时相比,为了渲染畸变图像,采样着色器可将采样点的位置不同地确定为反映畸变模式的位置。
图9是根据一个或多个实施例的描述未施加畸变时的采样点的位置与施加畸变时的采样点的位置之间的比较的示图。这里,尽管将参照图5的组件对图9的方面进行解释,但是实施例不限于此,而且可使用其他实施方式和应用。
参照图9,采样点SP1、SP2、SP3和SP4的位置(诸如,在图8A中所示)代表未施加畸变时的采样点的位置。另一方面,采样点SP11、SP12、SP13和SP14的位置代表施加畸变时由采样着色器(诸如,图5的采样着色器150)确定的采样点的映射位置。换言之,因为采样点SP11、SP12、SP13和SP14的位置是基于畸变模式(枕形畸变模式)确定的,所以与采样点SP1、SP2、SP3和SP4的位置相比,将位置确定为与视口上的对应于屏幕像素的区域的中心位置稍微地分离。尽管已经参照图8B和9用枕形畸变模式的示例对采样点的位置进行了描述,但是实施例不限于此。即使在各种不同的畸变模式的情况下,也可以类似的方案来确定采样点的位置。
图10是根据一个或多个实施例的描述使用由采样着色器确定的采样点来对像素产生执行光栅化的方法的示图。这里,尽管将参照图5的组件或操作对图10的方面进行解释,但是实施例不限于一样,而且可使用替代的实施方式和应用。
参照图10,由于畸变模式,具有在视口1010上示出的各自位置的所有采样点的采样网格可因此具有修改的或不同于规则网格形式的形式。当视口1010上包括三角形图元1011时,光栅化器(诸如,图5的光栅化器160)可从像素产生可能需要的所有采样点中确定仅仅一些与图元1011叠置的采样点1015。此后,光栅化器可基于关于存储在缓冲器(诸如,图5的缓冲器192)中的采样点和像素之间的映射关系的信息在确定对应于与图元1011重叠的那些采样点1015的像素1025的位置之后,执行像素产生。由于像素1025在所有的图像像素1020中的位置,可基于畸变模式相应地以不同于图元1011的三角形形式的形式绘制(或渲染)对象1021。
换言之,在一个或多个实施例中,图形管线(诸如图5的图形管线100)可通过使用采样着色器(诸如,图5的采样着色器150)基于如参照图7、8B、9和10描述的畸变模式确定采样点的位置来渲染畸变图像。因此,可通过渲染位于基于采样点的映射位置的像素位置的对象来渲染畸变图像。
图11是根据一个或多个实施例的描述用于基于桶形畸变模式确定采样点的着色器源代码的示例的示图。这里,尽管将参照图5的组件或操作对图11的各方面进行解释,但是实施例不限于此,而是可使用其他实施方式和应用。
参照在图11中示出的着色器源代码1120,代码“in vec2 pix_pos;//NDCcoordinate[-1,1]”可充当指示采样着色器(诸如图5的采样着色器150)的输入的代码,并指示屏幕像素在示例NDC系统上的位置pix_pos对应于采样着色器的输入。作为指示采样着色器的输出的代码,编码“out vec2 sampling_pos;//NDC coordinate[-1,1]”可指示采样点在NDC系统上的位置对应于采样着色器的输出。
代码“uniform float BarrelPower;vec2 Distort(vec2 p){float theta=atan(p.y,p.x);float radius=length(p);radius=pow(radius,BarrelPower);p.x=radius*cos(theta);p.y=radius*sin(theta);return p;}”可指示用于定义桶形畸变的操作。
代码“void main(){float d=length(pix_pos,xy);if(d<1.0){sampling_pos=Distort(pix_pos);}else{discard();}”可指示限定仅将离视口上的中心的距离小于1的采样点作为像素产生并丢弃离视口上的中心的距离大于或等于1的采样点的操作。下面将针对图17更加详细地讨论这种丢弃或跳过操作。
因此,如上面所讨论,基于桶形畸变模式定义的采样网格1110不是规则网格模式。换言之,基于桶形畸变模式的采样网格1110沿中心方向集中。可将采样点的各自位置确定为定义的网格的各个单元的中心位置。因此,当执行这种用于采样着色器或着色器操作的着色器源代码1120时,可渲染畸变图像1130。如在图11中示出,使用通过桶形畸变模式实现的桶形畸变,使畸变图像1130畸变为如同是由鱼眼透镜所捕获。
在一个或多个实施例中,当示例采样着色器150是例如可编程着色器时,用户可选择或编写定义各种畸变模式或各种采样点的位置的各种类型的着色器源代码以及图11的着色器源代码1120以操作采样着色器150。根据实施例,可在仅作为示例的非暂时性介质(诸如电子装置的存储器、GPU的存储器和这种可编程着色器的存储器)中记录或存储这样的着色器源代码1120,以使着色器源代码1120能够控制至少一个处理装置或元件的操作来实现这种采样着色操作,如这里所讨论的。
图12是根据一个或多个实施例的描述在光栅化器中搜索与视口上的图元叠置的采样点的方法的示图。这里,尽管可参照图5的组件对图12的方面进行说明,但是实施例不限于此,而且可使用其他实施方式和应用。
参照图12,可将由采样着色器(诸如图5的采样着色器150)确定的采样点SP1至SP11的位置信息存储在缓冲器(诸如图5的缓冲器192或存储器(诸如图1的存储器30))中。也可将关于映射关系的信息存储在缓冲器或存储器中。简单地说,图12示出的采样点SP1-SP11不是意图与在图8A-9中描述的采样点相同。光栅化器(诸如图5的光栅化器160)可从缓冲器或存储器读取所有采样点SP1至SP11的位置信息以搜索和确定与视口1200上的图元1210叠置的采样点。之后,光栅化器可比较图元1210的位置信息与采样点SP1至SP11的位置信息,以确定采样点SP8、SP9和SP10与图元1210重叠。
图13是根据一个或多个实施例的描述在光栅化器中搜索与视口上的图元叠置的采样点的方法的图示。这里,虽然可参照图1和5的组件对图13的方面进行解释,但是实施例不限于此,而是可使用其他实施方式和应用。
参照图13,光栅化器(诸如图5的光栅化器160)可搜索与视口1300上的图元重叠的采样点。例如,当采样点的位置信息是四叉树格式时,光栅化器可使用四叉树算法搜索与图元重叠的采样点。如参照图12所述,采样点SP1至SP11的位置信息可由采样着色器(诸如,图5的采样着色器150)确定,并可被存储在缓冲器(诸如图5的缓冲器192)或存储器(图1的存储器30)中。除了各自的采样点的位置信息,相应的GPU(诸如图5的GPU 10)也可使用四叉树算法将关于各个区域1至4的信息存储在缓冲器或存储器中,采样点SP1至SP11分别属于所述区域1至4。
例如,GPU可设置预定的最大数(例如,2),并重复地将包括采样点S1至S11的区域分成四块相同的更小区域,直到属于每块区域的采样点的数量小于或者等于最大数2。换言之,因为在视口1300的整个区域中有共计11个采样点SP1至SP11,所以GPU可将视口1300的整个区域分成四个相同区域1至4。因为在区域1中只有共计2个采样点SP1和SP3,所以GPU不再划分区域1。因为在区域2中只有共计4个采样点SP2、SP4、SP5和SP6,所以GPU将区域2分成四个相等的区域2-1、2-2、2-3和2-4。因为在区域2-1中有1个采样点SP2,所以GPU不再划分区域2-1。此外,因为在余下的区域2-2至2-4中有2个或更少的采样点,所以GPU不再划分区域2-2至2-4。按类似的方案,GPU划分区域3-1、区域3-2-1、区域3-2-2、区域3-2-3、区域3-2-4、区域3-3和区域3-4。
GPU可将关于属于区域1至4中的每个的各自的采样点的信息和关于区域1至4中的每个的各自位置信息存储在缓冲器或存储器中,区域被四叉树算法划分出所述区域1至4。
光栅化器可从缓冲器或存储器中读取与划分整个区域得到的区域1至4有关的信息,以搜索与图元重叠的采样点。换言之,当采样点的位置信息是以四叉树格式存储,对光栅化器来说,读取关于所有采样点的位置信息不是必需的。例如,使用图12的方法,光栅化器可读取所有采样点的位置信息;然而使用图13的四叉树方法,光栅化器可只期望读取相关采样点的位置信息。光栅化器可比较图元1210的位置信息与区域1至4的各自的位置信息,以确定只有区域1、区域3-2-1、区域3-2-2、区域3-2-3、区域3-2-4和区域4与图元1210重叠。之后,光栅化器可期望只比较属于叠置区域1、区域3-2-1、区域3-2-2、区域3-2-3、区域3-2-4和区域4的采样点SP1、SP3、SP7、SP8、SP9和SP10的位置信息与图元1210的位置信息,以确定采样点SP8、SP9、SP10与图元1210重叠。
因此,根据实施例,诸如例如根据四叉树算法当也存储采样点的划分的区域的信息时,光栅化器可不需要读取采样点SP2、SP4、SP5、SP6和SP11的位置信息。根据实施例也可使用其他存储、读取、搜索方法,以使光栅化器的搜索方案不限于任意一种类型。
图14是根据一个或多个实施例的描述利用基于枕形畸变模式的采样点渲染的畸变图像显示在HMD系统上的方法的示图。这里,虽然可参照图1和3的组件对图14的方面进行解释,但是实施例不限于此,而且可使用其他实施方式和应用。
参照图14,当HMD装置或系统的透镜是凸透镜时,可在显示面板上显示由枕形畸变模式引起的畸变图像。仅作为示例,图3论证了这样的HMD装置或系统。用于HMD系统的GPU(诸如图1的GPU 10)可基于枕形畸变模式确定采样点的采样网格1400,并可使用确定的采样网格1400渲染畸变图像1410。当在HMD系统的显示面板上显示基于枕形畸变模式的畸变图像1410时,用户可在没有通过HMD系统的透镜的畸变情况下查看图像1420。换言之,由于透镜的凸出特性,和根据采样点1415的映射位置,在畸变图像1415上的畸变像素可表现出对应于规则网格模式或未畸变图像的屏幕像素1425。
图15A和15B是根据两个或多个实施例的描述单次采样和多重采样的示图。这里,虽然将参照图5的组件对图15A和15B的方面进行解释,但是实施例不限于此,而且可使用其他实施方式和应用。
GPU(诸如图5的GPU 10)可启用或禁用在图形管线(诸如图5的图形管线100)中待处理的采样点的多重采样。
参照图15A,采样着色器(诸如图5的采样着色器150)可在禁用或选择不执行多重采样时针对每个屏幕像素1510确定或产生单个采样点1515,因而执行单次采样。然而,参照图15B,当启用多重采样或选择执行多重采样时,采样着色器可为每个屏幕像素1520确定两个或多个多重采样点1525。因此,与上述关于针对每个屏幕像素产生的采样点的讨论类似,相同的讨论适用于启用多重采样的实施例,在所述启用多重采样的实施例中,针对屏幕像素中的每个屏幕像素确定两个或更多个采样点,将采样像素的位置与每个屏幕像素被设置为因选择的畸变模式而畸变的程度成比例地布置或映射。
图16是根据一个或多个实施例的描述确定用于屏幕像素的每种颜色分量的不同的采样点的位置的过程的示图。这里,虽然可参照图5的组件对图16的方面进行解释,但是实施例不限于此,而且可使用其他实施方式和应用。
除了上述内容,在一个或多个实施例中,采样着色器(诸如图5的采样着色器150)可鉴于不同的颜色分量确定这样的采样点的位置。
因为波长根据每种颜色分量而不同,所以与通过透镜传输的对应于颜色分量的光线的折射可彼此不同。当例如由参考标号1600指示的颜色分量是红(R)、绿(G)和蓝(B)时,R、G和B的折射率互不相同。考虑到自然现象,采样着色器可通过补偿根据每种颜色分量而不同的各个偏移来确定多个采样点的各自的位置。例如,采样网格1610展示了可基于期望的畸变模式确定采样点的位置的采样网格。更确切地说,参照采样网格1620,针对每种颜色分量,采样着色器可确定对应于颜色分量B的采样点之间的间隔(窄于对应于颜色分量G的采样点之间的间隔),并确定对应于颜色分量G的采样点之间的间隔(窄于对应于颜色分量R的采样点之间的间隔)。因此,针对特定的屏幕像素,采样着色器可针对一个屏幕像素分别确定对应于颜色分量B的采样点的位置、对应于颜色分量G的采样点的位置和对应于颜色分量R的采样点的位置。当施加畸变时,采样着色器也考虑畸变模式,以确定用于相应的屏幕像素的R、G和B采样点的映射位置。相应地,仅作为示例,之后可使用像素着色器(诸如图5的像素着色器170)来为任意像素选择适合于将要被着色的颜色分量的分布的颜色分量特有采样点,并对该像素执行像素着色。
图17是根据一个或多个实施例的描述在存在未使用的区域时基于畸变模式渲染畸变图像的方法的示图。
参照图17,可从显示器渲染畸变图像1700而不是未畸变的原始图像时的渲染过程中产生未使用区域1710。然而,如上面关于图11所讨论,在一个或多个实施例中,GPU可实现跳过过程,以跳过未使用区域的光栅化和像素着色,所述未使用区域的光栅化和像素着色也增加用于渲染畸变图像1700的总体计算速度和减少用于渲染畸变图像1700的总体计算量。
图18是根据一个或多个实施例的描述采样着色器确定用于抖动(dithering,递色)的采样点的方法的图示。这里,虽然可参照图5的组件对图18的方面进行解释,但是实施例不限于此,而且可使用其他实施方式和应用。
参照图18,可使用抖动算法渲染畸变图像1800。当扩大畸变图像1800的一个区域1805时,可任意地分配通过抖动算法抖动的像素。采样着色器(诸如图5的采样着色器150)可针对特定区域1805将采样点的位置确定为具有任意的位置(如在示出的采样网格1820中),以针对特定区域1805施加抖动算法。
图19是根据一个或多个实施例的描述在用于基于图块的渲染的图形管线的情况下利用采样着色的方法的示图。这里,尽管可参照图1和图5的组件对图19的方面进行解释,但是实施例不限于此,而是可使用其他实施方式和应用。
参照图19,在一个或多个实施例中,当图形管线(诸如图5的图形管线100)是用于基于图块的渲染时,图形管线100可包括:用于图块像素组合的像素组合管线100-1的通道和用于渲染的渲染管线100-2的通道。
像素组合管线100-1可包括:操作1911,所述操作1911获得或接收场景信息(场景描述);输入组装1912,顶点着色1913,筛选、剪切、和视口(CCV)转换1914,像素组合1917以及操作1918,所述操作1918存储关于属于通过像素组合1917在图块比特流中确定的每个图块的图元的信息。
渲染管线100-2可包括:操作1921,所述操作1921获得或接收场景信息,输入组装1922,顶点着色1923,CCV转换1924,光栅化1925,像素着色1926,光栅化操作1927和操作1928,所述操作1928输出渲染的图像。
像素组合管线100-1还可包括:采样着色1915,在所述采样着色1915中例如通过采样着色器(诸如图5的采样着色器150)确定采样点(或采样点的位置);映射操作1916,所述映射操作1916对用于期望的畸变图像的各自的像素的采样点中的每个的位置进行映射。这里,在一个或多个实施例中,可只在像素组合管线100-1中执行采样着色1915和映射操作1916。更加详细地,在一个或多个实施例中,诸如在图6中示出和仅作为示例,可在执行像素组合1917之前与输入组装1912、顶点着色1913和CCV转换1914并行地执行采样着色1915和映射操作1916。此外,如在图19中所展示,因为像素着色1926和光栅化操作1927是基于光栅化1925和像素组合1917执行的,所以像素着色1926和光栅化操作1927可只需要执行单个通道以输出具有希望的畸变的渲染图像。
图20是根据一个或多个实施例的描述具有用于渲染带有畸变的图像的图形管线的设备的框图。参照图20,设备可包括GPU 2000。GPU 2000可基于例如上述关于GPU 10的讨论中的任何来运行。GPU 2000可包括着色器2010和光栅化器2020。仅作为示例,GPU 2000的着色器2010可与图5的GPU 10的采样着色器150对应,光栅化器2020可与图5的光栅化器160对应。换言之,在一个或多个实施例中,GPU 2000可包括着色器和光栅化器,所述着色器和光栅化器与在图5的GPU 10的组件中的组件类似,但不限于此。例如,GPU 2000可包括除了那些与GPU 10的组件类似的组件之外的组件,或可包括GPU 10的额外类似的组件。
着色器2010可获得或接收关于显示器(诸如图1的显示面板40)的屏幕像素的信息。之后,着色器2010可针对屏幕像素中的每一个基于用于期望的畸变图像的模式(例如,畸变模式)来确定一个或多个采样点的位置,以表现待渲染的图像。
光栅化器2020可在与图元重叠的采样点中的任何的映射位置产生与待光栅化的图元对应的像素。
最后,由GPU 2000操作的(例如,包括光栅化器2020的)相应图形管线使用由光栅化器2020产生的像素渲染图像(畸变图像),诸如上面所讨论的。
图21是根据一个或多个实施例的用于渲染带有畸变的图像的图形管线方法的流程图。
参照图21,仅作为示例,操作图形管线的方法可以是在电子装置(诸如图1的电子装置1)内按时间序列处理的过程,并可通过图形处理装置(诸如GPU 10或GPU 2000)实现。这里,上述关于电子装置1的操作的不同方面、GPU的任意方面和上述讨论的采样着色器的任意方面也通过引用被包含于这里操作图21的图形管线的方法,所以下面省略他们的重复的描述。此外,通过下面参照图1、5或20的组件解释的操作,实施例不限于此,而且也可使用其他的实施方式或应用。
在操作2101中,可获得、提供或接收关于显示器的屏幕像素的信息。仅作为示例,图20的着色器2010或图5的采样着色器150可获得、被提供或接收关于屏幕像素的信息。
在操作2102中,可基于模式确定一个或多个采样点的位置,以表现待渲染的图像。这里,在实施例中,操作2102可包括:两个独立的操作,其中,例如基于屏幕像素的确定的位置确定各自的采样点的位置,之后根据映射算法(诸如选择的畸变模式)对确定的位置进行映射。仅作为操作2102的示例,图20的着色器2010或图5的采样着色器150可基于这样设置的模式确定采样点的映射位置。
在操作2103中,可确定与在在采样点中与将被光栅化的图元叠置的采样点的映射位置上的图元对应的像素。仅作为示例,图20的光栅化器2020或图5的光栅化器160可产生这样的与在与图元重叠的采样点的映射位置上的图元对应的像素。
在操作2104中,可使用产生的像素渲染图像(例如,畸变图像)。仅作为示例,GPU2000或GPU 10可使用产生的像素渲染图像。
在一个或多个实施例中,在通过将可编程着色阶段(诸如,上述关于采样点的映射的采样着色器)包含在可选图形管线中来支持各种可选图形管线的同时,更有效地渲染畸变图像是可能的。例如,根据一个或多个实施例,可只需要通过增加这样的可编程着色阶段来改变这样的可选图形管线。
在图1、3、4B、5和20中示出的例如可执行在这里描述的关于图2、6-19和21的操作的设备、单元、模块、装置和其他组件例如是通过硬件组件实现。硬件组件的示例包括本领域普通技术人员公知的控制器、传感器、存储器、驱动程序和任何其他电子元件。在一个示例中,硬件组件是通过一个或多个处理装置或处理器或计算机实现。处理装置、处理器或计算机是通过一个或多个能以定义的方式响应并执行指令的处理元件(诸如,逻辑门的阵列,控制器算术逻辑单元、数字信号处理、单片机、可编程逻辑控制器,现场可编程门阵列,可编程逻辑阵列,微处理器,或任何其他装置以及本领域铺技术人员公知的装置的组合)实现以获得想要的结果。在一个示例中,处理装置、处理器或计算机包括或被连接到一个或多个存储由处理装置、处理器或计算机执行并可控制处理装置、处理器或计算机来实现一个或多个这里描述的方法的计算机可读代码、指令或软件的存储器。仅作为示例,例如由处理装置、处理器或计算机例如通过实现计算机可读代码、指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用程序)来实现的硬件组件可执行这里关于图2、6-19和21描述的操作。硬件组件还可以响应于指令或软件的运行来访问、操作、处理、创建和存储数据。为了方便,单数术语“处理装置”、“处理器”或“计算机”可用于这里描述的示例的描述,但在其他示例中使用多个处理装置、处理器或计算机,或者处理装置、处理器或计算机包括多个处理元件或处理元件的各种类型,或者两者。在一个示例中,元件组件可包括多个处理器;在另一个示例中,硬件组件包括处理器和控制器。硬件组件具有不同处理配置中的任何一个或多个,所述处理配置的示例包括:单一处理器,独立处理器,并行处理器,远程处理的环境,单指令单数据(SISD)多处理,单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。此外,在各种上述参照设备数字中示出的连接线或者连接器意图在于代表示例功能性关系和/或在各种硬件元件之间物理的或逻辑的耦合,同时许多其他的功能关系,物理连接,或逻辑连接可能会在相应的装置实施例中出现。
在图2、6-19和21中示出的执行这里描述的操作的方法可由如上所述执行处理器或计算机可读代码、指令或软件以执行这里描述的操作的处理装置、处理器或计算机执行。
为了单独或集体地指示或配置处理装置、处理器或计算机作为机器或专用计算机来执行由硬件组件执行的操作以及上述的方法,可将控制处理装置、处理器或计算机实现硬件组件和执行上述方法处理器或计算机可读代码、指令或软件写为计算机程序、代码段、指令及其组合。在一个示例中,处理器或计算机可读代码、指令或软件包括:机器码(诸如由编译器产生的机器码),所述机器码是直接由处理装置、处理器或计算机执行。在另一个实施例中,处理器或计算机可读代码、指令或软件包括:更高级代码,所述更高级代码是通过处理装置、处理器或计算机使用解释器(诸如用任何编程或脚本语言(诸如C,C++,java等)汇编实现)与以数据结构、对象、过程、程序或其他编程元件的任何组合实现的各种算法来实现的。基于这里的公开和在理解本公开之后,本领域普通技术人员的程序员能基于在图示中示出的框图和流程图以及在说明书(公开了用于执行由上述硬件组件执行的操作和方法的算法)中相应的描述中容易地编写处理器或计算机可读代码、指令或软件。
在一个或多个非暂时性处理器/计算机-可读存储介质中记录、存储或固定处理器、或用于控制处理装置、处理器的计算机可读代码、指令或软件,或用于实现硬件组件(诸如在图1、3、4B、5和20的任意一个中所讨论的硬件组件)并执行如上面在图2、6-19和21中的任意中所描述的方法的计算机、以及任意相关的数据、数据文件以及数据结构。非易失性处理器/计算机-可读存储介质的示例包括:只读存储器(ROM),随机存取存储器(RAM)、闪存、CD-ROMs、CD-Rs、CD+Rs、CD-RWs、CD+RWs、DVD-ROMs、DVD-Rs、DVD+Rs、DVD-RWs、DVD+RWs、DVD-RAMs、BD-ROMs、BD-Rs、BD-R LTHs、BD-Res、磁带、软盘、磁光存储器件、光学数据存储设备、硬盘、固态硬盘和任何本领域普通技术人员公知的能以非易失性方式存储处理器或计算机可读代码、指令或软件和任何相关数据、数据文件以及数据结构和将处理器或计算机可读代码、指令或软件和任何相关数据、数据文件以及数据结构提供给处理装置、处理器或计算机使得处理装置、处理器或计算机能执行指令的任何装置。在一个示例中,由处理装置、处理器或计算机以分布式的方式存储、访问和执行处理器或计算机可读代码、指令或软件和任何相关数据、数据文件以及数据结构。
仅作为不穷尽的示例,这里的电子装置实施例(诸如上面描述的关于图1、3、4B、5和20的电子装置和/或被配置为实现关于图2、6-19和21描述的方法)可包括:移动装置(诸如,蜂窝电话、智能电话、可穿戴智能装置和便携式个人电脑(PC)(诸如,膝上型电脑、笔记本电脑、小型笔记本电脑、上网本或超便携式电脑(UMPC)和平板电脑(PC))、平板手机、个人数字助理(PDA)、数码相机、便携式游戏机、MP3播放器、便携式个人多媒体播放器(PMP),手持电子书,全球定位系统(GPS)导航设备或传感器,或固定装置(诸如,台式电脑、高清电视(HDTV)、DVD播放器、蓝光播放器、机顶盒或家电)或其他任何具有无线或网络通信能力的电话或固定装置。根据实施例,电子装置包括显示器。
虽然本公开包括具体的示例,但是对本领域普通技术人员将显而易见的是,在不脱离权利要求书和它们的等价物的精神和范围的情况下,可以对示例做出形式和细节上的各种改变。这里描述的示例仅被视为在描述性的意义上,而不是为了限定的目的。在每个示例中的特征或方面的描述被视为可应用在其它示例中的相似特征或方面。如果描述的方法按不同的顺序执行和/或如果在描述的系统、架构、装置或电路中的元件以不同的方式结合和/或被其它元件或它们的等价物取代或补充,可获得适宜的结果。因此,本公开的范围不是由具体实施方式限定,而是由权利要求书及其等同物限定,并且在权利要求书及其等同物的范围内的所有变化将被解释为被包括在本公开内。
Claims (15)
1.一种图形管线方法,所述方法包括:
通过针对多个屏幕像素中的每一个基于用于修改待渲染的图像的设置的模式确定采样点的位置,来使用一个或更多个处理装置针对显示器的多个屏幕像素确定采样点的各自的位置;
在采样点中的被确定为与被设置为将要被光栅化的图元叠置的采样点的确定的位置上,产生基于图像的并与设置的图元对应的像素;
使用产生的像素渲染图像。
2.根据权利要求1所述的方法,其中,所述模式是用于将畸变施加到图像的畸变模式,以使渲染的图像是畸变图像。
3.根据权利要求2所述的方法,其中,所述各自的位置的确定包括:基于每个修改的屏幕像素的各自的中心位置确定采样点的各自的位置,其中,所述多个屏幕像素被布置在等距离或重复的网格图案中。
4.根据权利要求1所述的方法,还包括获得显示器的多个屏幕像素的分辨率的信息,所述分辨率限定多个屏幕像素的位置,
其中,所述各自的位置的确定还包括:
基于分辨率的信息将多个屏幕像素中的屏幕像素的位置转换为基于模式的对应的采样点的位置;
将图像的像素的位置映射到对应的采样点的位置。
5.根据权利要求1所述的方法,其中,所述各自的位置的确定是由所述一个或更多个处理装置实现的可编程阶段,所述一个或更多个处理装置处理用于改变和定义模式的在多个模式类型中的模式类型的着色器源代码。
6.根据权利要求1所述的方法,
其中,各自的位置的确定包括:
当确定启用多重采样时,针对一个屏幕像素确定两个或更多个采样点的位置;
当确定禁用多重采样时,针对所述一个屏幕像素确定单个采样点的位置,
其中,当确定启用多重采样时,与多个屏幕像素中的每一个的位置被设置为按模式进行修改的程度成比例地布置针对每个屏幕像素确定的相应的两个或更多个采样点,使得渲染图像是畸变图像。
7.根据权利要求1所述的方法,其中,各自的位置的确定是在执行像素的产生的图形管线的光栅化阶段的操作之前与图形管线的顶点着色阶段、剪切阶段和投影阶段的操作并行地执行。
8.根据权利要求1所述的方法,其中,像素的产生包括:基于四叉树算法通过从采样点的确定的各自的位置的选择的一个或更多个子集中搜索与所述图元叠置的采样点的位置来确定采样点的位置,所述四叉树算法基于集的采样点分别所属的视口的区域反复地调用将采样点的所述集细分为更小的子集的操作。
9.根据权利要求1所述的方法,其中,所述各自的位置的确定包括:当针对屏幕像素的不同颜色分量确定各自的采样点的位置时,通过分别施加不同的偏移来针对屏幕像素的不同的颜色分量确定各自的采样点的位置。
10.根据权利要求1所述的方法,其中,当图形管线是用于基于图块的渲染的图形管线时,在图块像素组合操作的单个通道中执行各自的位置的确定的步骤。
11.一种图形管线设备,所述设备包括:
着色器,被配置为通过针对多个屏幕像素中的每一个基于设置的模式确定采样点的位置,来针对显示器的多个屏幕像素确定采样点的各自的位置,以修改待渲染的图像;
光栅化器,被配置为在采样点中的被确定为与被设置为将要被光栅化的图元叠置的采样点的确定的位置上产生基于图像的并与设置的图元对应的像素,并输出产生的像素以渲染图像。
12.根据权利要求11所述的设备,其中,所述模式是用于将畸变施加到图像的畸变模式,使得渲染的图像是畸变图像。
13.根据权利要求12所述的设备,其中,着色器基于各个修改的屏幕像素的各自的中心位置确定采样点的各自的位置,其中,所述多个屏幕像素被布置在等距离或重复的网格图案中。
14.根据权利要求11所述的设备,其中,着色器还被配置为获取显示器的多个屏幕像素的分辨率的信息,所述分辨率限定多个屏幕像素的位置,
其中,在所述各自的位置的确定中,着色器基于分辨率的信息将多个屏幕像素中的屏幕像素的位置转换为基于模式的对应的采样点的位置,并将图像的像素的位置映射到对应的采样点的位置。
15.根据权利要求11所述的设备,
其中,着色器被配置为当确定启用多重采样时,针对一个屏幕像素确定两个或更多个采样点的位置,并被配置为当确定禁用多重采样时,针对所述一个屏幕像素确定单个采样点的位置,
其中,当确定启用多重采样时,与多个屏幕像素中的每一个的位置被设置为按模式进行修改的程度成比例地布置针对每个屏幕像素确定的相应的两个或更多个采样点,使得渲染图像是畸变图像。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150089092A KR102465969B1 (ko) | 2015-06-23 | 2015-06-23 | 그래픽스 파이프라인을 수행하는 방법 및 장치 |
| KR10-2015-0089092 | 2015-06-23 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN106296565A true CN106296565A (zh) | 2017-01-04 |
| CN106296565B CN106296565B (zh) | 2021-04-27 |
Family
ID=55967013
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201610465090.0A Active CN106296565B (zh) | 2015-06-23 | 2016-06-23 | 图形管线方法和设备 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US10223761B2 (zh) |
| EP (1) | EP3121786B1 (zh) |
| JP (1) | JP6749151B2 (zh) |
| KR (1) | KR102465969B1 (zh) |
| CN (1) | CN106296565B (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019184811A1 (zh) * | 2018-03-30 | 2019-10-03 | 京东方科技集团股份有限公司 | 投影方法及装置、电子设备 |
| CN110335200A (zh) * | 2018-03-29 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种虚拟现实反畸变方法、装置以及相关设备 |
| CN110462677A (zh) * | 2017-03-27 | 2019-11-15 | 超威半导体公司 | 单通柔性屏/刻度光栅化 |
| CN111798372A (zh) * | 2020-06-10 | 2020-10-20 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、设备和可读介质 |
| CN112233159A (zh) * | 2020-09-23 | 2021-01-15 | 华夏芯(北京)通用处理器技术有限公司 | 纹理处理方法及装置 |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10102610B2 (en) | 2016-04-05 | 2018-10-16 | Qualcomm Incorporated | Dual fisheye images stitching for spherical video |
| US10275928B2 (en) * | 2016-04-05 | 2019-04-30 | Qualcomm Incorporated | Dual fisheye image stitching for spherical image content |
| US20180165799A1 (en) * | 2016-12-12 | 2018-06-14 | Daniel Pohl | Screen matrix rendering in head mounted displays |
| US10499042B2 (en) * | 2017-04-01 | 2019-12-03 | Intel Corporation | Barreling and compositing of images |
| CN107220925B (zh) * | 2017-05-05 | 2018-10-30 | 珠海全志科技股份有限公司 | 一种实时虚拟现实加速方法及装置 |
| JP7297412B2 (ja) * | 2018-06-13 | 2023-06-26 | キヤノン株式会社 | 画像処理装置、画像処理方法、およびレンズ装置 |
| US11300385B2 (en) * | 2019-01-18 | 2022-04-12 | Zachary Burton | Camouflage patterns, arrangements and objects utilizing the same |
| US11175423B2 (en) * | 2019-08-22 | 2021-11-16 | Schlumberger Technology Corporation | Real time deformation of seismic slices using programmable shaders |
| CN111862343B (zh) * | 2020-07-17 | 2024-02-02 | 歌尔科技有限公司 | 一种三维重建方法、装置、设备及计算机可读存储介质 |
| US11423520B2 (en) * | 2020-10-30 | 2022-08-23 | Facebook Technologies, Llc. | Distortion-corrected rasterization |
| US12182980B2 (en) * | 2021-03-01 | 2024-12-31 | Kyndryl, Inc. | Cognitive filtering of content from shared screen display |
| US12106444B2 (en) | 2021-06-23 | 2024-10-01 | Apple Inc. | Hierarchical grid interpolation systems and methods |
| US11989854B2 (en) | 2021-06-23 | 2024-05-21 | Apple Inc. | Point-of-view image warp systems and methods |
| US12026858B2 (en) * | 2021-06-23 | 2024-07-02 | Apple Inc. | Stacked image warp operations systems and methods |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6414680B1 (en) * | 1999-04-21 | 2002-07-02 | International Business Machines Corp. | System, program product and method of rendering a three dimensional image on a display |
| US20020140706A1 (en) * | 2001-03-30 | 2002-10-03 | Peterson James R. | Multi-sample method and system for rendering antialiased images |
| US20070040838A1 (en) * | 2005-08-19 | 2007-02-22 | Eric Jeffrey | Efficient scaling of image data in graphics display systems |
| CN1981306A (zh) * | 2004-05-03 | 2007-06-13 | 皇家飞利浦电子股份有限公司 | 用于渲染图形的图形管道 |
| US20090080803A1 (en) * | 2007-09-20 | 2009-03-26 | Mitsugu Hara | Image processing program, computer-readable recording medium recording the program, image processing apparatus and image processing method |
| US20090154822A1 (en) * | 2007-12-17 | 2009-06-18 | Cabral Brian K | Image distortion correction |
| CN102138333A (zh) * | 2008-08-29 | 2011-07-27 | 汤姆逊许可公司 | 利用启发式视图合并的视图合成 |
| US8446433B1 (en) * | 2009-06-12 | 2013-05-21 | Lucasfilm Entertainment Company Ltd. | Interactive visual distortion processing |
| US20150022537A1 (en) * | 2013-07-19 | 2015-01-22 | Nvidia Corporation | Variable fragment shading with surface recasting |
| CN105654553A (zh) * | 2014-11-26 | 2016-06-08 | 三星电子株式会社 | 图形处理器和执行基于图块的图形管线的方法 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5809219A (en) | 1996-04-15 | 1998-09-15 | Silicon Graphics, Inc. | Analytic motion blur coverage in the generation of computer graphics imagery |
| GB9921777D0 (en) | 1999-09-16 | 1999-11-17 | Koninkl Philips Electronics Nv | Method and apparatus for handling translucency in 3d graphics |
| US6999100B1 (en) * | 2000-08-23 | 2006-02-14 | Nintendo Co., Ltd. | Method and apparatus for anti-aliasing in a graphics system |
| US7194134B2 (en) * | 2001-01-02 | 2007-03-20 | Microsoft Corporation | Hierarchical, probabilistic, localized, semantic image classifier |
| US7532222B2 (en) * | 2005-05-09 | 2009-05-12 | Microsoft Corporation | Anti-aliasing content using opacity blending |
| US7456846B1 (en) * | 2005-06-03 | 2008-11-25 | Nvidia Corporation | Graphical processing system, graphical pipeline and method for implementing subpixel shifting to anti-alias texture |
| WO2007049610A1 (ja) * | 2005-10-25 | 2007-05-03 | Mitsubishi Electric Corporation | 画像処理装置 |
| KR101331047B1 (ko) | 2009-09-01 | 2013-11-19 | 한국전자통신연구원 | 모발 이미지 렌더링 시스템 및 렌더링 방법 |
| KR101681056B1 (ko) * | 2010-10-01 | 2016-12-01 | 삼성전자주식회사 | 정점 처리 방법 및 장치 |
| US8605082B2 (en) | 2011-04-18 | 2013-12-10 | Brian K. Buchheit | Rendering adjustments to autocompensate for users with ocular abnormalities |
| US8884963B2 (en) * | 2011-05-04 | 2014-11-11 | Qualcomm Incorporated | Low resolution buffer based pixel culling |
| KR101524085B1 (ko) | 2013-01-04 | 2015-05-29 | 삼성메디슨 주식회사 | 의료 영상 제공 장치 및 방법 |
-
2015
- 2015-06-23 KR KR1020150089092A patent/KR102465969B1/ko active Active
-
2016
- 2016-01-21 US US15/003,320 patent/US10223761B2/en active Active
- 2016-04-19 EP EP16166072.5A patent/EP3121786B1/en active Active
- 2016-06-22 JP JP2016123357A patent/JP6749151B2/ja active Active
- 2016-06-23 CN CN201610465090.0A patent/CN106296565B/zh active Active
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6414680B1 (en) * | 1999-04-21 | 2002-07-02 | International Business Machines Corp. | System, program product and method of rendering a three dimensional image on a display |
| US20020140706A1 (en) * | 2001-03-30 | 2002-10-03 | Peterson James R. | Multi-sample method and system for rendering antialiased images |
| CN1981306A (zh) * | 2004-05-03 | 2007-06-13 | 皇家飞利浦电子股份有限公司 | 用于渲染图形的图形管道 |
| US20070040838A1 (en) * | 2005-08-19 | 2007-02-22 | Eric Jeffrey | Efficient scaling of image data in graphics display systems |
| US20090080803A1 (en) * | 2007-09-20 | 2009-03-26 | Mitsugu Hara | Image processing program, computer-readable recording medium recording the program, image processing apparatus and image processing method |
| US20090154822A1 (en) * | 2007-12-17 | 2009-06-18 | Cabral Brian K | Image distortion correction |
| CN102138333A (zh) * | 2008-08-29 | 2011-07-27 | 汤姆逊许可公司 | 利用启发式视图合并的视图合成 |
| US8446433B1 (en) * | 2009-06-12 | 2013-05-21 | Lucasfilm Entertainment Company Ltd. | Interactive visual distortion processing |
| US20150022537A1 (en) * | 2013-07-19 | 2015-01-22 | Nvidia Corporation | Variable fragment shading with surface recasting |
| CN105654553A (zh) * | 2014-11-26 | 2016-06-08 | 三星电子株式会社 | 图形处理器和执行基于图块的图形管线的方法 |
Non-Patent Citations (1)
| Title |
|---|
| DANIEL POHL ET AL: "Improved pre-warping for wide angle, head mounted displays", 《VRST 2013》 * |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110462677A (zh) * | 2017-03-27 | 2019-11-15 | 超威半导体公司 | 单通柔性屏/刻度光栅化 |
| CN110335200A (zh) * | 2018-03-29 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种虚拟现实反畸变方法、装置以及相关设备 |
| WO2019184811A1 (zh) * | 2018-03-30 | 2019-10-03 | 京东方科技集团股份有限公司 | 投影方法及装置、电子设备 |
| CN111798372A (zh) * | 2020-06-10 | 2020-10-20 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、设备和可读介质 |
| CN111798372B (zh) * | 2020-06-10 | 2021-07-13 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、设备和可读介质 |
| CN112233159A (zh) * | 2020-09-23 | 2021-01-15 | 华夏芯(北京)通用处理器技术有限公司 | 纹理处理方法及装置 |
| CN112233159B (zh) * | 2020-09-23 | 2021-07-16 | 华夏芯(北京)通用处理器技术有限公司 | 纹理处理方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3121786A1 (en) | 2017-01-25 |
| EP3121786B1 (en) | 2019-10-23 |
| JP6749151B2 (ja) | 2020-09-02 |
| CN106296565B (zh) | 2021-04-27 |
| US10223761B2 (en) | 2019-03-05 |
| US20160379335A1 (en) | 2016-12-29 |
| KR102465969B1 (ko) | 2022-11-10 |
| KR20170000190A (ko) | 2017-01-02 |
| JP2017010559A (ja) | 2017-01-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106296565B (zh) | 图形管线方法和设备 | |
| CN110036413B (zh) | 平铺架构中的注视点渲染 | |
| US10885607B2 (en) | Storage for foveated rendering | |
| CN105574924B (zh) | 渲染方法、渲染设备和电子设备 | |
| US9569811B2 (en) | Rendering graphics to overlapping bins | |
| CN106575442B (zh) | 使用通过自适应着色的纹理查找的带宽缩减 | |
| CN102096907B (zh) | 图像处理技术 | |
| CN104823220B (zh) | 用于图形处理的图形存储器加载掩模 | |
| KR20180056316A (ko) | 타일-기반 렌더링을 수행하는 방법 및 장치 | |
| KR20180060198A (ko) | 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법 | |
| CN107038740A (zh) | 图形处理设备和执行图形管线的方法 | |
| CN106575428A (zh) | 图形处理单元中的高阶滤波 | |
| US20180095754A1 (en) | Graphics processing apparatus and method of executing instructions | |
| US10311627B2 (en) | Graphics processing apparatus and method of processing graphics pipeline thereof | |
| WO2013114559A1 (ja) | 地図描画装置、ナビゲーション装置および地図描画方法 | |
| HK40005543A (zh) | 平舖架构中的注视点渲染 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | 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 |