CN106415668B - 用于减少的像素着色的技术 - Google Patents
用于减少的像素着色的技术 Download PDFInfo
- Publication number
- CN106415668B CN106415668B CN201580028987.0A CN201580028987A CN106415668B CN 106415668 B CN106415668 B CN 106415668B CN 201580028987 A CN201580028987 A CN 201580028987A CN 106415668 B CN106415668 B CN 106415668B
- Authority
- CN
- China
- Prior art keywords
- polygon
- vertices
- visible
- screen image
- pixel
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000009877 rendering Methods 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 abstract description 26
- 238000003860 storage Methods 0.000 description 85
- 238000005516 engineering process Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 16
- 230000008878 coupling Effects 0.000 description 14
- 238000010168 coupling process Methods 0.000 description 14
- 238000005859 coupling reaction Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 230000011664 signaling Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000005294 ferromagnetic effect Effects 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013213 extrapolation Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000003801 milling Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- 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
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/021—Flattening
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
各个实施例一般涉及用于在从3D模型渲染2D屏幕图像时减少对基元进行着色的处理要求的技术。一种装置包括:裁剪组件,用于在由着色像素覆盖的从3D模型得出的2D屏幕图像的第一区域内裁剪2D屏幕图像的可见基元,以便形成代表第一区域和可见基元的交叉的多边形;第一内插组件,用于将可见基元的顶点的至少一个属性内插到多边形的每个顶点;以及第二内插组件,用于将多边形的顶点的颜色值内插到由屏幕图像的屏幕像素覆盖的第二区域内的点,第二区域小于第一区域并且至少部分地与第一区域重合。还描述并要求保护其它实施例。
Description
背景技术
在操作计算装置的越来越多的方面中,越来越多地采用曾经只是作为执行基于相对专业化的计算机的功能的一部分进行的从三维(3D)模型渲染二维(2D)计算机生成的图像(CGI)。具体来说,尽管视频游戏仍旧呈现着这些图像的最普遍使用,但是它们的使用已经开始作为日益增长的装置阵列的图形用户界面(GUI)的一部分并网站中占有一席之地。
尽管图形渲染硬件的设计的发展和渲染算法的效率的增加已经使得基于3D模型的CGI的许多这种增加的使用成为可能,但是这些发展和效率增加尚不足以完全解决在便携式装置中典型的处理和功率资源的限制。具体来说,对图形基元着色(shading)以便为图像中的对象提供颜色和纹理的工作不断需要相当大的处理资源,而这又对在便携式装置中常见的由电池和/或其它电源提供的有限功率资源提出相当大的要求。此外,随着并入到便携式装置的显示器的像素分辨率不断增加,在处理和功率要求方面进行的缩减招架不住由这些分辨率增加导致的着色量的指数增加。
之前通过试图直接减少执行的着色量以便至少限制对功率资源的这些增加的要求而做了许多努力。但是,这些方法增加了将不准确或不正确的信息作为输入引入到着色中的实例,例如在执行内插计算中出现增加的外推。这种不准确或不正确的信息频繁地导致引入诸如“闪烁”像素颜色的视觉假象、在由多个基元组成的对象的曲线表面上的颜色过渡缺少平滑、和/或错位的着色边界。
附图说明
图1示出图形渲染***的示例实施例。
图2示出图形渲染***的备选示例实施例。
图3示出示例实施例的一部分。
图4示出3D模型的光栅化的示例实施例。
图5示出用于定义多边形的裁剪的示例实施例。
图6示出用于得出多边形的顶点的属性的内插的示例实施例。
图7示出多边形的像素着色顶点的示例实施例。
图8示出用于将屏幕像素上色的内插的示例实施例。
图9A和图9B一起示出用于定义多于一个多边形的裁剪的示例实施例。
图10-11各自示出根据实施例的逻辑流。
图12示出根据实施例的处理体系结构。
图13示出图形处理***的另一个备选实施例。
图14示出装置的实施例。
具体实施方式
各个实施例一般涉及在从3D模型渲染2D屏幕图像时通过利用比屏幕图像的屏幕像素粗大的着色像素进行着色来减少对可见基元着色的处理要求、同时将视觉假象减至最少的技术。在光栅化之后,在每个着色像素内执行可见基元的裁剪,以便定义代表可见基元与由各个着色像素覆盖的区域的交叉的多边形。将可见基元的顶点处的属性内插到多边形的顶点,然后通过利用多边形的顶点处的属性得出多边形的顶点处的颜色来执行像素着色。接着,对多边形的顶点处的颜色进行内插以便得出屏幕像素的颜色。
在一些实施例中,光栅化可只采用分配给屏幕图像的每个屏幕图像像素的单个样本(例如,位于每个屏幕图像像素的中心的单个样本)来标识在屏幕图像像素的位置从屏幕图像的角度可见的3D模型的基元的部分。在其它实施例中,光栅化可采用各种类型的采样中的任一类型的采样,包括超级采样、随机采样、多重采样等,其中存在分配给屏幕图像的每个屏幕图像像素的多个屏幕图像样本以便如此标识可见的3D模型的基元的部分。在光栅化之前,可能已经执行了顶点着色以便得出每个基元的每个顶点的属性。如本领域技术人员所熟悉的,取决于生成3D模型的对象的方式,基元可以全都是三角形,或者可以是不同类型的多边形的混合。但是,不管每个基元的形状如何,每个基元的所有部分都必须存在于单个平面内。基元的顶点的属性(包括它们的相对位置)可定义该基元和它所在的平面。
与屏幕图像的屏幕像素的栅格重合的可以是着色像素的栅格,其中着色像素比屏幕像素粗大,以使得每个着色像素覆盖比每个屏幕像素大的区域。在一些实施例中,着色像素可以定义成使得它们的边界与屏幕像素的边界对应,以使得每个着色像素对应于屏幕像素的整数倍(例如,每个着色像素可对应于四个屏幕像素)。在光栅化之后,可采用裁剪来得出每个着色像素内代表每个着色像素的区域与每个着色像素内由在该着色像素内可见的基元的一部分覆盖的区域的交叉的一个或多个多边形。实际上,将每个可见基元划分成各自代表着色像素内的这种交叉的一个或多个多边形。
在裁剪之后,将每个可见基元的顶点的属性内插到从该基元划分的每个多边形的顶点,以便得出那些多边形的顶点处的属性。然后,在每个多边形的每个顶点处执行像素着色,以便得出每个多边形的顶点的颜色值。
在多边形的顶点处进行像素着色之后,内插多边形的顶点处的颜色值以便得出屏幕像素的颜色值。在一些实施例中,采用哪些顶点来将颜色值内插到哪些屏幕像素可以基于每个屏幕像素的中心相对于多边形的边界的位置。换句话说,在特定屏幕像素的中心落在特定多边形的边界内的情况下,内插该特定多边形的顶点处的颜色值以便得出该特定屏幕像素的颜色值。但是,在其它实施例中,内插每个多边形的顶点处的颜色值以便得出落在该多边形内的屏幕图像的每个样本的颜色值,并将落在每个屏幕像素内的样本的颜色值求平均以便得出该屏幕像素的颜色。不管是将来自多边形的顶点的颜色值内插到屏幕像素的中心、还是在内插到屏幕图像的多个样本之后求平均,都可这样内插多边形的顶点处的其它属性。
一般参考本文中所使用的符号和命名法,可以依照在计算机或计算机网络上执行的程序过程介绍随后的详细描述的部分。这些过程描述和表示供本领域技术人员用来将他们的工作实质最有效地传达给本领域中的其它技术人员。过程在这里一般视为是导致期望结果的操作的独立序列。这些操作是需要对物理量进行物理操纵的操作。通常,这些量采用能够存储、传送、组合、比较以及以其它方式进行操纵的电、磁或光信号的形式,但这不是一定的。主要出于常用的原因,有时将这些信号称为位、值、元素、符号、字符、项、数字等经证实是便利的。但是,应注意,所有这些和类似术语都将与合适的物理量相关联,并且只是应用于这些量的便利标记。
此外,这些操纵通常称为诸如相加或比较的术语,它们通常与由人工操作员执行的心理操作相关联。但是,在大多数情形下,在本文中描述的形成一个或多个实施例的部分的任何操作中,人工操作员的这种能力不是必需的或令人满意的。而是,这些操作是机器操作。执行各种实施例的操作的有用机器包括:由存储在其中的根据本文中的教导编写的计算机程序选择性地激活或配置的通用数字计算机,和/或包括为所需目的专门构造的设备。各种实施例还涉及用于执行这些操作的设备或***。这些设备可为所需目的专门构造,或者可以包括通用计算机。各种这些机器所需的结构将出现在给出的描述中。
现在参考附图,其中通篇使用类似参考数字来表示类似元素。在以下详细描述中,出于解释的目的,阐述了众多具体细节以便充分理解本发明。但是,显然,没有这些具体细节也可实践新颖实施例。在其它情况下,用框图形式示出公知的结构和装置以便于对其进行描述。目的是覆盖在权利要求范围内的所有修改、等效物和更改。
图1示出并入源装置300、计算装置500和观看装置700中的一个或多个的图形渲染***1000的实施例的框图。计算装置500生成三维(3D)模型280的二维(2D)屏幕图像880,它投影到屏幕图像880的2D平面上。计算装置500可从源装置300接收代表定义的3D空间内的一个或多个对象的3D模型280的3D模型数据330。3D模型数据330可直接指定组成模型280的一个或多个对象的基元和/或那些基元的属性,或者可包括足以使得能够得出那些基元和/或它们的属性的信息。
在生成屏幕图像880之后,计算装置500可在显示器580上呈现屏幕图像880,和/或将代表屏幕图像880的屏幕图像数据730传送给观看装置700以便在其显示器780上呈现。屏幕图像数据730可包括屏幕图像880的位图,其中可以用各种格式中的任一格式编码屏幕图像880的每个像素的颜色。在一些实施例中,可选择屏幕图像880的像素分辨率以便与显示器580和/或显示器780的像素分辨率匹配。甚至,在一些实施例中,观看装置700可将显示器780的像素分辨率的指示提供给计算装置500以使得能够将屏幕图像880的像素分辨率设置成与显示器780的像素分辨率匹配。
这些计算装置中的每个计算装置都可以是各种类型的计算装置中的任何计算装置,包括但不限于桌面型计算机***、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持式个人数字助理、智能电话、智能眼镜、智能手表、数码相机、并入到衣物中的穿戴在身上的计算装置、并入到车辆(例如,汽车、自行车、轮椅等)中的计算装置、服务器、服务器集群、服务器场等。
如图中所描绘,这些计算装置300、500和700通过网络999交换信号以便传达代表3D模型和/或2D屏幕图像的数据。但是,这些计算装置中的一个或多个计算装置可经由网络999彼此和/或与其它计算装置(未示出)交换与从3D模型渲染2D图像完全无关的其它数据。在各种实施例中,网络可以是可能局限于在单个建筑物或其它相对有限的区域内延伸的单个网络、可能延伸相当长距离的相连网络的组合,和/或可包括互联网。因此,网络999可基于可用于交换信号的各种通信技术(或其组合)中的任一种,包括但不限于采用电和/或光传导电缆布线的有线技术和采用红外、射频或其它形式的无线传输的无线技术。
在各种实施例中,计算装置500并入处理器组件550、存储设备560、显示器580、控制器600和用于将计算装置500耦合到网络999的接口590中的一个或多个。存储设备560存储控制例行程序540、3D模型数据330和控制数据335中的一个或多个。控制器600并入处理器组件650和存储设备660中的一个或多个。存储设备660存储控制例行程序640、可见基元数据632、多边形数据633、着色多边形数据635、属性多边形数据636、样本颜色数据637和屏幕图像数据730中的一个或多个。
控制例行程序540并入可在它的作用中作为计算装置500的主要处理器组件的处理器组件550上操作以便实现执行各种功能的逻辑的指令序列。在执行控制例行程序540时,处理器组件550可经由网络999从源装置300接收3D模型数据330,并且可其将代表3D模型280的至少一部分的至少一部分存储在存储设备560中。应注意,可在包括生成其2D图像或传输在内的任何使用之前的相对长时间将3D模型数据330存储在存储设备560中。在生成代表屏幕图像880的屏幕图像数据730之后,处理器组件550可在显示器580上可视地呈现图像880以用于观看,和/或将屏幕图像数据730传送到观看装置700以使得能够在显示器780上呈现屏幕图像880以用于观看。
在一些实施例中,处理器组件550可接收各种配置参数的指示以便在从3D模型280生成屏幕图像880时采用。例如,在将屏幕图像880传送到观看装置700以便在显示器780上呈现的实施例中,可(例如,经由网络999)从观看装置700接收显示器780的像素分辨率、颜色深度、帧速率和/或其它参数的指示。又如,可经由网络999从观看装置700和/或从其它装置(未示出)接收屏幕图像880相对于3D模型280的位置和/或平面取向和/或边界的指示。处理器组件550可将这些参数的指示作为控制数据335的一部分加以存储以便供处理器组件650在生成屏幕图像880时使用。备选地或另外地,像素分辨率的指示可以是显示器580而不是显示器780的像素分辨率的指示。
控制例行程序640并入可在它的作用中作为计算装置500的控制器600的控制器处理器组件的处理器组件650上操作以便实现执行各种功能的逻辑的指令序列。在执行控制例行程序640时,处理器组件650从代表3D模型280的3D模型数据330生成代表屏幕图像880的屏幕图像数据730。更准确地说,处理器组件650将屏幕图像880渲染为投影到屏幕图像880的平面上的3D模型280的2D投影。图3描绘从代表3D模型280的3D模型数据330生成代表屏幕图像880的屏幕图像数据730的这种生成的示例实施例。如图中所描绘,控制例行程序640可并入光栅化组件642、着色裁剪组件643、属性内插组件645、像素着色组件646、颜色内插组件647和平均组件648中的一个或多个。在执行控制例行程序640时,处理器组件650可执行控制例行程序640的组件642、643、645、646、647和648中的一个或多个。
光栅化组件642可从控制数据335中检索屏幕图像880相对于3D模型280的一个或多个对象的位置和平面取向和/或屏幕图像880在该平面内的边界的指示。然后,光栅化组件642可在利用屏幕图像880的每个像素的多个样本光栅化3D模型280的一个或多个对象的图形基元时采用该指示来确定这些基元中哪些基元是在屏幕图像880中至少部分可见的可见基元。图4更详细地描绘了这种光栅化的示例的方面。如图中所描绘,3D模型数据330可并入基元数据332,基元数据332包括3D模型280的基元282的各种特性的指示,例如大小、形状、位置和/或取向。如之前所论述,每个基元282可以是各种类型的多边形中的任一种,每个多边形在单个平面内延伸。但是,之前也论述了,典型的3D模型中的大多数基元(如果不是所有的话)是三角形。
在执行光栅化以便确定3D模型280的哪些基元282同时也是在屏幕图像880中至少部分地可见的可见基元882时,光栅化组件642可将屏幕图像880的每个屏幕图像像素885的众多屏幕图像样本888(为了看清楚起见,只描绘了其中一个样本)朝向3D模型280投影。在如此投影屏幕图像样本888时,在选择每个屏幕图像像素885的屏幕图像样本888的数量中以及在选择在由每个屏幕图像像素885覆盖的区域内的屏幕图像样本888的位置中,可使用各种采样技术中的任一种采样技术。这些技术包括并且不限于超级采样、多重采样和/或随机采样。当将每个屏幕图像样本888朝向3D模型280投影(就像从屏幕图像880与屏幕图像880的平面垂直地延伸的线条一样)时,每个屏幕图像样本888遇到的3D模型280的第一基元282变成是在屏幕图像880中至少部分地可见的可见基元882。
通过光栅化标识什么可见基元882的指示可作为可见基元数据632的一部分加以存储。如图中所描绘,在关于可见基元882的信息中,这样存储的可以是与每个可见基元882的每个顶点883相关联的各种属性的指示。存储的属性可包括并且不限于顶点的位置、法向向量、材料规格、相对于屏幕图像880的平面的深度等中的一个或多个。在一些实施例中,可将可见基元数据632称为“几何缓冲器”(G-缓冲器)。
返回到图3,在通过光栅化组件642执行光栅化之后,着色裁剪组件643可将每个可见基元882划分成各自代表可见基元882与着色像素的交叉的一个或多个多边形以得出顶点以便在随后的像素着色中使用。图5更详细地描绘了示例可见基元882的这种划分的方面。更具体来说,叠加在光栅化期间采用的屏幕像素885的栅格上的是将在随后的像素着色期间采用的着色像素685的更粗大的栅格。如图中所描绘,每个着色像素685可覆盖比屏幕像素885大的区域。并且,着色像素685的边界可与屏幕像素885的边界的至少子集对准,以使得由着色像素685覆盖的区域与由屏幕像素885的整数倍覆盖的区域重叠(例如,如图中所描绘,每个着色像素685对应于并且覆盖四个屏幕像素885的区域)。尽管这样描绘了着色像素685与屏幕像素885之间的位置和区域的特定对应方式,但是应注意,可以有边界不对准和/或由着色像素685覆盖的区域不是由屏幕像素885覆盖的区域的整数倍的其它实施例。
在一些实施例中,由像素685和885覆盖的边界和/或区域对应的方式可由存储在配置数据335中的指示(例如,如图中所描绘,规定每个着色像素685覆盖四个屏幕像素885的区域的指示)确定,并且可通过着色裁剪组件643从配置数据335检索该指示。在其它实施例中,着色裁剪组件643可包括着色像素定义组件6435,它用于基于对可见基元882的一个或多个特性的分析(例如,基于诸如由可见基元882覆盖的平均区域的统计)确定由着色像素685覆盖的边界和/或区域。
不管以何种方式确定着色像素685相对于屏幕像素885的大小和/或边界,着色裁剪组件643都可对落在每个着色像素685内的可见基元882的部分执行裁剪,以便得出各自代表由着色像素685覆盖的区域与落在该着色像素685内的可见基元882的一部分的交叉的多边形682。更具体来说,如图中所描绘,之前通过光栅化组件642标识的示例可见基元882由包括对应于寻求颜色值的示例屏幕像素885(突出显示)的示例着色像素685(同样突出显示)在内的着色像素685的栅格覆盖。在示例着色像素685内,在示例着色像素685的两个拐角附近执行示例可见基元882的裁剪,以便定义具有通过由示例着色像素685覆盖的区域与落在示例着色像素685内的示例可见基元882的部分的交叉定义的形状的示例多边形682(同样突出显示)。
在一些实施例中,着色裁剪组件643可在每个可见基元882上生成重心坐标***以便控制裁剪。如本领域技术人员所熟悉的,重心坐标***基于顶点的相对位置、在顶点之间延伸的每一段的中心和/或多边形的质量中心。此外,在至少凸多边形内,重心坐标***将具有完全非负的坐标值的所有点定义为位于多边形的边缘处或位于多边形内,并将具有任何负坐标值的所有点定义为位于多边形外。因此,在着色裁剪组件643为每个可见基元882生成重心坐标***的实施例中,着色裁剪组件643可接着对任何负坐标值施加限制以作为标识着色像素685内的可见基元882的边缘的位置的一部分,从而确定应当在该着色像素685内的什么位置进行裁剪。
不管以何种方式确定在哪里执行裁剪以便生成每个多边形682,着色裁剪组件643都可将由可通过每个着色像素685内的这种裁剪定义的每个多边形682覆盖的区域的指示作为多边形数据633的一部分加以存储。在一些实施例中,在多边形数据633内通过它们的顶点的位置的指示描述每个这样的多边形682的几何结构。
参考图3,在通过裁剪组件643执行裁剪之后,属性内插组件645可将每个可见基元882的顶点处的一个或多个属性内插到作为裁剪的结果从可见基元882划分的多边形682的顶点。图6更详细地描绘了将来自示例基元882的顶点的属性内插到图5的示例多边形682的顶点的这种内插的示例的方面。更具体地转到图6中的描绘,属性内插组件645将示例可见基元882的每个顶点883的一个或多个属性内插到示例多边形682的每个顶点683。在这样做时,属性内插组件645可从可见基元数据632检索示例可见基元882的顶点883的属性的指示,并且可从多边形数据633检索示例多边形682的顶点683的位置的指示。
通过属性内插组件645将示例可见基元882的每个顶点883处的一个或多个属性内插到示例多边形682的顶点683避免了进行从顶点883到位于示例可见基元882外部的一个或多个位置的内插的外推的实例。将来自基元的每个顶点的属性内插到位于该基元外部的位置可在逻辑上视为是不合逻辑的,因为对于该基元的属性将对不存在任何事物的位置或可存在具有完全不同的属性的另一个基元的位置具有任意适用性的固有假设不存在任何基础。举例来说,从示例可见基元882的顶点883处的颜色值到位于示例可见基元882外部的位置的内插可能毫无意义,因为在即将赋予颜色值的该位置不存在任何事物,或者在该位置处可能存在具有完全不同颜色的不同基元。
示例多边形682的顶点683提供已知位于示例可见基元882内或沿示例可见基元882的一个或多个边缘、而不是位于示例可见基元882外部的位置的集合。因此,能够通过属性内插组件645执行从示例可见基元882的顶点883到示例多边形682的每个顶点683的内插,而没有这些内插中的一个或多个内插是外推的风险。这与其它已知技术形成对比,在其它已知技术中,将执行从示例可见基元882的顶点883到形成示例多边形682的着色像素685的拐角或到该着色像素685和一个或多个相邻着色像素685的中心的这种内插。那些其它已知技术的这类内插均将导致多个外推(通过参考图5可见)。属性内插组件645可将为示例多边形682的每个顶点683得出的属性的指示作为属性多边形数据635的一部分加以存储。在一些实施例中,属性多边形数据635还可包括每个顶点683的位置的指示。
返回到图3,在通过属性内插组件645执行内插以便得出每个多边形682的顶点683处的属性之后,像素着色组件646可采用每个多边形682的每个顶点683处的属性作为在每个多边形682的每个顶点683处执行像素着色的输入以便得出每个多边形682的每个顶点683的颜色值。例如,在示例多边形682的每个顶点683处,像素着色组件646可采用该顶点683处的一个或多个属性来得出指定该顶点683处的颜色的颜色值。在这样做时,像素着色组件646可从属性多边形数据635检索示例多边形682的每个顶点683的一个或多个属性的指示。然后,像素着色组件646可将指定示例多边形682的每个顶点683处的颜色的颜色值的指示作为着色多边形数据636的一部分加以存储。在一些实施例中,着色多边形数据636还可包括每个顶点683的位置和/或每个顶点683处的属性的指示。
在通过像素着色组件646在每个多边形682的顶点683处进行着色之后,颜色内插组件647可内插每个多边形682的每个顶点处的颜色值以便得出屏幕像素885的颜色值。图7更详细地描绘了用于得出与图5和图6的示例多边形682重合的示例屏幕像素885的颜色值的这种内插的示例的方面。
应注意,通过颜色内插组件647执行的内插包括从通过像素着色组件646为多边形682中的对应多边形的顶点683得出的颜色值至少内插指定屏幕图像880的每个屏幕像素885的颜色的颜色值。但是,通过颜色内插组件647执行的内插还可包括通过类似地内插由属性内插组件645为多边形682中的对应多边形的顶点683得出的那些属性来为每个屏幕像素885得出一个或多个其它属性。在这样做时,颜色内插组件647可从着色多边形数据636检索多边形682的每个顶点683处的颜色值和/或属性值的指示。然后,颜色内插组件647可将通过内插为屏幕像素885得出的颜色值和/或属性值作为屏幕图像数据730的一部分加以存储。在将每个屏幕图像像素885的值存储在屏幕图像数据730中的情况下,屏幕图像数据730可变成屏幕图像880的表示。
因此,颜色内插组件647可对通过像素着色组件646为示例多边形682的每个顶点683得出的颜色值进行内插以便得出指定示例屏幕像素885的颜色的颜色值。类似地,颜色内插组件647可另外对通过像素着色组件646为示例多边形682的每个顶点683得出的一个或多个其它属性的值进行内插以便得出示例屏幕像素885的那一个或多个其它属性的值。通过颜色内插组件647执行的这些内插所指向的位置可以是示例屏幕像素885的中心。此外,示例屏幕像素885可视为是作为示例屏幕像素885的中心落在示例多边形682内的结果而对应于示例多边形682,并且与示例多边形682的这种对应形式可确定,即将从示例多边形682的顶点683内插为示例屏幕像素885得出的属性(包括颜色值)。
正如刚刚所描述的通过颜色内插组件647执行从多边形682的顶点683到每个屏幕像素885的中心的这种内插可在每个屏幕像素885存在单个样本的实施例(或者在不管每个像素可存在多少个样本、每个屏幕像素885的颜色值的得出不基于每个像素的样本数量的实施例中)中执行。但是,在光栅化期间采用每个屏幕像素885多个样本的实施例中,颜色内插组件647可从多边形的顶点683内插到那些样本中的每个样本。图8更详细地描绘了到每个屏幕像素885的每个样本的这种内插的示例。
具体来说,如图中所描绘,可以有4个样本888落在示例屏幕像素885内,以使得颜色内插组件647可将示例多边形682的顶点683处的颜色值和/或其它属性的值内插到示例屏幕像素885的每个样本888。在这样做时,颜色内插组件647可将如此为每个样本888得出的那些值的指示作为样本颜色数据637的一部分加以存储。然后,平均组件648可将刚刚通过内插为示例屏幕像素885的每个样本888得出的颜色值进行平均以便得出示例屏幕像素885的颜色值。平均组件648可另外对同样刚刚通过内插为示例屏幕像素885的每个样本888得出的一个或多个其它属性的值进行平均以便得出示例屏幕像素885的一个或多个其它属性的值。在这样做时,平均组件648可将示例屏幕像素885的颜色值和/或一个或多个其它属性的值作为屏幕图像数据730的一部分加以存储。
应注意,对图5-8的单个示例多边形682的形成和使用的描述意在作为在本文中介绍的相对简单的示例,以使得能够清楚地论述从3D模型280得出屏幕像素885的至少颜色值以作为渲染2D屏幕图像880的一部分。但是,本领域技术人员可意识到,相当普遍的是,在至少一些着色像素685内具有多于一个可见基元882的部分,以使得将在那些着色像素685中的每个着色像素685内形成多于一个多边形682。图9A和图9B一起描绘作为落在备选示例着色像素685内的一对相邻可见基元882a和882b的部分的结果在备选示例着色像素685内形成一对相邻多边形682a和682b的方面。
更具体地转到图9A,如图中所描绘,这两个相邻可见基元882a和882b以形成具有共同顶点883的共同边缘的方式相遇,该共同边缘延伸穿过备选示例着色像素685并穿过与备选示例着色像素685的一部分重合的备选示例屏幕像素885。图中还描绘了每个相邻可见基元882a和882b的顶点883(包括在其间共享的两个顶点883)的相对位置。
更具体地转到图9B,着色裁剪组件643执行在备选示例着色像素685内裁剪每个相邻可见基元882a和882b以便在其中形成这一对相邻多边形682a和682b。如图中所描绘,相邻多边形682a和682b共享相邻可见基元882a和882b之间的共同边缘的一部分以作为相邻多边形682a和682b之间的共同边缘。图中还描绘了每个相邻多边形682a和682b的顶点683(包括在其间共享的两个顶点683)的相对位置。作为通过着色裁剪组件643执行裁剪的结果,沿备选示例着色像素685的边界定义这两个共享的顶点683。
在相邻可见基元882a和882b是定义相同对象的相同表面的部分的可见基元的集合的一部分的实施例中,为沿备选示例着色像素685的边界共享共同位置的每个相邻多边形682a和682b的顶点683得出的颜色值可能是基本类似的。因此,可察觉到在由相邻可见基元882a和882b定义的该表面的部分之间出现的平滑过渡。甚至,图9B示出,如本文中所描述将可见基元划分成一个或多个多边形可能导致形成与将共享共同位置的相邻可见基元相关联的多边形顶点,而这又可能导致在相邻可见基元中的这种类似的颜色值。
返回到图1,在如上文中所描述生成代表屏幕图像880的屏幕图像数据730之后,处理组件550可在显示器580上呈现图像880。备选地或另外地,处理器组件550可操作接口590以便将屏幕图像数据730传送给诸如观看装置700的另一个装置,从而使得能够在诸如显示器780的另一个显示器上呈现图像880。
在各种实施例中,观看装置700并入处理器组件750、存储设备760、显示器780和用于将观看装置700耦合到网络999的接口790中的一个或多个。存储设备760存储控制例行程序740和屏幕图像数据730中的一个或多个。控制例行程序740并入可在它的作用中作为观看装置700的主要处理器组件的处理器组件750上操作以便实现执行各种功能的逻辑的指令序列。在一些实施例中,在执行控制例行程序740时,处理器组件750可操作接口790以便将显示器780的像素分辨率的指示传送给计算装置500。如前所述,可将这种指示作为控制数据335的一部分存储在计算装置500内,并稍后用于渲染屏幕图像880的一个或多个方面(例如,设置屏幕图像880的像素分辨率)。备选地或另外地,处理器组件750可操作接口790以便在计算装置500如上所述渲染屏幕图像880之后从计算装置500接收代表屏幕图像880的屏幕图像数据730。然后,处理器组件750可在显示器780上可视地呈现运动屏幕图像880。
图2示出包括计算装置500的备选实施例的图形渲染***1000的备选实施例的框图。图2的图像渲染***1000的备选实施例在很多方面与图1的实施例类似,并且因此通篇中利用类似参考数字来表示类似元素。但是,不同于图1的计算装置500,图2的计算装置500没有并入控制器600。因此,不同于图1的计算装置500,在图2的计算装置500中,处理器组件550执行控制例行程序640,以便代替存在独立的处理器组件650来这样做。因此,在图2的图像渲染***1000的备选实施例中,处理器组件550以与关于通过处理器组件650执行控制例行程序640描述的方式没什么不同的方式执行屏幕图像880的渲染,包括光栅化、着色和过滤。
在各种实施例中,每个处理器组件550和650都可包括各种各样的市售处理器中的任一种处理器。并且,这些处理器组件中的一个或多个处理器组件可包括多个处理器、多线程化处理器、多核处理器(不管这些核是在相同还是独立管芯上共存)、和/或以某种方式将多个物理上独立的处理器链接在一起的某个其它种类的多处理器体系结构。并且,尽管每个处理器组件550和650可包括各种类型的处理器中的任何处理器,但是可预想,控制器600的处理器组件650(如果存在的话)可稍微进行专业化和/或优化以便执行与图形和/或视频有关的任务。更广泛地说,可预想,控制器600实施计算装置500的图形子***以便使得能够利用与处理器组件650不同的独立组件以及它的更密切相关的组件来执行与图形渲染、视频压缩、图像重新缩放等有关的任务。
在各种实施例中,存储设备560、660和760中的每个存储设备可基于各种各样的信息存储技术中的任何一种技术,可能包括需要不间断地提供电力的易失性技术,并且可能包括必需使用可移动或不可移动的机器可读存储介质的技术。因此,这些存储设备中的每个存储设备可包括各种各样类型的存储装置(或类型的组合)中的任一种,包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、聚合物存储器(例如,铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡、一个或多个个别铁磁磁盘驱动器、或组织成一个或多个阵列的多个存储装置(例如,组织成独立磁盘冗余阵列或RAID阵列的多个铁磁磁盘驱动器)。应注意,尽管将这些存储设备中的每个存储设备描绘为单个区块,但是它们中的一个或多个可包括可基于不同存储技术的多个存储装置。因此,例如,描绘的这些存储设备的每个存储设备中的一个或多个设备可表示以下装置的组合:可借以在某种形式的机器可读存储介质上存储和传达程序和/或数据的光驱动器或闪速存储器卡读取器;用于在相对延长的时期在本地存储程序和/或数据的铁磁磁盘驱动器;以及使得能够相对快速地存取程序和/或数据的一个或多个易失性固态存储器装置(例如,SRAM或DRAM)。还应注意,这些存储设备中的每个存储设备可由基于相同存储技术但是可作为专业化的结果在使用中独立维持的多个存储组件组成(例如,采用一些DRAM装置作为主存储设备,而采用其它DRAM装置作为图形控制器的不同帧缓冲器)。
在各种实施例中,如上所述,接口590和790可采用使得能够将这些计算装置耦合到其它装置的各种各样的信令技术中的任何技术。这些接口中的每个接口包括提供使得能够进行这种耦合的至少一些必需功能性的电路。但是,这些接口中的每个接口也可至少部分地用由处理器组件的对应组件执行(例如,以便实现协议堆栈或其它特征)的指令序列来实现。在采用电和/或光传导电缆布线的情况下,这些接口可采用符合各种工业标准中的任何标准的信令和/或协议,包括但不限于RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在必需使用无线信号传输的情况下,这些接口可采用符合各种工业标准中的任何标准的信令和/或协议,包括但不限于:IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常称为“移动宽带无线接入”);蓝牙;ZigBee;或蜂窝无线电电话服务,例如GSM和通用分组无线电服务(GSM/GPRS)、CDMA/1xRTT、全球演进增强数据速率(EDGE)、仅支持数据的演进/演进数据优化(EV-DO)、数据和语音演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE等。
图10示出逻辑流2100的一个实施例。逻辑流2100可代表通过本文中描述的一个或多个实施例执行的一些或所有操作。更具体来说,逻辑流2100可说明在执行至少控制例行程序640中通过处理器组件550和/或650执行、和/或通过计算装置500的其它组件执行的操作。
在2110,计算装置的处理器组件(例如,计算装置500的处理器组件550和/或650)执行从即将从3D模型渲染的2D屏幕图像(例如,屏幕图像880)的平面的角度光栅化3D模型的所有图形基元(例如,3D模型280的基元282)。在这样做时,处理器组件标识可从2D屏幕图像的角度可见的3D模型的所有基元(例如,可见基元882),并获得与这些可见基元中的每个基元的顶点相关联的各种属性。如上所述,可从另一个计算装置(例如,观看装置700)接收这类平面的位置和/或取向、以及该平面内的屏幕图像的边界。
在2120,处理器组件对可见基元的至少一部分所在的每个着色像素内的可见基元执行裁剪以便得出各自代表着色像素的区域与落在着色像素内的可见基元的部分的交叉的多边形。如前所述,着色像素可各自定义成包括比组成2D屏幕图像的每个着色像素大的区域,以使得着色像素的栅格可以比屏幕像素的栅格更粗大。同样如前所述,可以用与屏幕像素的边界的至少子集对准的边界来定义着色像素,以使得可将每个着色像素定义成与着色像素的整数倍对应(例如,如本文中所描绘,每个着色像素对应于四个屏幕像素)。
在2130,处理器组件执行像素着色以便根据从相关联的可见基元的顶点内插到多边形的顶点的属性得出多边形的顶点处的颜色值。在2140,处理器组件可将来自多边形的顶点的颜色值内插到屏幕像素的中心以便得出屏幕像素的颜色值。如前所述,可采用每个屏幕像素的中心相对于多边形的位置来确定采用哪个多边形的顶点来提供用于内插的颜色值。
图11示出逻辑流2200的一个实施例。逻辑流2200可代表通过本文中描述的一个或多个实施例执行的一些或所有操作。更具体来说,逻辑流2200可说明在执行至少控制例行程序640中通过处理器组件550和/或650执行、和/或通过计算装置500的其它组件执行的操作。
在2210,计算装置的处理器组件(例如,计算装置500的处理器组件550和/或650)执行从即将从3D模型渲染的2D屏幕图像(例如,屏幕图像880)的平面的角度光栅化3D模型的所有图形基元(例如,3D模型280的基元282),以便标识从2D屏幕图像的角度可见的3D模型的所有基元(例如,可见基元882)。如上所述,可从另一个计算装置(例如,观看装置700)接收这类平面的位置和/或取向、以及该平面内的屏幕图像的边界。
在2220,处理器组件对可见基元的至少一部分所在的每个着色像素内的可见基元执行裁剪以便得出各自代表着色像素的区域与落在着色像素内的可见基元的部分的交叉的多边形。如前所述,着色像素可各自定义成包括比组成2D屏幕图像的每个着色像素大的区域,以使得着色像素的栅格可以比屏幕像素的栅格更粗大。同样如前所述,可以用与屏幕像素的边界的至少子集对准的边界来定义着色像素,以使得可将每个着色像素定义成与着色像素的整数倍对应(例如,如本文中所描绘,每个着色像素对应于四个屏幕像素)。
在2230,处理器组件执行内插以便通过从相关联的可见基元的顶点处的属性内插来得出多边形的顶点处的属性。在2240,处理器执行像素着色从多边形的顶点处的属性得出多边形的顶点处的颜色值。
在2250,处理器组件可将来自多边形的顶点的至少颜色值内插到落在每个多边形内的样本。在2260,处理器组件将落在每个屏幕像素内的样本处的至少颜色值求平均以便得出屏幕像素的颜色值。如前所述,也可将来自多边形的顶点的其它属性的值内插到这些样本,然后从这些样本求平均以便为每个屏幕像素得出那些属性的值。
图12示出适于实现如前所述的各种实施例的示例性处理体系结构3000的实施例。更具体来说,处理体系结构3000(或其变型)可作为计算装置300、500或700中的一个或多个的部分、和/或作为控制器600的部分实现。应注意,给处理体系结构3000的组件提供了参考数字,其中最后两个数字对应于之前作为计算装置300、500和700以及控制器600的一部分进行描绘和描述的至少一些组件的参考数字的最后两个数字。
处理体系结构3000包括在数字处理中通常采用的各种元件,包括但不限于一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、***设备、接口、振荡器、计时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本申请书中所使用,术语“***”和“组件”是要指在其中进行数字处理的计算装置的实体,该实体可以是硬件、硬件和软件的组合、软件、或执行中的软件,其示例由描绘的该示例性处理体系结构提供。例如,组件可以是但不限于是在处理器组件上运行的进程、处理器组件本身、可采用光和/或磁存储介质的存储装置(例如,硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、可执行指令序列、指令线程、程序和/或整个计算装置(例如,整个计算机)。举例来说,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可驻留在执行的进程和/或线程内,并且组件可局部化在一个计算装置上和/或分布在两个或两个以上计算装置之间。此外,组件可在通信上通过各种类型的通信介质彼此耦合以便协调操作。协调可涉及信息的单向或双向交换。例如,组件可以用通过通信介质通信的信号的形式通信信息。信息可作为分配给一条或多条信号线的信号实现。消息(包括命令、状态、地址或数据消息)可以是这类信号之一,或者可以是多个这类信号,并且可通过各种连接和/或接口中的任一种串行地或基本上并行地传送。
如图中所描绘,在实现处理体系结构3000时,计算装置包括至少处理器组件950、存储设备960、到其它装置的接口990、以及耦合959。如下文将解释,取决于实现处理体系结构3000的计算装置的各个方面,包括它的预期使用和/或使用状况,这类计算装置还可包括另外的组件,例如但不限于显示器接口985。
耦合959包括一个或多个总线、点到点互连、收发器、缓冲器、交叉点开关和/或在通信上至少将处理器组件950耦合到存储设备960的其它导体和/或逻辑。耦合959还可将处理器组件950耦合到接口990、音频子***970和显示器接口985中的一个或多个(取决于还存在这些和/或其它组件中的哪些组件)。在通过耦合959如此耦合处理器组件950的情况下,处理器组件950能够执行在上文最后针对上述计算装置中的无论哪个(哪些)计算装置实现处理体系结构3000描述的任务中的各种任务。耦合959可利用借以用光和/或电方式传达信号的各种技术或技术的组合中的任一种来实现。此外,耦合959的至少部分可采用符合各种各样的工业标准中的任一种标准的计时和/或协议,包括但不限于加速图形端口(AGP)、CardBus、扩展工业标准体系结构(E-ISA)、微信道体系结构(MCA)、NuBus、***组件互连(扩展)(PCI-X)、PCI Express(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、HyperTransportTM、QuickPath等。
如前所述,处理器组件950(对应于处理器组件550、650和750)可包括采用各种各样技术中的任何技术并用在物理上以各种方式中的任何方式组合的一个或多个核实现的各种各样市售处理器中的任何处理器。
如前所述,存储设备960(对应于存储设备560、660和760)可由基于各种各样技术或技术组合中的任一种的一个或多个不同的存储装置组成。更具体来说,如图中所描绘,存储设备960可包括以下存储设备中的一种或多种:易失性存储设备961(例如,基于一种或多种形式的RAM技术的固态存储设备),非易失性存储设备962(例如,不需要持续提供电力来保存它们的内容的固态、铁磁或其它存储设备),以及可移动媒体存储设备963(例如,可借以在计算装置之间传达信息的可移动磁盘或固态存储卡存储设备)。这种将存储设备960描绘为可能包括多种不同类型的存储设备的描绘是在承认在计算装置中普遍使用多于一种类型的存储装置,其中一种类型提供相对快速的读和写能力以使得能够通过处理器组件950对数据进行更快速的操纵(但也可能使用不断需要电力的“易失性”技术),而另一种类型提供相对高密度的非易失性存储(但可能提供相对缓慢的读和写能力)。
给定采用不同技术的不同存储装置的通常不同的特性,这类不同的存储装置还普遍通过利用不同接口耦合到它们的不同存储装置的不同存储设备控制器耦合到计算装置的其它部分。举例来说,在存在易失性存储设备961并且它基于RAM技术的情况下,易失性存储设备961可在通信上通过存储设备控制器965a耦合到耦合959,存储设备控制器965a提供到可能采用行和列寻址的易失性存储设备961的合适接口,并且其中存储设备控制器965a可执行行刷新和/或其它维护任务以便帮助保存存储在易失性存储设备961内的信息。又如,在存在非易失性存储设备962并且它包括一个或多个铁磁和/或固态盘驱动器的情况下,非易失性存储设备962可在通信上通过存储设备控制器965b耦合到耦合959,存储设备控制器965b提供到可能采用信息块和/或柱面和扇区的寻址的非易失性存储设备962的合适接口。再如,在存在可移动媒体存储设备963并且它包括采用一件或多件机器可读存储介质969的一个或多个光和/或固态盘驱动器的情况下,可移动介质存储设备963可在通信上通过存储设备控制器965c耦合到耦合959,存储设备控制器965c提供到可能采用信息块的寻址的可移动媒体存储设备963的合适接口,并且其中存储设备控制器965c可以用对于延长机器可读存储介质969的寿命特有的方式协调读、擦除和写操作。
易失性存储设备961或非易失性存储设备962中的一个或另一个可包括机器可读存储介质形式的制品,取决于所基于的技术,可在机器可读存储介质上存储包括可由处理器组件950执行的指令序列的例行程序。举例来说,在非易失性存储设备962包括基于铁磁的磁盘驱动器(例如,所谓的“硬盘驱动器”)的情况下,每个这样的磁盘驱动器通常采用一个或多个旋转盘,磁响应颗粒的涂层沉积在所述一个或多个旋转盘上,并按各种模式磁取向以便以与诸如软盘的存储介质类似的方式存储诸如指令序列的信息。又如,非易失性存储设备962可由用于以与致密闪速卡类似的方式存储诸如指令序列的信息的固态存储装置库组成。同样地,普遍的是在计算装置中在不同时间采用不同类型的存储装置以便存储可执行例行程序和/或数据。
因此,包括即将由处理器组件950执行的指令序列的例行程序最初可存储在机器可读存储介质969上,并且随后可采用可移动媒体存储设备963来将该例行程序复制到非易失性存储设备962以便长期存储,而无需继续存在机器可读存储介质969和/或易失性存储设备961以使得能够在执行该例行程序时供处理器组件950更快速地访问。
如前所述,接口900(可能对应于接口590或790)可采用对应于可用于在通信上将计算装置耦合到一个或多个其它装置的各种通信技术中的任一种的各种信令技术中的任一种。同样,可采用各种形式的有线或无线信令中的一种或两种来使得处理器组件950能够可能通过网络(例如,网络999)或网络的互连集合与输入/输出装置(例如,描绘的示例键盘920或打印机925)和/或其它计算装置交互。在识别任何一个计算装置通常必须支持的多种类型的信令和/或协议的通常大不相同的字符时,将接口990描绘为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可采用各种类型的有线数字串行接口或射频无线接口中的任一种来从诸如描绘的键盘920的用户输入装置接收串行传送的消息。接口控制器995b可采用各种基于电缆布线或无线信令、计时和/或协议中的任一种来通过描绘的网络999(可能是由一个或多个链路组成的网络、更小型网络或可能是互联网)访问其它计算装置。接口995c可采用各种电传导电缆布线中的任一种以使得能够使用串行或并行信号传输来向描绘的打印机925传达数据。可在通信上通过接口990的一个或多个接口控制器耦合的装置的其它示例包括但不限于用于监测人的声音以便接受那些人经由语音或他们可发出的其它声音用信号通知的命令和/或数据的麦克风、远程控件、手写笔、读卡器、指纹阅读器、虚拟现实交互手套、图形输入平板电脑、控制杆、其它键盘、视网膜扫描仪、触摸屏的触摸输入组件、追踪球、各种传感器、用于监测人的移动以便接受那些人经由姿势和/或面部表情用信号通知的命令和/或数据的相机或相机阵列、激光打印机、喷墨打印机、机械机器人、铣床等。
在计算装置在通信上耦合到(或者可能实际上并入)显示器(例如,描绘的示例显示器980)的情况下,实现处理体系结构3000的这类计算装置还可包括显示器接口985。尽管可采用更广义类型的接口来在通信上耦合到显示器,但是在显示器上可视地显示各种形式的内容时通常需要的稍微专业化的另外的处理以及使用的基于电缆布线的接口的稍微专业化的性质通常使得提供不同显示器接口是可取的。显示器接口985可在通信耦合显示器980时采用的有线和/或无线信令技术可利用符合各种工业标准中的任一种标准的信令和/或协议,包括但不限于各种模拟视频接口、数字视频接口(DVI)、DisplayPort等中的任一种。
图13示出***4000的实施例。在各种实施例中,***4000可代表:适合与本文中描述的一个或多个实施例一起使用的***或体系结构,例如图形渲染***1000;计算装置300、500或700中的一个或多个;和/或逻辑流2100或2200中的一个或多个。实施例在这方面不受限制。
如图所示,***4000可包括多个元件。根据设计或性能约束的给定集合的需要,可利用一个或多个电路、组件、寄存器、处理器、软件子例行程序、模块或其任意组合来实现一个或多个元件。尽管图13举例示出按照特定拓扑的有限数量的元件,但是可明白,根据给定实现的需要,可在***4000中使用按照任何合适拓扑的更多或更少的元件。实施例在这一点上不受限制。
在实施例中,***4000可以是媒体***,但是***4000不限于这一点。例如,***4000可并入到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能装置(例如,智能电话、智能平板或智能电视)、移动互联网装置(MID)、消息传递装置、数据通信装置等中。
在实施例中,***4000包括耦合到显示器4980的平台4900a。平台4900a可从诸如内容服务装置4900c或内容递送装置4900d或其它类似的内容源的内容装置接收内容。可利用包括一个或多个导航特征的导航控制器4920来与例如平台4900a和/或显示器4980交互。下文将更详细地描述这些组件中的每个组件。
在实施例中,平台4900a可包括处理器组件4950、芯片组4955、存储器单元4969、收发器4995、存储设备4962、应用4940和/或图形子***4985的任意组合。芯片组4955可在处理器电路4950、存储器单元4969、收发器4995、存储设备4962、应用4940和/或图形子***4985中提供相互通信。例如,芯片组4955可包括能够提供与存储设备4962的相互通信的存储设备适配器(未描绘)。
处理器组件4950可利用任何处理器或逻辑装置来实现,并且可以与处理器组件550、650或750中的一个或多个和/或与图12的处理器组件950相同或类似。
存储器单元4969可利用能够存储数据的任何机器可读或计算机可读介质来实现,并且可与图12的存储介质969相同或类似。
收发器4995可包括能够利用各种合适的无线通信技术传送和接收信号的一个或多个无线电,并且可以与图12中的收发器995b相同或类似。
显示器4980可包括任何电视型监视器或显示器,并且可以与显示器580和780中的一个或多个和/或与图12中的显示器980相同或类似。
存储设备4962可作为非易失性存储装置来实现,并且可以与图12中的非易失性存储设备962相同或类似。
图形子***4985可执行诸如静态或视频的图像的处理以用于显示。例如,图形子***4985可以是图形处理单元(GPU)或可视处理单元(VPU)。可利用模拟或数字接口来在通信上耦合图形子***4985和显示器4980。例如,接口可以是高清多媒体接口、DisplayPort、无线HDMI和/或无线HD符合技术中的任一种。图形子***4985可集成到处理器电路4950或芯片组4955中。图形子***4985可以是在通信上耦合到芯片组4955的独立卡。
可在各种硬件体系结构中实现本文中描述的图形和/或视频处理技术。例如,可在芯片组内集成图形和/或视频功能性。或者,可使用离散的图形和/或视频处理器。作为另一个实施例,可通过包括多核处理器的通用处理器来实现图形和/或视频功能。在另一个实施例中,可在消费型电子装置中实现这些功能。
在实施例中,可通过任何国家、国际和/或独立服务来代管内容服务装置4900b,并且因此平台4900a可经由例如互联网访问内容服务装置4900b。内容服务装置4900b可耦合到平台4900a和/或显示器4980。平台4900a和/或内容服务装置4900b可耦合到网络4999以便进出网络4999通信(例如,发送和/或接收)媒体信息。内容递送装置4900c也可耦合到平台4900a和/或显示器4980。
在实施例中,内容服务装置4900b可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的互联网启用的装置或器具、以及能够在内容提供商与平台4900a和/或显示器4980之间经由网络4999或直接单向或双向通信内容的任何其它类似装置。将明白,可经由网络4999向以及从***4000中的任何一个组件和内容提供商单向和/或双向地通信内容。内容的示例可包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
内容服务装置4900b接收内容,例如包括媒体信息、数字信息和/或其它内容的有线电视节目。内容提供商的示例可包括任何有线电视或***或无线电或互联网内容提供商。提供的示例不是要限制实施例。
在实施例中,平台4900a可从具有一个或多个导航特征的导航控制器4920接收控制信号。可利用导航控制器4920的导航特征与例如用户界面4880交互。在实施例中,导航控制器4920可以是指向装置,它可以是允许用户将空间(例如,连续的多维)数据输入到计算机的计算机硬件组件(具体来说是人机交互装置)。诸如图形用户界面(GUI)、电视和监视器的许多***都允许用户利用物理姿势来控制数据并将数据提供给计算机或电视。
导航控制器4920的导航特征的移动可通过显示在显示器上的指针、光标、聚焦环或其它可视指示符的移动来在显示器(例如,显示器4980)上重复。例如,在软件应用4940的控制下,可将位于导航控制器4920上的导航特征映射到显示在用户界面4880上的虚拟导航特征。在实施例中,导航控制器4920可以不是独立组件,而是集成到平台4900a和/或显示器4980中。但是,实施例不限于本文中示出或描述的元件或上下文。
在实施例中,驱动器(未示出)可包括使得用户能够在初始启动之后通过例如触摸按钮(在启用时)立即打开和关闭平台4900a(如电视)的技术。平台逻辑可在平台4900a“关闭”时允许平台4900a向媒体适配器或其它内容服务装置4900b或内容递送装置4900c流播内容。另外,芯片组4955可包括例如支持5.1环绕立体声音频和/或高清7.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成式图形平台的图形驱动器。在实施例中,图形驱动器可包括***组件互连(PCI)Express图形卡。
在各种实施例中,***4000中所示的任何一个或多个组件都可集成。例如,平台4900a和内容服务装置4900b可集成,或者平台4900a和内容递送装置4900c可集成,或者平台4900a、内容服务装置4900b和内容递送装置4900c可集成。在各种实施例中,平台4900a和显示器4980可以是集成单元。例如,显示器4980和内容服务装置4900b可集成,或者显示器4980和内容递送装置4900c可被集成。这些示例不是要限制实施例。
在各种实施例中,***4000可作为无线***、有线***或两者的组合来实现。当作为无线***实现时,***4000可包括适合通过诸如一个或多个天线、传送器、接收器、收发器、放大器、过滤器、控制逻辑等的无线共享介质通信的组件和接口。无线共享介质的示例可包括诸如RF频谱等的无线频谱的部分。当作为有线***实现时,***4000可包括适合通过诸如I/O适配器、用于连接I/O适配器与对应有线通信介质的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等的有线通信介质通信的组件和接口。有线通信介质的示例可包括电线、电缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
平台4900a可建立一个或多个逻辑或物理通道以便通信信息。信息可包括媒体信息和控制信息。媒体信息可以指代表打算给用户的内容的任何数据。内容的示例可包括例如来自语音对话的数据、视频会议、流播视频、电子邮件(“email”)消息、语音信箱消息、字母数字符号、图形、图像、视频、文本等。来自语音对话的数据可以是例如语音信息、静默周期、背景噪音、舒适噪音、音调等。控制信息可以指代表打算给自动化***的命令、指令或控制字的任何数据。例如,控制信息可用于通过***路由媒体信息、或命令节点以预定方式处理媒体信息。但是,实施例不限于图13中示出或描述的元素或上下文。
如上所述,***4000可以用变化的物理样式或形状因子来实施。图14示出可在其中实施***4000的小型形状因子装置5000的实施例。例如,在实施例中,装置5000可作为具有无线能力的移动计算装置来实现。移动计算装置可以指例如具有处理***和移动电源(例如,一个或多个电池)的任何装置。
如上所述,移动计算装置的示例可包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能装置(例如,智能电话、智能平板或智能电视)、移动互联网装置(MID)、消息传递装置、数据通信装置等。
移动计算装置的示例还可包括布置成由人穿戴的计算机,例如腕带式计算机、手指式计算机、环形计算机、眼镜式计算机、腰带式计算机、臂带式计算机、鞋式计算机、服装式计算机和其它可穿戴计算机。例如,在实施例中,移动计算装置可作为能够执行计算机应用以及语音通信和/或数据通信的智能电话来实现。尽管可以用举例作为智能电话实现的移动计算装置来描述一些实施例,但是可明白,也可利用其它无线移动计算装置来实现其它实施例。实施例在这方面不受限制。
如图14所示,装置5000可包括显示器5980、导航控制器5920a、用户界面5880、外壳5905、I/O装置5920b和天线5998。显示器5980可包括用于显示适合移动计算装置的信息的任何合适的显示器单元,并且可以与图13中的显示器4980相同或类似。导航控制器5920a可包括可用于与用户界面5880交互的一个或多个导航特征,并且可以与图13中的导航控制器4920相同或类似。I/O装置5920b可包括用于将信息输入到移动计算装置的任何合适的I/O装置。I/O装置5920b的示例可包括字母数字键盘、数字小键盘、触摸板、输入按键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别装置和软件等。还可通过麦克风将信息输入到装置5000。可通过语音识别装置将该信息数字化。实施例在这方面不受限制。
更一般来说,本文中描述和描绘的计算装置的各种元件可包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可包括装置、逻辑装置、组件、处理器、微处理器、电路、处理器组件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体装置、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、***程序、软件开发程序、机器程序、操作***软件、中间件、固件、软件模块、例行程序、子例行程序、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。但是,根据给定实现的需要,确定是否利用硬件元件和/或软件元件来实现实施例可根据任意数量的因素改变,例如所需的计算速率、功率等级、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束。
一些实施例可以利用表述“一个实施例”或“实施例”及其派生词来进行描述。这些术语表示,结合该实施例描述的特定特征、结构或特性包含在至少一个实施例中。本说明书的各个地方出现短语“在一个实施例中”时不一定都指相同实施例。此外,一些实施例可利用表述“耦合”和“连接”及其派生词来进行描述。这些术语不一定要彼此同义。例如,一些实施例可利用术语“连接”和/或“耦合”来进行描述,以便指示两个或两个以上元件彼此直接物理或电接触。但是,术语“耦合”也可以表示两个或两个以上元件彼此不直接接触,但仍然彼此共同协作或交互。此外,来自不同实施例的方面或元素可组合。
应强调,提供本公开的摘要是为了允许阅读者能够快速确定本技术公开的本质。提交时要了解,它不是用于解释或限制权利要求的范围或含义。另外,在以上详细描述中可见,出于使本公开流畅的目的,各个特征集中在单个实施例中。本公开方法不是要解释为反映这样的意图,即,要求权利的实施例需要比在每个权利要求中明确记载的特征更多的特征。而是,如随附权利要求所反映,发明主题在于比单个公开实施例的所有特征更少的特征。因此,随附权利要求由此并入到详细描述中,其中每个权利要求独立代表单独的实施例。在随附权利要求中,术语“包括(including)”和“在其中(in which)”分别用作相应术语“包含(comprising)”和“其中(wherein)”的简单等效词。此外,术语“第一”、“第二”、“第三”等只是用作标记,而不是要对其对象强加数值要求。
上文的描述包括所公开的体系结构的示例。当然,不可能描述组件和/或方法的每种想得到的组合,但是本领域技术人员可意识到,许多进一步的组合和排列是可能的。因此,新颖体系结构意欲包含落在随附权利要求的精神和范围内的所有这些改变、修改和变化。详细公开现在转到提供关于进一步实施例的示例。下文提供的示例不是要限制。
在示例1中,一种用于从3D模型数据渲染2D影像的装置包括:裁剪组件,用于在由着色像素覆盖的从3D模型得出的2D屏幕图像的第一区域内裁剪2D屏幕图像的第一可见基元,以便形成代表第一区域与第一可见基元的交叉的第一多边形;第一内插组件,用于将第一可见基元的顶点的至少一个属性内插到第一多边形的每个顶点;以及第二内插组件,用于将第一多边形的顶点的颜色值内插到由屏幕图像的屏幕像素覆盖的第二区域内的点,第二区域小于第一区域并且至少部分地与第一区域重合。
在包括示例1的主题的示例2中,该装置可包括像素定义组件,它用于基于2D屏幕图像的众多可见基元的特性确定第一区域的大小,所述众多可见基元包括第一可见基元。
在包括示例1-2中任一示例的主题的示例3中,该点可位于屏幕像素的中心,并且着色组件基于该点相对于由裁剪组件形成的众多多边形中的每个多边形的边界的位置从众多多边形的顶点中选择用于内插这至少一个属性的第一多边形的顶点,所述众多多边形包括第一多边形。
在包括示例1-3中任一示例的主题的示例4中,该点可与落在屏幕像素内的样本的位置重合,在光栅化第一可见基元时采用该样本。
在包括示例1-4中任一示例的主题的示例5中,该装置可包括用于从内插到第一多边形的顶点的这至少一个属性得出第一多边形的顶点的颜色值的着色组件。
在包括示例1-5中任一示例的主题的示例6中,裁剪组件可裁剪第一区域内的2D屏幕图像的第二可见基元以便形成代表第一区域和第二可见基元的交叉的第二多边形,第二多边形与第一多边形共享边缘的至少一部分。
在包括示例1-6中任一示例的主题的示例7中,第一多边形的顶点可与第二多边形的顶点共享沿着色像素的边界的位置。
在包括示例1-7中任一示例的主题的示例8中,该装置可包括光栅化组件,它用于光栅化3D模型的基元以便标识在2D屏幕图像中可见的众多可见基元,所述众多可见基元包括第一可见基元。
在包括示例1-8中任一示例的主题的示例9中,光栅化组件可将屏幕图像的像素分辨率设置成显示器的像素分辨率。
在包括示例1-9中任一示例的主题的示例10中,该装置可包括用于呈现屏幕图像的显示器。
在包括示例1-10中任一示例的主题的示例11中,该装置可包括用于将代表屏幕图像的屏幕图像数据传送给另一个装置的接口。
在示例12中,一种用于从3D模型数据渲染2D影像的装置包括:裁剪组件,用于在由着色像素覆盖的从3D模型得出的2D屏幕图像的区域内裁剪2D屏幕图像的第一可见基元和第二可见基元,以便形成代表由着色像素覆盖的区域和第一可见基元的交叉的第一多边形,并形成代表由着色像素覆盖的区域和第二可见基元的交叉的第二多边形;第一内插组件,用于将第一可见基元的顶点的至少一个属性内插到第一多边形的每个顶点,并将第二可见基元的顶点的这至少一个属性内插到第二多边形的每个顶点;以及第二内插组件,用于将第一多边形的顶点的颜色值内插到由屏幕图像的第一屏幕像素覆盖的区域内的第一点,并将第二多边形的顶点的颜色值内插到由屏幕图像的第二屏幕像素覆盖的区域内的第二点,由第一和第二屏幕像素覆盖的区域中的每个区域均与由着色像素覆盖的区域重合。
在包括示例12的主题的示例13中,第一点可位于第一屏幕像素的中心,第二点可位于第二屏幕像素的中心,并且第二内插组件可基于第一点相对于由裁剪组件形成的众多多边形中的每个多边形的边界的位置从众多多边形的顶点中选择用于内插这至少一个属性的第一多边形的顶点,并可基于第二点相对于众多多边形中的每个多边形的边界的位置从众多多边形的顶点中选择用于内插这至少一个属性的第二多边形的顶点,所述众多多边形包括第一和第二多边形。
在包括示例12-13中任一示例的主题的示例14中,第二可见基元可与第一可见基元共享边缘的至少第一部分。
在包括示例12-14中任一示例的主题的示例15中,裁剪组件可裁剪第一和第二可见基元,以使得第一和第二多边形能够共享该边缘的至少第二部分。
在包括示例12-15中任一示例的主题的示例16中,裁剪组件可裁剪第一和第二可见基元,以使得第一多边形的顶点能够与第二多边形的顶点共享沿着色像素的边界的位置。
在包括示例12-16中任一示例的主题的示例17中,该装置可包括用于呈现屏幕图像的显示器。
在包括示例12-17中任一示例的主题的示例18中,该装置可包括用于将屏幕图像的像素分辨率设置成显示器的像素分辨率的光栅化组件。
在包括示例12-18中任一示例的主题的示例19中,该装置可包括用于将代表屏幕图像的屏幕图像数据传送到另一个装置的接口。
在包括示例12-19中任一示例的主题的示例20中,该装置可包括用于从这另一个装置接收屏幕图像的平面的取向的指示的光栅化组件。
在示例21中,一种用于从3D模型数据渲染2D影像的计算机实现的方法包括:在由着色像素覆盖的从3D模型得出的2D屏幕图像的第一区域内裁剪2D屏幕图像的第一可见基元,以便形成代表第一区域和第一可见基元的交叉的第一多边形;将第一可见基元的顶点的至少一个属性内插到第一多边形的每个顶点;以及将第一多边形的顶点的颜色值内插到由屏幕图像的屏幕像素覆盖的第二区域内的点,第二区域小于第一区域并且至少部分地与第一区域重合。
在包括示例21的主题的示例22中,该方法可包括基于2D屏幕图像的众多可见基元的特性确定第一区域的大小,所述众多可见基元包括第一可见基元。
在包括示例21-22中任一示例的主题的示例23中,该点可位于屏幕像素的中心,并且该方法可包括基于该点相对于由裁剪组件形成的众多多边形中的每个多边形的边界的位置从众多多边形的顶点中选择用于内插这至少一个属性的第一多边形的顶点,所述众多多边形包括第一多边形。
在包括示例21-23中任一示例的主题的示例24中,该点可与落在屏幕像素内的样本的位置重合,在光栅化第一可见基元时采用该样本。
在包括示例21-24中任一示例的主题的示例25中,该方法可包括从内插到第一多边形的顶点的这至少一个属性得出第一多边形的顶点的颜色值。
在包括示例21-25中任一示例的主题的示例26中,该方法可包括裁剪第一区域内的2D屏幕图像的第二可见基元以便形成代表第一区域和第二可见基元的交叉的第二多边形,第二多边形与第一多边形共享边缘的至少一部分。
在包括示例21-26中任一示例的主题的示例27中,第一多边形的顶点可与第二多边形的顶点共享沿着色像素的边界的位置。
在包括示例21-27中任一示例的主题的示例28中,该方法可包括在显示器上呈现屏幕图像。
在包括示例21-28中任一示例的主题的示例29中,该方法可包括将代表屏幕图像的屏幕图像数据传送到另一个装置。
在包括示例21-29中任一示例的主题的示例30中,该方法可包括光栅化3D模型的基元以便标识在2D屏幕图像中可见的众多可见基元,所述众多可见基元包括第一可见基元。
在示例31中,至少一种机器可读存储介质包括指令,这些指令在由计算装置执行时使得计算装置执行以下操作:在由着色像素覆盖的从3D模型得出的2D屏幕图像的第一区域内裁剪2D屏幕图像的第一可见基元,以便形成代表第一区域和第一可见基元的交叉的第一多边形;将第一可见基元的顶点的至少一个属性内插到第一多边形的每个顶点;以及将第一多边形的顶点的颜色值内插到由屏幕图像的屏幕像素覆盖的第二区域内的点,第二区域小于第一区域并且至少部分地与第一区域重合。
在包括示例31的主题的示例32中,可使得计算装置基于2D屏幕图像的众多可见基元的特性确定第一区域的大小,所述众多可见基元包括第一可见基元。
在包括示例31-32中任一示例的主题的示例33中,该点可位于屏幕像素的中心,并且可使得计算装置基于该点相对于由裁剪组件形成的众多多边形中的每个多边形的边界的位置从众多多边形的顶点中选择用于内插这至少一个属性的第一多边形的顶点,所述众多多边形包括第一多边形。
在包括示例31-33中任一示例的主题的示例34中,该点可与落在屏幕像素内的样本的位置重合,在光栅化第一可见基元时采用该样本。
在包括示例31-34中任一示例的主题的示例35中,可使得计算装置从内插到第一多边形的顶点的这至少一个属性得出第一多边形的顶点的颜色值。
在包括示例31-35中任一示例的主题的示例36中,可使得计算装置裁剪第一区域内的2D屏幕图像的第二可见基元以便形成代表第一区域和第二可见基元的交叉的第二多边形,第二多边形与第一多边形共享边缘的至少一部分。
在包括示例31-36中任一示例的主题的示例37中,第一多边形的顶点可与第二多边形的顶点共享沿着色像素的边界的位置。
在包括示例31-37中任一示例的主题的示例38中,可使得计算装置在显示器上呈现屏幕图像。
在包括示例31-38中任一示例的主题的示例39中,可使得计算装置将代表屏幕图像的屏幕图像数据传送到另一个装置。
在包括示例31-39中任一示例的主题的示例40中,可使得计算装置将屏幕图像的像素分辨率设置成显示器的像素分辨率。
在包括示例31-40中任一示例的主题的示例41中,可使得计算装置光栅化3D模型的基元以便标识在2D屏幕图像中可见的众多可见基元,所述众多可见基元包括第一可见基元。
在示例42中,至少一种机器可读存储介质可包括指令,这些指令在由计算装置执行时使得计算装置执行以上任一方法。
在示例43中,一种用于从3D模型数据渲染2D影像的装置可包括用于执行以上任一方法的部件。
Claims (35)
1.一种用于从三维3D模型数据渲染二维2D影像的装置,包括:
裁剪组件,用于在由着色像素覆盖的从3D模型得出的2D屏幕图像的第一区域内裁剪所述2D屏幕图像的第一可见基元,以便形成代表所述第一区域和所述第一可见基元的交叉的第一多边形;
第一内插组件,用于将所述第一可见基元的顶点的至少一个属性内插到所述第一多边形的每个顶点;以及
第二内插组件,用于将所述第一多边形的所述顶点的颜色值内插到由所述屏幕图像的屏幕像素覆盖的第二区域内的点,所述第二区域小于所述第一区域并且至少部分地与所述第一区域重合。
2.如权利要求1所述的装置,所述点位于所述屏幕像素的中心,并且所述装置还包括着色组件,所述着色组件基于所述点相对于由所述裁剪组件形成的多个多边形中的每个多边形的边界的位置从所述多个多边形的顶点中选择用于内插所述至少一个属性的所述第一多边形的所述顶点,所述多个多边形包括所述第一多边形。
3.如权利要求1所述的装置,所述点与落在所述屏幕像素内的样本的位置重合,在光栅化所述第一可见基元时采用所述样本。
4.如权利要求1所述的装置,包括用于从内插到所述第一多边形的所述顶点的所述至少一个属性得出所述第一多边形的所述顶点的所述颜色值的着色组件。
5.如权利要求1所述的装置,所述裁剪组件用于裁剪所述第一区域内的所述2D屏幕图像的第二可见基元以便形成代表所述第一区域和所述第二可见基元的交叉的第二多边形,所述第二多边形与所述第一多边形共享边缘的至少一部分。
6.如权利要求5所述的装置,所述第一多边形的顶点与所述第二多边形的顶点共享沿所述着色像素的边界的位置。
7.如权利要求1所述的装置,包括光栅化组件,它用于光栅化所述3D模型的基元以便标识在所述2D屏幕图像中可见的多个可见基元,所述多个可见基元包括所述第一可见基元。
8.如权利要求1所述的装置,包括用于呈现所述屏幕图像的显示器。
9.一种用于从三维3D模型数据渲染二维2D影像的装置,包括:
裁剪组件,用于在由着色像素覆盖的从3D模型得出的2D屏幕图像的区域内裁剪所述2D屏幕图像的第一可见基元和第二可见基元,以便形成代表由所述着色像素覆盖的所述区域和所述第一可见基元的交叉的第一多边形,并形成代表由所述着色像素覆盖的所述区域和所述第二可见基元的交叉的第二多边形;
第一内插组件,用于将所述第一可见基元的顶点的至少一个属性内插到所述第一多边形的每个顶点,并将所述第二可见基元的顶点的所述至少一个属性内插到所述第二多边形的每个顶点;以及
第二内插组件,用于将所述第一多边形的所述顶点的颜色值内插到由所述屏幕图像的第一屏幕像素覆盖的区域内的第一点,并将所述第二多边形的所述顶点的颜色值内插到由所述屏幕图像的第二屏幕像素覆盖的区域内的第二点,由所述第一和第二屏幕像素覆盖的所述区域中的每个区域均与由所述着色像素覆盖的所述区域重合。
10.如权利要求9所述的装置,所述第一点位于所述第一屏幕像素的中心,所述第二点位于所述第二屏幕像素的中心,并且所述第二内插组件基于所述第一点相对于由所述裁剪组件形成的多个多边形中的每个多边形的边界的位置从所述多个多边形的顶点中选择用于将所述至少一个属性内插到所述第一点的所述第一多边形的顶点,并基于所述第二点相对于所述多个多边形中的每个多边形的边界的位置从所述多个多边形的顶点中选择用于将所述至少一个属性内插到所述第二点的所述第二多边形的顶点,所述多个多边形包括所述第一和第二多边形。
11.如权利要求9所述的装置,所述第二可见基元与所述第一可见基元共享边缘的至少第一部分。
12.如权利要求11所述的装置,所述裁剪组件裁剪所述第一和第二可见基元,以使得所述第一和第二多边形能够共享所述边缘的至少第二部分。
13.如权利要求12所述的装置,所述裁剪组件裁剪所述第一和第二可见基元,以使得所述第一多边形的顶点能够与所述第二多边形的顶点共享沿所述着色像素的边界的位置。
14.如权利要求9所述的装置,包括用于将代表所述屏幕图像的屏幕图像数据传送到另一个装置的接口。
15.如权利要求14所述的装置,包括用于从所述另一个装置接收所述屏幕图像的平面的取向的指示的光栅化组件。
16.一种用于从三维3D模型数据渲染二维2D影像的计算机实现的方法,包括:
在由着色像素覆盖的从3D模型得出的2D屏幕图像的第一区域内裁剪所述2D屏幕图像的第一可见基元,以便形成代表所述第一区域和所述第一可见基元的交叉的第一多边形;
将所述第一可见基元的顶点的至少一个属性内插到所述第一多边形的每个顶点;以及
将所述第一多边形的所述顶点的颜色值内插到由所述屏幕图像的屏幕像素覆盖的第二区域内的点,所述第二区域小于所述第一区域并且至少部分地与所述第一区域重合。
17.如权利要求16所述的计算机实现的方法,所述方法包括基于所述2D屏幕图像的多个可见基元的特性确定所述第一区域的大小,所述多个可见基元包括所述第一可见基元。
18.如权利要求16所述的计算机实现的方法,所述点位于所述屏幕像素的中心,并且所述方法包括基于所述点相对于通过所述裁剪形成的多个多边形中的每个多边形的边界的位置从所述多个多边形的顶点中选择用于内插所述至少一个属性的所述第一多边形的所述顶点,并且所述多个多边形包括所述第一多边形。
19.如权利要求16所述的计算机实现的方法,所述点与落在所述屏幕像素内的样本的位置重合,在光栅化所述第一可见基元时采用所述样本。
20.如权利要求16所述的计算机实现的方法,所述方法包括从内插到所述第一多边形的所述顶点的所述至少一个属性得出所述第一多边形的所述顶点的所述颜色值。
21.如权利要求16所述的计算机实现的方法,所述方法包括裁剪所述第一区域内的所述2D屏幕图像的第二可见基元以便形成代表所述第一区域和所述第二可见基元的交叉的第二多边形,所述第二多边形与所述第一多边形共享边缘的至少一部分。
22.如权利要求21所述的计算机实现的方法,所述第一多边形的顶点与所述第二多边形的顶点共享沿所述着色像素的边界的位置。
23.如权利要求16所述的计算机实现的方法,所述方法包括将代表所述屏幕图像的屏幕图像数据传送到另一个装置。
24.如权利要求16所述的计算机实现的方法,所述方法包括光栅化所述3D模型的基元以便标识在所述2D屏幕图像中可见的多个可见基元,所述多个可见基元包括所述第一可见基元。
25.一种从三维3D模型数据渲染二维2D影像的装置,包括用于执行如权利要求16-24中的任一项权利要求所述的方法的部件。
26.一种用于从三维3D模型数据渲染二维2D影像的设备,包括:
用于在由着色像素覆盖的从3D模型得出的2D屏幕图像的第一区域内裁剪所述2D屏幕图像的第一可见基元,以便形成代表所述第一区域和所述第一可见基元的交叉的第一多边形的部件;
用于将所述第一可见基元的顶点的至少一个属性内插到所述第一多边形的每个顶点的部件;以及
用于将所述第一多边形的所述顶点的颜色值内插到由所述屏幕图像的屏幕像素覆盖的第二区域内的点的部件,所述第二区域小于所述第一区域并且至少部分地与所述第一区域重合。
27.如权利要求26所述的设备,所述设备包括用于基于所述2D屏幕图像的多个可见基元的特性确定所述第一区域的大小的部件,所述多个可见基元包括所述第一可见基元。
28.如权利要求26所述的设备,所述点位于所述屏幕像素的中心,并且所述设备包括用于基于所述点相对于通过所述裁剪形成的多个多边形中的每个多边形的边界的位置从所述多个多边形的顶点中选择用于内插所述至少一个属性的所述第一多边形的所述顶点的部件,并且所述多个多边形包括所述第一多边形。
29.如权利要求26所述的设备,所述点与落在所述屏幕像素内的样本的位置重合,在光栅化所述第一可见基元时采用所述样本。
30.如权利要求26所述的设备,所述设备包括用于从内插到所述第一多边形的所述顶点的所述至少一个属性得出所述第一多边形的所述顶点的所述颜色值的部件。
31.如权利要求26所述的设备,所述设备包括用于裁剪所述第一区域内的所述2D屏幕图像的第二可见基元以便形成代表所述第一区域和所述第二可见基元的交叉的第二多边形的部件,所述第二多边形与所述第一多边形共享边缘的至少一部分。
32.如权利要求31所述的设备,所述第一多边形的顶点与所述第二多边形的顶点共享沿所述着色像素的边界的位置。
33.如权利要求26所述的设备,所述设备包括用于将代表所述屏幕图像的屏幕图像数据传送到另一个装置的部件。
34.如权利要求26所述的设备,所述设备包括用于光栅化所述3D模型的基元以便标识在所述2D屏幕图像中可见的多个可见基元的部件,所述多个可见基元包括所述第一可见基元。
35.一种计算机可读介质,其上存储有指令,所述指令在被运行时使计算装置执行如权利要求16-24中的任一项权利要求所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/319472 | 2014-06-30 | ||
US14/319,472 US9767602B2 (en) | 2014-06-30 | 2014-06-30 | Techniques for reduced pixel shading |
PCT/US2015/032801 WO2016003556A1 (en) | 2014-06-30 | 2015-05-28 | Techniques for reduced pixel shading |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106415668A CN106415668A (zh) | 2017-02-15 |
CN106415668B true CN106415668B (zh) | 2020-06-26 |
Family
ID=54931120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580028987.0A Expired - Fee Related CN106415668B (zh) | 2014-06-30 | 2015-05-28 | 用于减少的像素着色的技术 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9767602B2 (zh) |
EP (1) | EP3161799A4 (zh) |
JP (1) | JP6326152B2 (zh) |
KR (1) | KR102225281B1 (zh) |
CN (1) | CN106415668B (zh) |
RU (1) | RU2666300C2 (zh) |
SG (1) | SG11201610023WA (zh) |
WO (1) | WO2016003556A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204746B (zh) * | 2016-06-23 | 2018-06-19 | 广州增强信息科技有限公司 | 一种可实现3d模型实时上色的增强现实*** |
US10672185B2 (en) | 2018-07-13 | 2020-06-02 | Nvidia Corporation | Multi-rate shading using replayed screen space tiles |
US10810777B1 (en) * | 2019-03-28 | 2020-10-20 | Google Llc | Feature erasure |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101529473A (zh) * | 2006-10-23 | 2009-09-09 | 高通股份有限公司 | 图形处理单元中的三维裁剪 |
CN101578629A (zh) * | 2007-01-10 | 2009-11-11 | 高通股份有限公司 | 三维图形管线的自动负载平衡 |
CN103679776A (zh) * | 2012-09-12 | 2014-03-26 | 富士通半导体股份有限公司 | 图像处理设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6501481B1 (en) * | 1998-07-28 | 2002-12-31 | Koninklijke Philips Electronics N.V. | Attribute interpolation in 3D graphics |
US6867778B2 (en) * | 2002-02-28 | 2005-03-15 | Sun Microsystems, Inc. | End point value correction when traversing an edge using a quantized slope value |
US8207972B2 (en) * | 2006-12-22 | 2012-06-26 | Qualcomm Incorporated | Quick pixel rendering processing |
US8686999B2 (en) | 2009-02-02 | 2014-04-01 | Microsoft Corporation | Dynamic fragment coverage antialiasing |
US8436854B2 (en) * | 2009-05-29 | 2013-05-07 | Qualcomm Incorporated | Graphics processing unit with deferred vertex shading |
US20110216068A1 (en) * | 2010-03-08 | 2011-09-08 | Sathe Rahul P | Edge processing techniques |
US8514235B2 (en) | 2010-04-21 | 2013-08-20 | Via Technologies, Inc. | System and method for managing the computation of graphics shading operations |
US20120229460A1 (en) | 2011-03-12 | 2012-09-13 | Sensio Technologies Inc. | Method and System for Optimizing Resource Usage in a Graphics Pipeline |
RU2467395C1 (ru) * | 2011-07-11 | 2012-11-20 | Российская Федерация, От Имени Которой Выступает Министерство Промышленности И Торговли Российской Федерации | Способ создания изображений трехмерных объектов для систем реального времени |
US9019280B2 (en) | 2011-07-22 | 2015-04-28 | Qualcomm Incorporated | Area-based rasterization techniques for a graphics processing system |
KR101582578B1 (ko) * | 2014-01-20 | 2016-01-11 | (주)넥셀 | 그래픽 처리 장치 및 방법 |
US9547918B2 (en) * | 2014-05-30 | 2017-01-17 | Intel Corporation | Techniques for deferred decoupled shading |
-
2014
- 2014-06-30 US US14/319,472 patent/US9767602B2/en active Active
-
2015
- 2015-05-28 WO PCT/US2015/032801 patent/WO2016003556A1/en active Application Filing
- 2015-05-28 JP JP2016568915A patent/JP6326152B2/ja active Active
- 2015-05-28 KR KR1020167033429A patent/KR102225281B1/ko active IP Right Grant
- 2015-05-28 EP EP15815625.7A patent/EP3161799A4/en not_active Withdrawn
- 2015-05-28 SG SG11201610023WA patent/SG11201610023WA/en unknown
- 2015-05-28 CN CN201580028987.0A patent/CN106415668B/zh not_active Expired - Fee Related
- 2015-05-28 RU RU2016146417A patent/RU2666300C2/ru not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101529473A (zh) * | 2006-10-23 | 2009-09-09 | 高通股份有限公司 | 图形处理单元中的三维裁剪 |
CN101578629A (zh) * | 2007-01-10 | 2009-11-11 | 高通股份有限公司 | 三维图形管线的自动负载平衡 |
CN103679776A (zh) * | 2012-09-12 | 2014-03-26 | 富士通半导体股份有限公司 | 图像处理设备 |
Non-Patent Citations (1)
Title |
---|
Decoupled Deferred Shading for Hardware Raterization;Gabor Liktor等;《In Proceedings of the ACM SIGGRAPH symposium on Interactive 3D Graphics and Games》;20120311;第144-145页 * |
Also Published As
Publication number | Publication date |
---|---|
KR20170005033A (ko) | 2017-01-11 |
US20150379761A1 (en) | 2015-12-31 |
CN106415668A (zh) | 2017-02-15 |
EP3161799A1 (en) | 2017-05-03 |
US9767602B2 (en) | 2017-09-19 |
JP6326152B2 (ja) | 2018-05-16 |
RU2016146417A (ru) | 2018-05-28 |
RU2666300C2 (ru) | 2018-09-06 |
WO2016003556A1 (en) | 2016-01-07 |
RU2016146417A3 (zh) | 2018-05-28 |
EP3161799A4 (en) | 2017-11-22 |
KR102225281B1 (ko) | 2021-03-08 |
JP2017523497A (ja) | 2017-08-17 |
SG11201610023WA (en) | 2016-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10573275B2 (en) | Techniques for determining an adjustment for a visual output | |
US10614549B2 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
KR102154456B1 (ko) | 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용 | |
US9449362B2 (en) | Techniques for reducing accesses for retrieving texture images | |
JP6328848B2 (ja) | 遅延分離シェーディングのための技術 | |
US9390541B2 (en) | Programmable tile shader | |
CN105550973B (zh) | 图形处理单元、图形处理***及抗锯齿处理方法 | |
KR20170040698A (ko) | 그래픽스 파이프라인을 수행하는 방법 및 장치 | |
CN107403461B (zh) | 使用随机光栅化生成随机采样分布的采样设备和方法 | |
CN106415668B (zh) | 用于减少的像素着色的技术 | |
US9489771B2 (en) | Techniques for spatially sorting graphics information | |
US9262841B2 (en) | Front to back compositing | |
US20220068004A9 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
US9390463B2 (en) | Techniques for reducing memory bandwidth for display composition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200626 Termination date: 20210528 |
|
CF01 | Termination of patent right due to non-payment of annual fee |