CN108475497B - 用于渲染多个细节等级的系统和方法 - Google Patents
用于渲染多个细节等级的系统和方法 Download PDFInfo
- Publication number
- CN108475497B CN108475497B CN201680078340.3A CN201680078340A CN108475497B CN 108475497 B CN108475497 B CN 108475497B CN 201680078340 A CN201680078340 A CN 201680078340A CN 108475497 B CN108475497 B CN 108475497B
- Authority
- CN
- China
- Prior art keywords
- electronic device
- memory
- data
- detail
- frame buffer
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 120
- 238000009877 rendering Methods 0.000 title description 111
- 230000015654 memory Effects 0.000 claims abstract description 391
- 239000000872 buffer Substances 0.000 claims abstract description 286
- 238000012545 processing Methods 0.000 claims description 113
- 239000012634 fragment Substances 0.000 claims description 22
- 238000011156 evaluation Methods 0.000 claims description 16
- 239000000203 mixture Substances 0.000 claims description 10
- 238000000354 decomposition reaction Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 51
- 238000010586 diagram Methods 0.000 description 42
- 230000008859 change Effects 0.000 description 26
- 230000003287 optical effect Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 14
- 238000013459 approach Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000002156 mixing Methods 0.000 description 9
- 230000003190 augmentative effect Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004397 blinking Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005043 peripheral vision Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
- 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
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3871—Asynchronous instruction pipeline, e.g. using handshake signals between stages
-
- 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
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- 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
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
-
- 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
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/222—Control of the character-code memory
- G09G5/227—Resolution modifying circuits, e.g. variable screen formats, resolution change between memory contents and display screen
-
- 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
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- 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
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Computer Security & Cryptography (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明描述一种电子装置。所述电子装置包含存储器。所述电子装置还包含超长指令字VLIW电路。所述VLIW电路包含异步存储器控制器。所述异步存储器控制器经配置以异步地存取所述存储器来渲染不同细节等级。所述电子装置可包含不均匀帧缓冲器控制器,其经配置以动态地存取帧缓冲器的不同子集。所述不同子集可对应于所述不同细节等级。
Description
技术领域
本公开大体上涉及电子装置。更具体地说,本公开涉及用于渲染多个细节等级的系统和方法。
背景技术
一些电子装置(例如智能电话、计算机、电视机、汽车、视频游戏系统、媒体播放器、相机、蜂窝式电话、个人相机、机顶盒、投影仪、监视器等)显示图像。举例来说,智能电话可捕获和/或处理静态图像和/或视频图像。处理图像可能需要相对较大量的时间、存储器和能量资源。所需要的资源根据处理的复杂度可能不同。
处理大量图像数据可能特别困难。举例来说,大量图像数据可需要相对较大量的资源,例如电力、时间、处理器带宽、存储器和/或货币化成本。如可从此论述观察到,改进图像处理的系统和方法可为有益的。
发明内容
本发明描述一种电子装置。所述电子装置包含存储器。所述电子装置还包含超长指令字(VLIW)电路,其包含异步存储器控制器。所述异步存储器控制器经配置以异步地存取所述存储器来渲染不同细节等级。
所述电子装置可包含不均匀帧缓冲器控制器,其经配置以动态地存取帧缓冲器的不同子集。所述不同子集可对应于所述不同细节等级。所述电子装置可包含显示器,其经配置以呈现所述不同细节等级。
所述不均匀帧缓冲器控制器可经配置以便以与第二区的至少一个像素不同的速率来存取第一区域的至少一个像素。所述第一区和所述第二区可对应于所述不同的细节等级。所述不均匀帧缓冲器控制器可经配置以在第一像素的处理在进行中且第二像素的处理完成时,实现着色器子例程调换。
所述不均匀帧缓冲器控制器可经配置以用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理所述第二像素的所述第二样本。所述第一像素可具有与第二像素不同数目的样本。所述不均匀帧缓冲器控制器可包含于合成/分解(C/D)块中,可包含于存储器中,或可与C/D块和存储器分开。
VLIW电路可包含曲面细分控制着色器(TCS)、曲面细分器(TESS)、曲面细分评估着色器(TES)、几何着色器(GS)、光栅化器和片段着色器(FS)。TCS、TESS、TES、GS、光栅化器和FS中的一或多者可包含异步存储器控制器。
所述存储器可包含于VLIW电路中。所述异步存储器控制器可经配置以异步地存取所述存储器中的细节等级(LOD)参数。
VLIW电路可包含曲面细分控制着色器(TCS)、曲面细分器(TESS)、曲面细分评估着色器(TES)、几何着色器(GS)、光栅化器、片段着色器(FS)和铺瓦器。所述TCS、TESS、TES、GS、光栅化器、FS和平铺器中的一或多者可包含异步存储器控制器。
所述存储器可为系统存储器。所述异步存储器控制器可经配置以异步地存取所述存储器中的细节等级(LOD)参数。所述异步存储器控制器可经配置以在数据集的处理期间异步地存取参数数据。
所述VLIW电路可经配置以跨越单个数据集中的第一区域与第二区之间的区边界执行不均匀细节等级曲面细分。所述第一区和所述第二区可对应于不同的细节等级。所述VLIW电路可经配置以在基于眼睛跟踪处理所述单个数据集期间,在绘制调用的细节等级改变时,执行单个数据集中的不均匀细节等级曲面细分。
VLIW电路可经配置以在单个绘制调用中渲染不同的细节等级。所述电子装置可包含帧缓冲器,其经配置以将具有不同细节等级的像素存储在帧缓冲器的不同子集中。
还描述一种由电子装置执行的方法。所述方法包含获得几何数据。所述方法还包含异步存取存储器以渲染不同的细节等级。
还描述一种计算机程序产品。所述计算机程序产品包含具有指令的非暂时性有形计算机可读媒体。所述指令包含用于致使电子装置获得几何数据的代码。所述指令还包含用于致使所述电子装置异步地存取存储器以渲染不同的细节等级的代码。
还描述一种设备。所述设备包含用于获得几何数据的装置。所述设备还包含用于异步存取存储器以渲染不同的细节等级的装置。
附图说明
图1是说明其中可实施用于渲染多个细节等级的系统和方法的电子装置的一个配置的框图;
图2是说明用于渲染多个细节等级的方法的一种配置的流程图;
图3是说明其中可实施用于渲染多个细节等级的系统和方法的电子装置的一个配置的框图;
图4是说明不均匀帧缓冲器的一个实例的图;
图5是说明用于渲染多个细节等级的方法的较具体配置的流程图;
图6是说明用于注视点渲染的方法的实例的流程图;
图7说明注视点渲染的一个实例;
图8是说明包含超长指令字(VLIW)电路的电子装置的实例的框图;
图9是说明在结合图8描述的架构中实施的本文公开的系统和方法的实例的框图;
图10是说明包含超长指令字(VLIW)电路的电子装置的另一实例的框图;
图11是说明在结合图10描述的架构中实施的本文公开的系统和方法的另一实例的框图;
图12是说明包含超长指令字(VLIW)电路的电子装置的另一实例的框图;
图13是说明在结合图12描述的架构中实施的本文公开的系统和方法的实例的框图;
图14是说明包含超长指令字(VLIW)电路的电子装置的另一实例的框图;
图15是说明在结合图14描述的架构中实施的本文公开的系统和方法的实例的框图;
图16是说明其中可实施用于渲染多个区的系统和方法的电子装置的一个配置的框图;
图17是说明用于渲染多个区的方法的流程图;
图18是说明视窗显示器的一些实例的图;
图19是说明视窗上的区的一个实例的图;
图20是说明视窗上的区的另一实例的图;
图21是说明多个视窗上的区的另一实例的图;
图22是说明用于渲染多个区的方法的较具体配置的流程图;
图23是说明视窗上的区的另一实例的图;以及
图24说明可包含在电子装置内的某些组件。
具体实施方式
本文公开的系统和方法可提供用于渲染多个细节等级的方法。举例来说,可在同一图像中渲染多个不同细节等级。这可改进渲染效率和/或用户体验。如本文中所使用,术语“渲染”及其变化可表示执行用于产生图像数据的一或多个操作。举例来说,渲染可包含执行一或多个操作,以将几何数据(例如几何模型、顶点、多边形等)转换成图像数据(例如像素数据、像素、视觉域数据等)。因渲染而产生图像数据可在显示器上呈现、存储和/或发射。举例来说,经渲染的图像数据可或可不立刻在显示器上呈现。经渲染的图像数据可存储(例如,以供后续在显示器上呈现),可发射到另一装置(例如,其可在显示器上呈现经渲染的图像数据)和/或可在显示器上呈现。
渲染低效可能是一个当前问题。举例来说,虚拟现实(VR)可包含渲染场景的两个视图,其可使内容的渲染速度慢两倍。一种方法可涉及执行眼睛跟踪(其可准确地和便宜地进行);以不同的粗糙度等级渲染三个几何遍次;执行抗混叠;以及将三个不同帧缓冲器质量混合在一起。然而,此方法可为低效的,因为多个几何遍次可重叠,从而使得一些像素被反复地处理。
在一些配置中,本文公开的系统和方法可提供用于单遍次多细节等级(多LOD)渲染(例如单遍次注视点渲染)的方法。举例来说,一些方法可利用曲面细分器(例如曲面细分引擎)、多样本抗混叠(MSAA)、动态核心调度和/或多分辨率(例如不均匀)帧缓冲器(例如帧缓冲器对象(FBO))。在一些方法中,可仅需要一个几何遍次。此改进可降低几何带宽使用率和/或可再用MSAA。
本文公开的系统和方法的一些配置可提供一或多个性能益处。举例来说,可实施硬件,其包含多分辨率FBO和/或动态核心调度。这可减少带宽消耗。举例来说,多个(例如三个)几何遍次可合并成使用曲面细分器(例如曲面细分引擎)的一个几何遍次。在一些配置中,可再用光栅化硬件抗混叠。这可实现对常规内容渲染的改进。另外或替代地,片段核心的动态调度可减少计算。在虚拟现实(VR)和/或增强现实(AR)的背景下,这些改进可特别有益,其中可一次渲染场景的多个视图(例如,对于立体视图)。在一些配置中,VR和AR可组合。本文公开的系统和方法可为有益的,因为图形处理行业探索提供沉浸式体验的方式。
本文公开的系统和方法还描述用于渲染多个区以供在视窗上呈现的方法。在交通工具的背景下,这些系统和方法可特别有益,以在例如驾驶员辅助和自主交通工具(例如自驾驶汽车)的应用中,增强用户体验。
现在参考图式描述各种配置,其中相同的参考标号可指示功能上类似的元件。可以多种不同配置来布置和设计如本文中在图式中所大体描述和说明的系统和方法。因此,对如各图中所表示的若干配置的以下更详细描述无意限制如所主张的范围,而仅表示系统和方法。
图1是说明其中可实施用于渲染多个细节等级的系统和方法的电子装置102的一个配置的框图。电子装置102的实例包含智能电话、计算机(例如台式计算机、膝上型计算机等)、头戴式显示器(例如虚拟现实(VR)头戴装置、增强现实(AR)头戴装置等)、VR装置、AR装置、平板装置、媒体播放器、电视机、汽车、交通工具、相机、视频摄录影机、数码相机、蜂窝式电话、个人相机、动作相机、飞机、无人机、无人驾驶飞行器(UAV)、保健设备、游戏控制台、个人数字助理(PDA)、机顶盒、媒体播放器等。电子装置102可包含一或多个组件或元件。所述组件或元件中的一或多者可在硬件(例如电路)、固件和/或硬件与软件的组合(例如具有指令的处理器)中实施。
在一些配置中,电子装置102可包含超长指令字(VLIW)电路104和系统存储器114。VLIW电路104可为实施指令级并行度的电路(例如处理器)。举例来说,VLIW电路104可并行(例如同时)执行指令。VLIW电路104可耦合到系统存储器114(例如与所述系统存储器电子通信)。VLIW电路104可为用于渲染图像的装置。举例来说,VLIW电路104可将降几何数据(例如几何模型、二维(2D)或三维(3D)几何数据、顶点、多边形等)转换成一或多个图像。所得图像可在一或多个显示器上呈现。举例来说,所述图像可为单个图像以产生2D视图,或可为多个图像(例如立体图像)以产生3D视图。举例来说,VLIW电路104可产生立体视图的多个图像(例如不同视图)(例如一个图像针对左眼,且另一图像针对右眼)。应注意,VLIW电路104可渲染一系列图像(例如视频)。VLIW电路104可在硬件中或在硬件与软件的组合中实施。VLIW电路104的一个实例是图形处理单元(GPU)。
在一些配置中,电子装置102可执行结合图2到5、9、11、13以及15到24中的一或多者描述的功能、程序、方法、步骤等中的一或多者。另外或替代地,电子装置102可包含结合图2到5、9、11、13以及15到24中的一或多者所描述的结构中的一或多者。
系统存储器114可存储指令和/或数据。系统存储器114的实例包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双数据速率同步动态随机存取存储器(DDR SDRAM)、DDR2、DDR3、DDR4、静态随机存取存储器(SRAM)、寄存器、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、NAND闪存存储器、NOR快闪存储器等。VLIW电路104可存取系统存储器114(例如从所述系统存储器读取和/或写入到所述系统存储器)。系统存储器114可由电子装置102的其它元件(如果存在)(例如一或多个处理器(例如中央处理单元(CPU)))存取。系统存储器114可与VLIW电路104分开。可由系统存储器114存储的指令和/或数据的实例可包含指令、命令数据、几何数据(例如顶点、多边形、法线(例如对象定向)、图元、元数据等)、纹理数据、无序存取视图数据、渲染参数(例如细节等级参数)等。在一些配置中,电子装置102(例如系统存储器114)可包含一或多个帧缓冲器。帧缓冲器可缓冲(例如存储)图像数据。经缓冲的图像数据可在一或多个显示器上呈现。
VLIW电路104可包含用于渲染图像的一或多个元件。所述元件的一些实例可包含前端(FE)、顶点处理器(VP、顶点获取器(VF)、顶点着色器(VS)、曲面细分控制着色器(TCS)、外壳着色器(HS)、曲面细分器(例如曲面细分引擎)(TESS)、曲面细分评估着色器(TES)、域着色器(DS)、几何着色器(GS)、光栅化器(Rast)、片段着色器(FS)、像素着色器(PS)、平铺器、渲染输出单元(ROP)、修剪器(Clip)和/或流输出(SOL)等。在一些配置中,这些元件中的一或多者可被称为图形管线106。应注意,在一些配置中,曲面细分器可为固定功能曲面细分引擎。曲面细分器(和/或图形管线的一或多个其它元件)可在硬件、软件或硬件与软件的组合中实施。
VLIW电路104可包含芯片上存储器110。芯片上存储器110可在VLIW电路104上实施以提供快速存储器存取。举例来说,可比系统存储器114更快速地存取芯片上存储器110。芯片上存储器110的实例可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双数据速率同步动态随机存取存储器(DDR SDRAM)、DDR2、DDR3、DDR4、静态随机存取存储器(SRAM)、寄存器、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、NAND闪存存储器、NOR快闪存储器等。在一些配置中,芯片上存储器110可在多个等级(例如1级(L1)高速缓冲存储器、2级(L2)高速缓冲存储器、3级(L3)高速缓冲存储器等)中实施。可由芯片上存储器110存储的数据的实例可包含几何数据(例如顶点、多边形、法线、图元、元数据等)、纹理数据、无序存取视图数据、一或多个渲染参数(例如细节等级(LOD)参数)等。在一些配置中,芯片上存储器110可包含一或多个帧缓冲器(例如,除系统存储器114之外,或作为系统存储器114的另一选择)。帧缓冲器可缓冲(例如存储)图像数据。经缓冲的图像数据可在一或多个显示器上呈现。
在一些配置中,VLIW电路104可包含异步存储器控制器108。异步存储器控制器108可在硬件或硬件与软件的组合中实施。异步存储器控制器108可在VLIW电路104中实施,与VLIW电路分开,或可部分在VLIW电路104中且部分与VLIW电路104分开实施。异步存储器控制器108可经配置以异步地存取存储器(例如芯片上存储器110和/或系统存储器114)。在一些配置中,在异步存储器控制器108可与正处理(例如经曲面细分)的数据集不同步地存取存储器(例如参数、细节等级(LOD)参数等)异步存储器控制器108的意义上,“异步”操作。举例来说,VLIW电路104可周期性地处理若干数据集。处理(例如曲面细分)单个数据集可被称为绘制调用。举例来说,绘制调用可为VLIW电路104处理(例如渲染)数据集的指令(例如编程请求、指令等)。一或多个参数(例如LOD参数、曲面细分设置、一或多个其它参数等)可与绘制调用相关联,和/或为所述绘制调用设定。因此,例如,绘制调用可建立将为所述数据集呈现的LOD。
在已知方法中,每一数据集(例如绘制调用)具有固定细节等级(LOD)。在那些方法中,一旦处理已在所述数据集上开始,所述数据集的LOD无法改变(例如在绘制调用期间无法改变)。另外,在已知方法中,每一数据集可仅具有单个LOD。
根据本文公开的系统和方法,异步存储器控制器108可异步存取存储器(例如芯片上存储器110和/或系统存储器114),以实现在单个数据集内渲染不同的细节等级(例如具有不同细节等级的不同区)(例如在绘制调用的处理期间)。举例来说,在对数据集的处理(例如曲面细分、着色等)已开始之后,且在对所述数据集的处理完成之前,异步存储器控制器108可存取存储器(例如参数、LOD参数等)。这可允许VLIW电路104在数据集的处理期间改变LOD,以在一组数据中产生不同的LOD。每一数据集合可包含多个图元(例如点、多边形等)。在一些配置中,每一数据集合可(最初)被指派单个LOD。然而,异步存储器控制器108可在数据集的处理期间,将不同LOD指派给所述数据集。换句话说,异步存储器控制器108可改变数据集的LOD(在对所述数据集合的处理(例如曲面细分、着色等)已开始之后,但在对所述数据集合的处理(例如曲面细分、着色等)已完成之前)。举例来说,本文公开的系统和方法可允许在每像素和/或每图元基础上(例如,甚至在数据集内)改变LOD。在一些配置中,可在处理期间更新所述参数(例如参数、LOD参数等)。举例来说,处理器(例如中央处理单元(CPU)、数字信号处理器(DSP)等)或任何专用硬件块(例如处理传感器数据(例如眼动追踪传感器数据、运动传感器数据等)的任何硬件)可更新所述参数。VLIW电路104(例如GPU)可从存储器(例如芯片上存储器110和/或系统存储器114)的包含所述参数的区段读取(例如可总是读取、不断地读取、周期性地读取等)。因此,VLIW电路104(例如GPU)可按图元而不是针对整个绘制调用相应地调整。在一些配置中,VLIW电路104可在单个绘制调用中渲染不同的细节等级。
本文中所公开的系统和方法可提供一或多个益处。举例来说,异步存储器控制器108可在渲染多个LOD时实现更高效的处理。在已知方法中,可渲染多个重叠层,其中每一层具有不同的LOD。接着,所述重叠层可混合。然而,此方法是低效的,因为同一数据被多次渲染。根据本文公开的系统和方法,克在单个遍次中渲染不同的LOD。这可避免再渲染相同数据,和/或可避免必须混合具有不同细节等级的多个层。
另外或替代地,本文公开的系统和方法可允许异步改变LOD。举例来说,渲染图像的一或多个区可基于眼睛跟踪。举例来说,电子装置102可渲染具有不同细节等级的多个区,其中在用户当前正在看的区域中渲染具有最高细节等级的区。眼睛跟踪可检测用户何时改变注视来看图像的不同部分。本文公开的系统和方法(例如异步存储器控制器108)可立刻改变基于眼睛跟踪来渲染的LOD。举例来说,VLIW电路104可增加用户已改变注视来看的图像的区域中的LOD,即使在数据集的处理期间。这可提供较好的用户体验。另外,本文公开的系统和方法(例如异步存储器控制器108)可减少用户的注视不再针对的图像的区域中的LOD。这可减少不必要的处理。
VLIW电路104可包含不均匀帧缓冲器控制器112。不均匀帧缓冲器控制器112(例如多分辨率FBO)可在硬件或硬件与软件的组合中实施。不均匀帧缓冲器控制器112可在VLIW电路104中实施,与VLIW电路104分开实施,或可部分在VLIW电路104中且部分与VLIW电路104分开实施。在一些配置中,不均匀帧缓冲器控制器112可作为图形管线106的一部分实施。或者,不均匀帧缓冲器控制器112可实施为芯片上存储器110的一部分。在另一个实施方案中,不均匀帧缓冲器控制器112可在VLIW电路104中,但与图形管线106和芯片上存储器110分开实施。
不均匀帧缓冲器控制器112可经配置以动态地存取一或多个帧缓冲器的不同子集。在一些配置中,帧缓冲器的不同子集可对应于不同的细节等级,具有不同细节等级的区和/或不同的mipmap等级。举例来说,不均匀帧缓冲器控制器112可经配置以动态地对帧缓冲器的不同子集进行操作。应注意,可存在两个或更多个帧缓冲器子集。在一些配置中,不均匀帧缓冲器的不同子集可对应于不同视图(例如用于与立体渲染的左眼视图和右眼视图)。不均匀帧缓冲器可改进带宽利用率。举例来说,对于不均匀帧缓冲器,可并行(例如同时)处理左眼视图和右眼视图,且在一个遍次中保存到系统存储器114。另外或替代地,例如,不均匀帧缓冲器可实现和/或改进在一个遍次中渲染多个LOD的存储器利用率。
在一些配置中,动态地存取帧缓冲器的不同子集可包含以与第二区的至少一个像素不同的速率存取第一区的至少一个像素。所述第一区和所述第二区可对应于所述不同细节等级。举例来说,不均匀帧缓冲器控制器112可使得能够以比另一区域(例如,具有较低LOD)的像素高的速率来处理一个区域(例如,具有较高LOD)的像素。此方法可允许通过减慢一或多个区(例如较低LOD区)的处理来节省电力。应注意,可存在来自可以两个或更多个不同速率存取的两个或更多个区的像素。
另外或替代地,动态地存取帧缓冲器的不同子集可包含实现着色器子例程调换。举例来说,当第一像素的处理在进行中,且第二像素的处理完成时,可执行着色器子例程调换。举例来说,可为用第一着色器子例程处理的一或多个像素分配帧缓冲器的第一子集,而可为用第二着色器子例程处理的一或多个像素分配帧缓冲器的第二子集。当一或多个第二着色器子例程像素的处理完成时,电子装置102可交换着色器子例程以占用帧缓冲器的第二子集。这可通过允许更高效地利用帧缓冲器容量来提供更高效的处理。应注意,可利用帧缓冲器的两个或更多个子集来为所述子集中的一或多者实现子例程调换。
不均匀帧缓冲器控制器112可经配置以用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理第二像素的第二样本。所述第一像素可具有与第二像素不同数目的样本。举例来说,来自第一区的第一像素可具有比来自第二区的具有较低LOD的相邻第二像素高的LOD。不均匀帧缓冲器控制器112可用第一像素的(经处理)样本来代替第二像素的(未处理)样本。以此方式,不均匀帧缓冲器控制器112可减少处理。应注意,不均匀帧缓冲器控制器112可用一或多个其它像素的一或多个(经处理)样本来代替一或多个像素的一或多个(未处理)样本。
在一些配置中,电子装置102可包含和/或可耦合到一或多个显示器(例如头戴式显示器)。所述显示器可经配置以呈现不同细节等级。
图2是说明用于渲染多个细节等级的方法200的一种配置的流程图。方法200可由结合图1描述的电子装置102执行。
电子装置102可获得202几何数据。举例来说,电子装置102可将来自存储装置(例如硬盘存储装置、可装卸式存储装置,例如外部硬盘驱动器、数字视频光盘(DVD)驱动器、蓝光驱动器、压缩光盘(CD)、随身盘等)的几何数据加载到存储器(例如系统存储器114和/或芯片上存储器110)中。另外或替代地,电子装置102可从另一装置接收几何数据。举例来说,电子装置102可通孔通信接口(例如以太网、电气电子工程师学会(IEEE)802.11接口、蜂窝式网络接口等)接收几何数据,并将几何数据加载到存储器(例如系统存储器114和/或芯片上存储器110)中。几何数据的实例可包含点、线和/或多边形(例如三角形)等。
电子装置102可异步地渲染204不同细节等级。这可如上文结合图1所描述来实现。举例来说,电子装置102可异步存取存储器(例如系统存储器114和/或芯片上存储器110),以渲染不同的细节等级。举例来说,电子装置102可在处理期间改变数据集的LOD(其中例如所述数据集最初具有不同LOD)。在一些配置中,异步地渲染204不同细节等级可包含执行动态LOD曲面细分。
电子装置102可动态地存取206帧缓冲器的不同子集。这可如上文结合图1所描述来实现。举例来说,电子装置102可与第二区的至少一个像素不同的速率存取第一区的至少一个像素。另外或替代地,当第一像素的处理在进行中,且第二像素的处理完成时,电子装置102可实现着色器子例程调换。另外或替代地,电子装置102可用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理第二像素的第二样本。
图3是说明其中可实施用于渲染多个细节等级的系统和方法的电子装置302的一个配置的框图。结合图3描述的电子装置302可为结合图1描述的电子装置102的实例。在一些配置中,电子装置302的组件或元件中的一或多者可类似于结合图1描述的对应组件或元件。所述组件或元件中的一或多者可在硬件(例如电路)或硬件与软件的组合(例如具有指令的处理器)中实施。
在一些配置中,电子装置302可包含超长指令字(VLIW)电路304、系统存储器314、一或多个显示器332、一或多个图像传感器316、一或多个光学系统318、一或多个通信接口320、一或多个天线322和/或一或多个处理器324。结合图3描述的元件或组件中的两个或更多个可彼此电子通信。举例来说,VLIW电路304可耦合到系统存储器314(例如与所述系统存储器电子通信)。VLIW电路304可为如上文结合图1和2中的一或多者所描述的用于渲染图像的装置。在一些配置中,所得图像可在一或多个显示器332上呈现。在一些实施方案中,VLIW电路304可与处理器324分开。在其它实施方案中,VLIW电路304可集成到处理器324中。
通信接口320可使电子装置302能够与一或多个其它电子装置通信。举例来说,通信接口320可为有线和/或无线通信提供接口。在一些配置中,通信接口320可耦合到一或多个天线322以用于发射和/或接收射频(RF)信号。另外或替代地,通信接口320可实现一或多个种有线(例如通用串行总线(USB)、以太网、视频图形阵列(VGA)、数字视频接口(DVI)、高清晰多媒体接口(HDMI)、显示端口、移动高清链路(MHL)等)通信。
在一些配置中,可实施和/或利用多个通信接口320。举例来说,一个通信接口320可为蜂窝式(例如3G、长期演进(LTE)、CDMA等)通信接口320,另一通信接口320可为以太网接口,另一通信接口320可为通用串行总线(USB)接口,又一通信接口320可为无线局域网(WLAN)接口(例如电气电子工程师学会(IEEE)802.11接口),且又一通信接口320可为蓝牙接口。
在一些配置中,电子装置302可执行结合图1、图3到5、9、11、13以及15到24中的一或多者描述的功能、程序、方法、步骤等中的一或多者。另外或替代地,电子装置302可包含结合图1、图3到5、9、11、13以及15到24中的一或多者所描述的结构中的一或多者。
系统存储器314可存储指令和/或数据。结合图3描述的系统存储器314可为结合图1描述的系统存储器114的实例。VLIW电路304可存取系统存储器314(例如从所述系统存储器读取和/或写入到所述系统存储器)。系统存储器314还可由处理器324存取。系统存储器314可存储几何数据328。在一些配置中,系统存储器314可包含帧缓冲器330a。帧缓冲器330a可为用于存储图像数据的系统存储器314的部分。在一些配置中,经缓冲的图像数据可在一或多个显示器332上呈现。
VLIW电路304可包含用于渲染图像的一或多个元件。所述元件的一些实例可包含前端(FE)、顶点处理器(VP、顶点获取器(VF)、顶点着色器(VS)、曲面细分控制着色器(TCS)、外壳着色器(HS)、棋盘形布置器(例如曲面细分引擎)(TESS)、曲面细分评估着色器(TES)、域着色器(DS)、几何着色器(GS)、光栅化器(Rast)、片段着色器(FS)、像素着色器(PS)、平铺器、渲染输出单元(ROP)、修剪器(Clip)和/或流输出(SOL)等。在一些配置中,这些元件中的一或多者可被称为图形管线。
VLIW电路304可包含芯片上存储器310。结合图3描述的芯片上存储器310可为结合图1描述的芯片上存储器110的实例。在一些配置中,芯片上存储器310可包含帧缓冲器330b(例如,除系统存储器314中的帧缓冲器330a之外,或作为帧缓冲器330a的另一选择)。帧缓冲器可为用于存储图像数据的芯片上存储器310的部分。在一些配置中,经缓冲的图像数据可在一或多个显示器332上呈现。
在一些配置中,VLIW电路304可包含异步存储器控制器308。异步存储器控制器308可在硬件或硬件与软件的组合中实施。异步存储器控制器308可在VLIW电路304中实施,与VLIW电路分开,或可部分在VLIW电路304中且部分与VLIW电路304分开实施。异步存储器控制器308可经配置以异步地存取存储器(例如芯片上存储器310和/或系统存储器314)。应注意,异步存储器控制器308可利用(例如存取)芯片上存储器110和/或系统存储器114(例如任一者或两者)。一些配置可取决于使用情况。举例来说,如果正以高速率(例如1000赫兹(Hz))写入传感器数据(例如图像传感器316的数据),那么高速缓存可浪费时间、电池和/或其它资源。结合图3描述的异步存储器控制器308可为结合图1描述的异步存储器控制器108的实例。结合图3描述的异步存储器控制器308可如结合结合图1描述的异步存储器控制器108所描述来操作。
VLIW电路304可包含不均匀帧缓冲器控制器312。不均匀帧缓冲器控制器312可在硬件或硬件与软件的组合中实施。不均匀帧缓冲器控制器312可在VLIW电路304中实施,与VLIW电路304分开实施,或可部分在VLIW电路304中且部分与VLIW电路304分开实施。在一些配置中,不均匀帧缓冲器控制器312可作为图形管线的一部分实施。或者,不均匀帧缓冲器控制器312可实施为芯片上存储器310的一部分。在另一个实施方案中,不均匀帧缓冲器控制器312可在VLIW电路304中,但与图形管线306和芯片上存储器310分开实施。结合图3描述的不均匀帧缓冲器控制器312可为结合图1描述的不均匀帧缓冲器控制器112的实例。结合图3描述的不均匀帧缓冲器控制器312可如结合结合图1描述的不均匀帧缓冲器控制器112所描述来操作。
在一些配置中,电子装置302可执行单遍次多LOD渲染。多LOD渲染可包含来渲染图像的具有不同细节等级的不同区。单遍次多LOD渲染可包含在单个遍次(而不反复地处理任何像素,例如)中,渲染具有不同细节等级(例如经曲面细分的细节等级)的不同区。单遍次注视点渲染可为单遍次多LOD渲染的实例,其中具有不同细节等级的不同区可基于眼睛跟踪。举例来说,区可为圆形区域(或另一形状的区域),大约以用户正在看的显示器(例如图像)的点为中心。另外或替代地,单遍次渲染(例如单遍次多LOD渲染)可包含对将呈现的数据和/或纹理执行一个遍次(例如处理遍次),即使需要呈现左眼视图和右眼视图两者也是如此。因此,本文公开的系统和方法的一些配置可在系统存储器与芯片上存储器(例如GPU存储器)之间移动数据之前,尽可能多地利用两个眼睛视图的数据。在一些配置中,异步存储器控制器308和/或不均匀帧缓冲器控制器312可实现单遍次多LOD渲染(例如单遍次注视点渲染)的性能。举例来说,异步存储器控制器308可允许从易失性存储器块读取参数(例如细节等级(LOD)参数)(例如在绘制调用期间动态地适应)。举例来说,异步存储器控制器308可允许曲面细分控制着色器(TCS)、曲面细分器(TESS)、曲面细分评估着色器(TES)、几何着色器(GS)、光栅化器和片段着色器(FS)中的一或多者从易失性存储器块存取一或多个参数(例如在绘制调用期间动态地调适)。
在一些配置中,VLIW电路304可包含光栅化器。光栅化器可使MSAA能够执行图元的较多取样,其反过来可激活较多片段着色器(FS)评估。另外,可执行图元的取样,以避免如锯齿线等假影,其归因于处理和平均化了不足的样本。
电子装置302可获得一或多个图像(例如数字图像、图像帧、视频等)。所述一或多个图像可为一或多个用户和/或场景(例如,一或多个对象和/或背景)的图像。举例来说,电子装置302可包含一或多个图像传感器316和/或一或多个光学系统318(例如镜头),其使位于光学系统318的视野内的对象的图像聚焦到图像传感器316上。在一些配置中,图像传感器316可捕获一或多个图像。图像传感器316和/或光学系统318可耦合到处理器324和/或受处理器324控制。
另外或替代地,电子装置302可从另一装置(例如耦合到电子装置302的外部图像传感器、网络服务器、业务相机、水下摄像头、机动车相机、网络相机等)请求和/或接收一或多个图像。在一些配置中,电子装置302可经由通信接口320请求和/或接收一或多个图像。举例来说,电子装置302可包含或可不包含相机(例如图像传感器316和/或光学系统318),且可从远程装置接收图像。
在一些配置中,包含于电子装置302中的一或多个图像传感器316和/或耦合到电子装置302的一或多个其它图像传感器可经定向以捕获用户的一或多个图像。举例来说,智能电话可包含安装在与显示器(例如显示器332)相同的面上的相机。以此方式,相机可在用户正看着显示器时,捕获用户的图像。在另一实例中,相机可安装在交通工具的控制台和/或方向盘中,以捕获用户(例如驾驶员)的图像。
另外或替代地,包含于电子装置302中的一或多个图像传感器316和/或耦合到电子装置302的一或多个其它图像传感器可经定向以捕获景物。举例来说,一或多个相机可安装在智能电话的背侧上。在另一实例中,一或多个相机可安装在交通工具的外部。在一些配置中,电子装置302可在增强现实(AR)应用、虚拟现实(VR)应用和/或其它应用(例如环绕视图可视化、驾驶员辅助、高级驾驶员辅助系统(ADAS)等)中利用景物的图像。
在一些配置中,图像传感器316所捕获和/或经由通信接口320接收的图像可由电子装置302用于眼睛跟踪。举例来说,处理器324可包含和/或实施眼睛跟踪器326。眼睛跟踪器326可跟踪一或多个用户的眼睛的注视(例如视线方向)。举例来说,眼睛跟踪器326可定位图像中的一或多个用户的眼睛,且可估计所述用户的注视(例如视线方向)。举例来说,眼睛跟踪器326可确定(例如估计)用户正在看显示器(例如显示器332或外部显示器)上的何处,和/或用户正在看显示器所呈现的图像上的何处。换句话说,眼睛跟踪器326可确定(例如估计)用户的注视相对于图像和/或显示器指向何处。
本文公开的系统和方法可允许异步改变LOD和/或在单个遍次中渲染多个细节等级。在一些配置中,渲染图像的一或多个区可基于眼睛跟踪。图像的区可具有不同细节等级。举例来说,电子装置302可渲染具有不同细节等级的多个区,其中在用户当前正在看的区域中渲染具有最高细节等级的区。在一些配置中,这可被称为注视点渲染。眼睛跟踪器326可产生眼睛跟踪信息。眼部跟踪信息可指示用户的注视相对于显示器和/或图像指向(例如用户的若干注视指向)何处。在一些配置中,处理器324和/或VLIW电路304可基于眼睛跟踪信息来确定一或多个LOD参数。LOD参数可指示将为图像的一或多个区渲染的LOD。LOD参数可存储在系统存储器314和/或芯片上存储器310中。可关于正由VLIW电路304处理的数据集(例如绘制调用)异步地更新LOD参数。在数据集(例如绘制调用)的处理期间,异步存储器控制器308可(从系统存储器314和/或芯片上存储器310)读取LOD参数。举例来说,在数据集(例如绘制调用)的处理期间,异步存储器控制器308可更新曲面细分设定。
眼睛跟踪器326可检测用户何时改变注视来看图像的不同部分。本文公开的系统和方法(例如异步存储器控制器308)可立刻改变基于眼睛跟踪(例如眼睛跟踪信息和/或LOD参数)来渲染的LOD。举例来说,异步存储器控制器308可读取一或多个参数(例如LOD参数),其可在数据集(例如绘制调用)的处理期间改变。举例来说,VLIW电路304可增加用户已改变注视来观看的图像的区域(例如区)中的LOD,甚至在数据集的处理期间也是如此。另外或替代地,本文公开的系统和方法(例如异步存储器控制器308)可减少用户的注视不再指向的图像的区域(例如区)中的LOD。在一些配置中,区可为圆形区域(或另一形状的区域),其中心大约在显示器(例如图像)的用户正在看的点上。在其它配置中,区可为对应于用户正观看的视窗的图像的整个区域。
在一些配置中,电子装置302可包含相机应用程序和/或显示器332。当相机应用程序正在运行时,图像传感器316可捕获位于光学系统318的视野内的对象的图像。图像传感器316正捕获的图像可呈现于显示器332上。在一些配置中,这些图像可以相对较高的帧率快速连续显示,因此在任何给定时刻处,位于光学系统318的视野内的对象都呈现在显示器332上。
应注意,电子装置302中所说明的元件中的一或多者可为任选的。举例来说,可或可不包含和/或实施电子装置302中所说明的元件中的一或多者。另外或替代地,处理器324和/或VLIW电路304中所说明的元件中的一或多者可与处理器324和/或VLIW电路304(例如其它电路中、另一处理器上,单独电子装置上等)分开实施。举例来说,图像传感器316、光学系统318、通信接口320、处理器324、眼睛跟踪器326和/或显示器332可不在电子装置302上实施。在一些配置中,电子装置302可从另一装置接收图像和/或眼睛跟踪信息。另外或替代地,一或多个显示器可在一或多个分开的装置上实施。
在一些配置中,电子装置302可在显示器332上呈现用户接口334。举例来说,用户接口334可使用户能够与电子装置302交互。在一些配置中,显示器332可为接收来自物理触摸(例如通过手指、触笔或其它工具)的输入的触摸屏。另外或替代地,电子装置302可包含另一输入接口或耦合到另一输入接口。举例来说,电子装置302可包含面向用户的相机,且可检测用户示意动作(例如,手部示意动作、手臂示意动作、眼睛跟踪、眨眼等)。在另一实例中,电子装置302可耦合到鼠标,且可检测鼠标点击。应注意,在一些配置中,无用户输入可为必要的。
在一些配置中,电子装置302可任选地包含运动传感器(例如陀螺仪、加速计等)。举例来说,运动传感器可检测(例如,电子装置302的)运动和/或定向。在一些配置中,正渲染的图像可基于运动和/或定向信息。举例来说,电子装置302可为头戴式显示器(例如虚拟现实(VR)头戴装置、增强现实(AR)头戴装置等)、交通工具(例如机动车、无人机、飞机等)、移动装置(例如智能电话),或可利用运动和/或定向信息来渲染图像的其它装置。举例来说,运动和/或定向信息可指示经渲染场景中的大体检视方向。在一些配置中,除眼睛跟踪信息之外或作为所述眼睛跟踪的另一选择,电子装置302可基于此检视方向来渲染图像。运动传感器的使用可说明异步存储器控制器308的异步操作的另一方面。举例来说,运动传感器可以特定速率(例如1000赫兹(Hz))将运动信息和/或定向信息提供到存储器(例如系统存储器314和/或芯片上存储器310),而VLIW电路304可以相比来说较低的速率(例如30帧每秒(fps))来渲染帧。异步存储器控制器308可基于运动信息和/或定向信息,在渲染数据集的中间异步地改变一或多个渲染操作(例如曲面细分)。
图4是说明不均匀帧缓冲器430的一个实例的图。在此实例中,帧缓冲器430具有2nx 2m个像素的容量。在一些配置中,电子装置302可任选地将帧缓冲器430平铺432成若干平铺块436。在图4中示出的实例中,说明大小为(n,m)的四个平铺块436。在一些实施方案中,芯片上存储器310或芯片上存储器310的一部分可限于平铺块436的大小。因此,电子装置302可将帧缓冲器430分割成若干平铺块436。在其它实施方案中,芯片上存储器310或芯片上存储器310的一部分可足够大以容纳整个帧缓冲器430,且可不执行平铺434。
电子装置302可将帧缓冲器430和/或平铺块436细分438成经按比例缩放的部分440。举例来说,可细分帧缓冲器430和/或平铺块436来配合多个分辨率和/或细节等级。在图4中示出的实例中,经按比例缩放的部分440具有大小(n/c,m/c),其中c为比例缩放因子。比例缩放因子c可变化,和/或可基于所述配置而选择。
电子装置302(例如不均匀帧缓冲器控制器312)可动态地存取帧缓冲器430的不同子集442a-c。在图4中所说明的实例中,电子装置302可动态地存取缓冲器子集A 442a、缓冲器子集B 442b和缓冲器子集C 442c。应注意,可利用更少或更多的缓冲器子集。还应注意,帧缓冲器430的全部或仅一部分可由缓冲器子集占据。举例来说,帧缓冲器的其它无阴影线部分可由一或多个其它子集利用。
不同帧缓冲器子集(例如缓冲器子集442a-c)的动态存取(例如读取和/或写入)可使一或多个方法能够提供渲染图像中的较大控制和/或效率。在一些方法中,不同帧缓冲器子集的动态存取可实现单遍次多LOD渲染。这是因为以一个LOD来渲染一区并不需要在以不同LOD渲染另一区可开始之前完成。在此方法中,缓冲器子集442a-c中的一或多者可对应于不同的图像区。举例来说,缓冲器子集A 442a可对应于具有最高LOD的区,缓冲器子集B442b可对应于具有中等LOD的区,且缓冲器子集C 442c可对应于具有较低LOD的区。举例来说,VLIW电路304可渲染最高LOD区,其可写入到缓冲器子集A 442a,而同时或循序渲染中等LOD区,其可写入到缓冲器子集B 442b。应注意,可按任何次序(例如从最高LOD到最低,以相反次序或另一次序)来渲染不同的LOD区。另外或替代地,不同帧缓冲器子集的动态存取可允许以不同速率处理不同的区(例如可为一个区分配较大帧缓冲器子集以更快速地处理,而可为另一区分配较小帧缓冲器子集以更缓慢地处理)。
在一些方法中,不同帧缓冲器子集的动态存取可实现并行着色器过程(例如子例程)。举例来说,可并行地执行不同着色器过程,其中一个着色器过程存取帧缓冲器的一个子集,且另一着色器过程存取所述帧缓冲器的另一子集。另外或替代地,不同帧缓冲器子集的动态存取可允许着色器子例程调换。举例来说,可执行第一着色器子例程,其存取缓冲器子集A 442a。当第一着色器子例程在进行中时,存取缓冲器子集B 442b的第二着色器子例程可结束。当第一着色器子例程在进行中时,可用第二着色器子例程来调换另一着色器子例程(其可存取缓冲器子集B 442b,例如)。这可允许利用帧缓冲器的空间的较大效率,而不必在可开始另一着色器子例程之前,等待着色器子例程完成。
在一些方法中,不同帧缓冲器子集的动态存取可实现样本取代。举例来说,不均匀帧缓冲器控制器312可用经处理像素的一或多个样本来调换另一像素的一或多个样本。在一些配置中,VLIW电路304可执行抗混叠(例如多样本抗混叠(MSAA))。在执行抗混叠时,不同像素可具有不同数目的样本。举例来说,缓冲器子集A 442a中的第一(例如“精细”)像素可具有4个样本,且可使用较高质量着色,而缓冲器子集B 442b中的附近(例如相邻)第二(例如“粗略”)像素可具有1个样本,且使用较低质量着色。代替于对第二像素执行处理(例如着色),不均匀帧缓冲器控制器312可用第一像素的样本来取代第二像素的样本。这可避免执行对第二像素的处理中的任一者。另外或替代地,不均匀帧缓冲器控制器312可执行处理mipmap中的样本取代。举例来说,不均匀帧缓冲器控制器312可用来自较高等级的(例如,缓冲器子集A 442a中的)样本来取代来自较低等级的(例如,缓冲器子集B 442b中的)样本。这可避免一些或一或多个较低等级下的处理。
不均匀帧缓冲器控制器312可实现着色器处理(例如子例程、核心等)的动态调度,可实现像素样本取代,和/或可提供多LOD帧缓冲器。如图4中所说明,帧缓冲器430可存储图像数据,其可作为多个经渲染的目标444流出。
列表(1)说明伪代码的一个实例,所述伪代码说明用于不均匀帧缓冲器功能性的一种方法。应注意,GLSL是OpenGL着色语言的缩写,且SSBO是着色器存储缓冲器对象的缩写。列表(1)说明多个区如何具有不同细节等级。
列表(1)
图5是说明用于渲染多个细节等级的方法500的较具体配置的流程图。方法500可由结合图3描述的电子装置302执行。
电子装置302可获得502几何数据(例如几何数据328)。这可结合图1到3中的一或多者所描述来实现。举例来说,电子装置302可将几何数据从存储装置加载到存储器(例如系统存储器314和/或芯片上存储器310),和/或可从另一装置接收几何数据,并将所述几何数据加载到存储器(例如系统存储器314和/或芯片上存储器310)。
电子装置302可执行504眼睛跟踪。这可如上结合图3所描述来实现。举例来说,电子装置302可获得(例如捕获和/或接收)一或多个图像,且可基于所述一或多个图像来确定用户的注视指向何处(例如用户正在看显示器上何处,和/或图像正在显示器上何处呈现)。
电子装置302可基于眼睛跟踪来异步地渲染506不同细节等级。这可如上文结合图1到3中的一或多者所描述来实现。举例来说,电子装置302可异步存取存储器(例如系统存储器314和/或芯片上存储器310),以基于眼睛跟踪来渲染不同细节等级。举例来说,当数据集的区基于眼睛跟踪改变时,电子装置302可在处理期间改变所述数据集的LOD(其中例如,所述数据集最初具有不同的LOD)。在一些配置中,当用户的注视指向所述数据集的区域时,图像的对应于电子装置302可增加所述数据集的LOD。另外或替代地,当用户的注视方向从图像的对应于所述数据集的区域移开时,电子装置302可减小所述数据集的LOD。
在一些配置中,异步地渲染506不同细节等级可包含执行动态LOD曲面细分。举例来说,可更新存储器(例如系统存储器314和/或芯片上存储器310),以指示LOD曲面细分参数(例如曲面细分度)的变化。异步存储器控制器308可存取经更新的LOD曲面细分参数,以异步地改变LOD曲面细分。
电子装置302可动态地存取508帧缓冲器的不同子集。这可如上文结合图1到4中的一或多者所描述来实现。举例来说,电子装置302可与第二区的至少一个像素不同的速率存取第一区的至少一个像素。另外或替代地,当第一像素的处理在进行中,且第二像素的处理完成时,电子装置302可实现着色器子例程调换。另外或替代地,电子装置302可用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理第二像素的第二样本。
电子装置302可呈现510经渲染图像。举例来说,电子装置302可异步地流出已用不同细节等级渲染506的图像数据。在一些配置中,可将图像数据提供到集成显示器332。在其它配置中,可将图像数据提供到与电子装置302通信的远程显示器。举例来说,电子装置302可将图像数据提供到显示器,所述显示器(经由VGA、DVI、HDMI等)耦合到电子装置302。
图6是说明用于注视点渲染的方法600的实例的流程图。在此方法中,获得602几何数据。还执行604眼睛跟踪。渲染606粗略层,渲染608中等层,且渲染610精细层。举例来说,可在用户的注视指向的图像上渲染610精细层。可在与精细层区域重叠的较大区域中渲染608中等层。可在包含中等层区域和精细层区域的更大的区域(例如整个图像)中渲染606粗略层。因此,所述层之间可存在显著重叠。粗略层、中等层和精细层可通过抗混叠来合并612。可将所得图像输出614到帧缓冲器。
如可观察到,方法600可包含渲染显著量的重叠区域。举例来说,精细细节区域可渲染三次:在粗略层一次,在中等层一次,且在精细层一次。这可为低效的,因为其对相同像素执行多个渲染遍次。
图7说明注视点渲染的一个实例。明确地说,图7说明用于注视点渲染的场景的实例。用于注视点渲染的场景包含粗略细节区域748、中等细节区域750和精细细节区域752。如结合图6所描述,注视点渲染的一种方法包含渲染粗略层754、渲染中等层756和渲染精细层758。接着,可对粗略层754、中等层756和精细层758执行合并和混合760,以产生最终混合图像762。举例来说,中等层756与粗略层754之间的混合掩模A764a可用于混合中等层756和粗略层754。另外,中等层756与精细层758之间的混合掩模B 764b可用于混合中等层756和精细层758。如可观察到,此方法在多个遍次中渲染相同像素,从而导致低效率。应注意,在一些配置中,混合掩模764a-b中的一或多者可提供经加权(例如渐进)混合,其中混合权重从混合掩模的外边缘增加到内区域。还应注意,为方便起见,图7中将粗略层754和/或最终混合图像762说明为整个场景的子集。然而,粗略层754和/或最终混合图像762可覆盖整个场景。
图8是说明包含超长指令字(VLIW)电路868的电子装置866的实例的框图。明确地说,图8说明用于图形处理的架构的一个实例。结合图8描述的架构的一或多个方面可类似于英伟达(Nvidia)架构的方面而起作用。此架构可提供即时模式渲染(IMR),其以功率和裸片面积为代价具有高带宽设计。在此设计中,可利用高速缓冲存储器801来减少带宽(例如为了避免重复取样,从系统存储器805读取和/或写入到系统存储器805)。举例来说,高速缓冲存储器801可足够大以容纳整个图像帧的数据。应注意,本文所述的图形管线中的一或多者可具有类似于DirectX和/或OpenGL管线和/或应用编程接口(API)的一或多个方面。第2014/0347363号美国专利申请公开案描述可具有与DirectX管线的相似性的图形处理的一些方面。
电子装置866可包含VLIW电路868(例如GPU)和系统存储器805(例如DRAM)。VLIW电路868可包含图形管线870和芯片上存储器803。图形管线870可包含前端(FE)872、顶点获取器(VF)874、顶点着色器(VS)876、曲面细分控制着色器(TCS)878、曲面细分器(TESS)880(例如曲面细分引擎)、曲面细分评估着色器(TES)882、几何着色器(GS)884、光栅化器(Rast)886、片段着色器(FS)890和渲染输出单元(ROP)894。为方便起见,元件标签中的许多已简称。芯片上存储器803可包含缓冲器896、合成/分解(C/D)存储器898和高速缓冲存储器801。在一些配置中,缓冲器896可为和/或包含纹理缓冲器、帧缓冲器和/或芯片上存储器910的另一块。系统存储器805可包含命令数据(Cmd)807、顶点数据809、纹理数据和无序存取视图数据811和经渲染目标数据813。
为了渲染场景,电子装置866可将来自系统存储器805的命令数据807和顶点数据809加载到芯片上存储器803中的高速缓冲存储器801。顶点数据809可指示一或多个点(例如顶点)、线和/或多边形。顶点数据809可表示场景和/或场景中的一或多个对象。
FE 872可提供高速缓冲存储器801与图形管线870(例如VF 874)之间的接口。举例来说,FE 872可获得将由VF 874去格式化的数据,和/或可控制VF 874关于从高速缓冲存储器801检索的数据(例如顶点数据)。
VF 874可将顶点数据从高速缓冲存储器801获取到图形管线870中。VF 874可存取缓冲器896。举例来说,VF可将数据写入到缓冲器896。VF 874可将顶点数据提供到VS 876。另外或替代地,VS 876可从缓冲器896检索顶点数据。
VS 876可将顶点数据变换到不同空间中。举例来说,VS 876可将来自三维(3D)空间的顶点数据变换到二维(2D)空间中。VS 876可将经变换的顶点数据提供到TCS 878,和/或可将经变换的顶点数据存储在缓冲器896中。
TCS 878可从VS 876和/或从缓冲器896接收顶点数据(例如经变换的顶点数据)。TCS 878可变换顶点数据(例如经变换的顶点数据)的基础。举例来说,TCS 878可将顶点数据的基础变换为曲面细分的基础(例如用于高效地细分多边形,例如三角形)。TCS 878可将信息存储在高速缓冲存储器801中。举例来说,TCS 878可存储指示TCS 878所执行的基础变换的基础指示符。可将经基础变换的顶点数据提供到TESS 880。
TESS 880可对顶点数据(例如经基础变换的顶点数据)进行曲面细分。举例来说,TESS 880可基于顶点数据产生更多顶点(例如可将三角形细分成更多三角形)。TESS 880可基于LOD参数来操作。LOD参数可指定LOD,和/或可指示TESS 880要执行的曲面细分度。可将经曲面细分的顶点数据提供到TES 882。
TES 882可变换顶点数据(例如经曲面细分的顶点数据)的基础。举例来说,TES882可将顶点数据的基础变换回到在TCS 878应用基础变换之前的基础。在一些配置中,TES882可从高速缓冲存储器801读取基础指示符,以便变换(例如逆变换)顶点数据的基础。TES 882可将顶点数据(例如经逆基础变换的顶点数据)提供到GS 884,和/或将顶点数据存储在缓冲器896中。
GS 884可对顶点数据(例如经逆基础变换的顶点数据)执行一或多个操作。举例来说,GS 884可基于顶点数据产生额外几何。GS 884可将顶点数据(例如,具有额外几何)提供到光栅化器886和/或高速缓冲存储器801。
光栅化器886可接收来自GS 884和/或高速缓冲存储器801的顶点数据。光栅化器886可使顶点数据光栅化。举例来说,光栅化器可将顶点数据转换为像素数据。可将像素数据提供到FS 890。
FS 890可对像素数据执行片断着色或像素着色。举例来说,FS 890可确定一或多个像素的一或多个属性(例如色彩、亮度、透明度等)。在一些配置中,FS 890可执行隐藏表面去除(HSR)。FS 890可包含合成/分解(C/D)块892。或者,C/D 892可与FS 890分开和/或耦合到FS 890。
在一些配置中,C/D 892可执行例如纹理化和/或混合等操作。举例来说,C/D 892可混合多个层以确定最终像素值。在一些配置中,C/D 892可组合不同帧缓冲器(例如可根据像素将多个图像混合在一起)。应注意,C/D 892可在芯片上(VLIW电路868上)、图形管线870中、芯片上存储器803中和/或与VLIW电路868分开实施。在一些配置中,C/D 892可在系统存储器805中实施。在将图像数据写出到系统存储器805和/或到另一流输出(例如HDMI流输出)之前,C/D 892可对图像数据进行操作。FS 890(和/或C/D 892)可存取C/D存储器898。举例来说,系统存储器805可将纹理数据和/或无序存取视图数据811提供到高速缓冲存储器801。FS 890可通过存取C/D存储器和/或高速缓冲存储器801执行一或多个操作。FS 890可将像素数据(例如经处理的像素数据)提供到ROP 894。
ROP 894可输出像素数据(例如经处理的像素数据)。举例来说,ROP 894可经由C/D存储器898和/或高速缓冲存储器801,将像素数据作为经渲染的目标数据813输出到系统存储器805。可提供(例如输出)经渲染的目标数据813以供呈现。举例来说,可将经渲染的目标数据813发送到显示器以供呈现。
应注意,在无本文公开的系统和方法的情况下,可依据数据集(例如顶点、像素和/或图像数据的集合)来执行结合图8描述的操作,其中每一数据集可具有一或多个所建立的参数来用于渲染(例如渲染参数)。举例来说,每一数据集可具有为曲面细分操作指派的固定LOD。因此,在为数据集渲染期间(例如在绘制调用期间),可不改变LOD。举例来说,这可导致如结合图6到7所描述的用于渲染多个LOD的多个遍次。另外或替代地,帧缓冲器(其可在芯片上存储器803、缓冲器896和/或高速缓冲存储器801中实施)可为统一的。举例来说,帧缓冲器可包含统一数据(例如具有相同LOD的数据,具有相同数目的像素样本的数据,来自相同着色器子例程的数据等)。举例来说,可不独立地(例如由不同着色器子例程同时)存取缓冲器的子集。举例来说,在一次可仅出现到帧缓冲器的一个数据写入的意义上,帧缓冲器可为统一的。另外或替代地,在每一数据写入可仅一次来自单个着色器子例程的意义上,帧缓冲器可为统一的。另外或替代地,在每一数据写入可仅包含具有相同LOD的数据和/或具有相同数目的像素样本的意义上,帧缓冲器可为统一的。
图9是说明在结合图8描述的架构中实施的本文公开的系统和方法的实例的框图。具体地说,图9说明电子装置902。结合图9描述的电子装置902可为上文结合图1到5中的一或多者所述的电子装置102、302中的一或多者的实例。电子装置902可经配置以执行结合图1到5中的一或多者描述的方法、函数、步骤、操作等中的一或多者。
电子装置902可包含VLIW电路904(例如GPU)和系统存储器914。VLIW电路904可为上文结合图1到5中的一或多者所述的VLIW电路104、304中的一或多者的一个实例。另外或替代地,系统存储器914可为结合图1到5中的一或多者描述的系统存储器114、314中的一或多者的实例。系统存储器914可包含命令数据(Cmd)907、顶点数据909、纹理和无序存取视图数据911和/或经渲染目标数据913。命令数据(Cmd)907、顶点数据909、纹理和无序存取视图数据911和/或经渲染目标数据913中的一或多者可类似于结合图8描述的对应数据。
VLIW电路904可包含图形管线906和芯片上存储器910。结合图9描述的图形管线906可为结合图1到5中的一或多者描述的图形管线106、306中的一或多者的一个实例。另外或替代地,结合图9描述的芯片上存储器910可为结合图1到5中的一或多者描述的芯片上存储器110、310中的一或多者的一个实例。
芯片上存储器910可包含缓冲器996、高速缓冲存储器901和/或C/D存储器998。在一些配置中,芯片上存储器910、缓冲器996高速缓冲存储器901和/或C/D存储器998可类似于结合图8描述的对应元件。应注意,芯片上存储器910可包含如结合图3到4中的一或多者所描述的一或多个帧缓冲器。帧缓冲器可包含于芯片上存储器910、缓冲器996、高速缓冲存储器901和/或C/D存储器998中的一或多者中。另外或替代地,帧缓冲器可包含于系统存储器914中。在一些配置中,一或多个帧缓冲器可包含于芯片上存储器910、系统存储器914或这两者中。
图形管线906可包含FE 972、VF 974、VS 976、TCS 978、TESS 980、TES 982、GS984、光栅化器986、FS 990和ROP 994中的一或多者。在一些配置中,FE 972、VF 974、VS976、TCS 978、TESS 980、TES 982、GS 984、光栅化器986、FS 990和ROP 994可执行结合图8描述的一或多个对应元件的操作中的一或多者。
在图9中说明的配置中,VLIW电路904(例如图形管线906)可包含异步存储器控制器908。异步存储器控制器908可包含和/或实施于TCS 978、TESS 980、TES 982、GS 984、光栅化器986和FS 990中的一或多者中。完全或部分地,例如,异步存储器控制器908a可在TCS978、TESS 980、TES 982、GS 984、光栅化器986和/或FS 990中实施。一般标记“908”可表示异步存储器控制器908可在图9中说明的元件908a-f中的任一个或全部中实施。在一些配置中,异步存储器控制器908可仅在TCS 978、TESS 980、TES 982和GS 984中的一或多者中实施。举例来说,异步存储器控制器908可仅异步地读取TCS978、TESS 980、TES 982和/或GS984中的一或多个参数,因为可将数据转发到后面的级。
结合图9描述的异步存储器控制器908可为结合图1到5中的一或多者描述的异步存储器控制器108、308中的一或多者的实例。举例来说,异步存储器控制器908可(例如在数据集的处理期间)从芯片上存储器910和/或系统存储器914异步地读取一或多个参数(例如LOD参数)。在一些配置中,可将经更新的参数提供到TCS 978、TESS 980、TES 982、GS 984、光栅化器986和FS 990中的一或多者。因此,当正处理数据集时,TCS 978、TESS 980、TES982、GS 984、光栅化器986和FS 990中的一或多者可将数据集的处理改变为不同于最初为数据集建立的处理。
在一些配置中,这可使电子装置902能够执行单遍次多LOD渲染。举例来说,异步存储器控制器908可读取LOD参数,其不同于最初为当前正处理和/或渲染(例如曲面细分)的数据集建立的另一LOD参数。可将经更新的LOD参数提供到TCS 978、TESS980、TES 982、GS984、光栅化器986和FS 990中的一或多者。因此,在以一或多个不同参数起始的数据集的处理期间,TCS 978、TESS 980、TES 982、GS 984、光栅化器986和FS 990中的一或多者可根据经更新的LOD参数来改变数据集的处理(例如改变曲面细分等级)。
VLIW电路904(例如图形管线906)可包含不均匀帧缓冲器控制器912。如图9中所说明,不均匀帧缓冲器控制器912可包含和/或实施于FS 990(例如C/D 992)中。应注意,不均匀帧缓冲器控制器912可另外或替代地包含和/或实施于FS 990、C/D 992、图形管线906和芯片上存储器910中的一或多者中。完全或部分地,例如,不均匀帧缓冲器控制器912可实施于FS 990、C/D 992、图形管线906、芯片上存储器910和电子装置902中的一或多者中。不均匀帧缓冲器控制器912可实施于C/D 992中。应注意,否则可能导致额外等待时间。
结合图9描述的不均匀帧缓冲器控制器912可为结合图1到5中的一或多者描述的不均匀帧缓冲器控制器112、312中的一或多者的实例。举例来说,不均匀帧缓冲器控制器912可动态地存取一或多个帧缓冲器的不同子集。在一些配置中,动态地存取帧缓冲器的不同子集可包含以与第二区的至少一个像素不同的速率存取第一区的至少一个像素。另外或替代地,动态地存取帧缓冲器的不同子集可包含实现动态着色器子例程调换(例如,当第一像素的处理在进行中,且第二像素的过程完成时)。另外或替代地,不均匀帧缓冲器控制器912可经配置以用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理第二像素的第二样本。
在一些配置中,可实施专用高速缓冲存储器,以处理特定纹理并渲染目标。高速缓冲存储器可与纹理集合本身一样大。
图10是说明包含超长指令字(VLIW)电路1068的电子装置1066的另一实例的框图。明确地说,图10说明用于图形处理的架构的另一实例。结合图10描述的架构的一或多个方面可类似于因特尔架构的方面起作用。此架构可提供即时模式渲染(IMR)以及具有共享物理和虚拟存储器的统一存储器架构(UMA)。此架构可实现零副本共享以及指针共享。
电子装置1066可包含处理器1015(例如CPU)。在此实例中,处理器1015可包含VLIW电路1068。举例来说,VLIW电路1068可集成到处理器1015中。
电子装置1066可包含VLIW电路1068(例如GPU)和系统存储器1005。VLIW电路1068可包含图形管线1070和芯片上存储器1003。图形管线1070可包含命令流式传输器(CS)1017、顶点获取器(VF)1074、顶点着色器(VS)1076、外壳着色器(HS)1078、曲面细分器(TESS)1080(例如曲面细分引擎)、域着色器(DS)1082、几何着色器(GS)1084、流输出(SOL)1019、修剪器(Clip)1021、光栅化器(Rast)1086和片段着色器(FS)1090。为方便起见,元件标签中的许多已简称。芯片上存储器1003可包含一或多个缓冲器、一或多个高速缓冲存储器等。在一些配置中,芯片上存储器1003可包含纹理缓冲器、帧缓冲器和/或芯片上存储器1110的另一块。系统存储器1005可包含命令数据、顶点数据(例如几何数据)和/或纹理数据。
为了渲染场景,电子装置1066可从系统存储器获得命令数据和顶点数据。举例来说,CS 1017可从系统存储器1005接收和/或执行渲染命令。顶点数据可指示一或多个点(例如顶点)、线和/或多边形。顶点数据1009可表示场景和/或场景中的一或多个对象。
VF 1074可将顶点数据从系统存储器1005获取到VLIW电路1068(例如图形管线1070)中。VF 1074可将顶点数据提供到VS 1076和/或可将顶点数据存储在高速缓冲存储器1001中。
VS 1076可将顶点数据变换到不同空间中。举例来说,VS 1076可将来自三维(3D)空间的顶点数据变换到二维(2D)空间中。VS 1076可将经变换的顶点数据提供到HS1078,和/或可将经变换的顶点数据存储在高速缓冲存储器1001中。
HS 1078可从VS 1076和/或从高速缓冲存储器1001接收顶点数据(例如经变换的顶点数据)。HS 1078可变换顶点数据(例如经变换的顶点数据)的基础。举例来说,HS 1078可将顶点数据的基础变换为曲面细分的基础(例如用于高效地细分多边形,例如三角形)。HS 1078可将信息存储在高速缓冲存储器1001中。举例来说,HS 1078可存储指示HS1078所执行的基础变换的基础指示符。可将经基础变换的顶点数据提供到TESS 1080。
TESS 1080可对顶点数据(例如经基础变换的顶点数据)进行曲面细分。举例来说,TESS 1080可基于顶点数据产生更多顶点(例如可将三角形细分成更多三角形)。TESS1080可基于LOD参数来操作。LOD参数可指定LOD,和/或可指示TESS 1080要执行的曲面细分度。可将经曲面细分的顶点数据提供到DS 1082。
DS 1082可变换顶点数据(例如经曲面细分的顶点数据)的基础。举例来说,DS1082可将顶点数据的基础变换回到在HS 1078应用基础变换之前的基础。在一些配置中,DS1082可从高速缓冲存储器1001读取基础指示符,以便变换顶点数据的基础(例如逆变换)。在其它配置中,DS 1082可直接耦合到HS 1078,且可从HS 1078接收基础指示符,以便变换(例如逆变换)顶点数据的基础。DS 1082可将顶点数据(例如经逆基础变换的顶点数据)提供到GS 1084,和/或将顶点数据存储在高速缓冲存储器1001中。
GS 1084可对顶点数据(例如经逆基础变换的顶点数据)执行一或多个操作。举例来说,GS 1084可基于顶点数据产生额外几何。GS 1084可将顶点数据(例如,具有额外几何)提供到SOL 1019。
SOL 1019可将顶点数据(例如,具有额外几何)流式传输到系统存储器1005,和/或将顶点数据存储在所述系统存储器1005中。SOL 1019可将顶点数据(例如,具有额外几何)提供到修剪器1021。
修剪器1021可丢弃顶点数据中的一些(例如,具有额外几何)。举例来说,修剪器1021可丢弃位于视图(例如视见平截头体)之外的顶点数据。修剪器1021可将经修剪的顶点数据提供到光栅化器1086和/或高速缓冲存储器1001。
光栅化器1086可从修剪器1021和/或高速缓冲存储器1001接收经修剪的顶点数据。光栅化器1086可使顶点数据光栅化。举例来说,光栅化器可将顶点数据转换为像素数据。可将像素数据提供到FS 1090和/或提供到高速缓冲存储器1001。
FS 1090可对像素数据执行片断着色或像素着色。举例来说,FS 1090可确定一或多个像素的一或多个属性(例如色彩、亮度、透明度等)。在一些配置中,FS 1090可执行隐藏表面去除(HSR)。在一些配置中,FS 1090可包含合成/分解(C/D)块1092。或者,C/D 1092可与FS 1090分开,和/或耦合到FS 1090,如图10中所说明。
在一些配置中,C/D 1092可执行例如纹理化和/或混合等操作。举例来说,C/D1092可混合多个层以确定最终像素值。在一些配置中,C/D 1092可组合不同帧缓冲器(例如可根据像素将多个图像混合在一起)。应注意,C/D 1092可在芯片上(VLIW电路1068上)、图形管线1070中、芯片上存储器1003中和/或与VLIW电路1068分开实施。在将图像数据写出到系统存储器1005和/或到另一流输出(例如HDMI流输出)之前,C/D 1092可对图像数据进行操作。在一些配置中,系统存储器1005可将纹理数据提供到高速缓冲存储器1001,其可由FS1090和/或C/D 1092存取。FS 1090可通过存取高速缓冲存储器1001来执行一或多个操作。FS 1090可将像素数据(例如经处理的像素数据)提供到C/D1092,其可执行合成/分解,并将像素数据提供到高速缓冲存储器1001。
像素数据可经由高速缓冲存储器1001输出到系统存储器1005。可提供(例如输出)像素数据以供呈现。举例来说,可将像素数据发送到显示器以供呈现。
应注意,在无本文公开的系统和方法的情况下,可依据数据集(例如顶点、像素和/或图像数据的集合)来执行结合图10描述的操作,如结合图8所描述。
图11是说明在结合图10描述的架构中实施的本文公开的系统和方法的另一实例的框图。具体地说,图11说明电子装置1102。结合图11描述的电子装置1102可为上文结合图1到5中的一或多者所述的电子装置102、302中的一或多者的实例。电子装置1102可经配置以执行结合图1到5中的一或多者描述的方法、函数、步骤、操作等中的一或多者。
电子装置1102可包含处理器1124(例如CPU)。处理器1124可为结合图3描述的处理器324的一个实例。在此实例中,处理器1015可包含VLIW电路1104。举例来说,VLIW电路1104可集成到处理器1124中。
电子装置1102可包含VLIW电路1104(例如GPU)和系统存储器1114。VLIW电路1104可为上文结合图1到5中的一或多者所述的VLIW电路104、304中的一或多者的一个实例。另外或替代地,系统存储器1114可为结合图1到5中的一或多者描述的系统存储器114、314中的一或多者的实例。系统存储器1114可包含命令数据、顶点数据(例如几何数据)、纹理数据和/或经渲染的目标数据(例如像素数据)。
VLIW电路1104可包含图形管线1106和芯片上存储器1110。结合图11描述的图形管线1106可为结合图1到5中的一或多者描述的图形管线106、306中的一或多者的一个实例。另外或替代地,结合图11描述的芯片上存储器1110可为结合图1到5中的一或多者描述的芯片上存储器110、310中的一或多者的一个实例。
芯片上存储器1110可包含一或多个帧缓冲器、一或多个高速缓冲存储器1101等。举例来说,可利用1级(L1)和/或2级(L2)高速缓冲存储器作为芯片上存储装置。在一些配置中,可停用管线预测硬件。应注意,芯片上存储器1110可包含如结合图3到4中的一或多者所描述的一或多个帧缓冲器。帧缓冲器可包含于芯片上存储器1110、高速缓冲存储器1101等中的一或多者中。另外或替代地,帧缓冲器可包含于系统存储器1114中。在一些配置中,一或多个帧缓冲器可包含于芯片上存储器1110、系统存储器1114或这两者中。
图形管线1106可包含CS 1117、VF 1174、VS 1176、HS 1178、TESS 1180、DS 1182、GS 1184、SOL 1119、修剪器1121、光栅化器1186、FS 1190和C/D 1192中的一或多者。在一些配置中,CS 1117、VF 1174、VS 1176、HS 1178、TESS 1180、DS 1182、GS 1184、SOL 1119、修剪器1121、光栅化器1186、FS 1190和C/D 1192中的一或多者可执行结合图10描述的一或多个对应元件的操作中的一或多者。
在图11中说明的配置中,VLIW电路1104(例如图形管线1106)可包含异步存储器控制器1108。异步存储器控制器1108可包含和/或实施于TCS 1178、TESS 1180、DS 1182、GS1184、光栅化器1186和FS 1190中的一或多者中。完全或部分地,例如,异步存储器控制器1108a可在HS 1178、TESS 1180、DS 1182、GS 1184、光栅化器1186和/或FS1190中实施。一般标记“1108”可表示异步存储器控制器1108可在图11中说明的元件1108a-f中的任一个或全部中实施。在一些配置中,异步存储器控制器1108可仅在HS1178、TESS 1180、DS 1182和GS1184中的一或多者中实施。举例来说,异步存储器控制器1108可仅异步地读取HS 1178、TESS 1180、DS 1182和/或GS 1184中的一或多个参数,因为可将数据转发到后面的级。
结合图11描述的异步存储器控制器1108可为结合图1到5中的一或多者描述的异步存储器控制器108、308中的一或多者的实例。举例来说,异步存储器控制器1108可(例如在数据集的处理期间)从芯片上存储器1110和/或系统存储器1114异步地读取一或多个参数(例如LOD参数)。在一些配置中,可将经更新的参数提供到HS 1178、TESS1180、DS 1182、GS 1184、光栅化器1186和FS 1190中的一或多者。因此,当处理数据集时,HS 1178、TESS1180、DS 1182、GS 1184、光栅化器1186和FS 1190中的一或多者可将数据集的处理改变为不同于为数据集最初建立的处理。
在一些配置中,这可使电子装置1102能够执行单遍次多LOD渲染。举例来说,异步存储器控制器1108可读取LOD参数,其不同于最初为当前正处理和/或渲染(例如曲面细分)的数据集建立的另一LOD参数。可将经更新的LOD参数提供到HS 1178、TESS1180、DS 1182、GS 1184、光栅化器1186和FS 1190中的一或多者。因此,在以一或多个不同参数起始的数据集的处理期间,HS 1178、TESS 1180、DS 1182、GS 1184、光栅化器1186和FS 1190中的一或多者可根据经更新的LOD参数来改变数据集的处理(例如改变曲面细分等级)。
VLIW电路1104(例如图形管线1106)可包含不均匀帧缓冲器控制器1112。如图11中所说明,不均匀帧缓冲器控制器1112可包含和/或实施于C/D 1192中。应注意,不均匀帧缓冲器控制器1112可另外或替代地包含和/或实施于FS 1190、C/D 1192、图形管线1106和芯片上存储器1110中的一或多者中。完全或部分地,例如,不均匀帧缓冲器控制器1112可实施于FS 1190、C/D 1192、图形管线1106、芯片上存储器1110和电子装置1102中的一或多者中。
结合图11描述的不均匀帧缓冲器控制器1112可为结合图1到5中的一或多者描述的不均匀帧缓冲器控制器112、312中的一或多者的实例。举例来说,不均匀帧缓冲器控制器1112可动态地存取一或多个帧缓冲器的不同子集。在一些配置中,动态地存取帧缓冲器的不同子集可包含以与第二区的至少一个像素不同的速率存取第一区的至少一个像素。另外或替代地,动态地存取帧缓冲器的不同子集可包含实现动态着色器子例程调换(例如,当第一像素的处理在进行中,且第二像素的过程完成时)。另外或替代地,不均匀帧缓冲器控制器1112可经配置以用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理第二像素的第二样本。应注意,在一些配置中,可实施结合图11描述的电子装置1102,以使用共享存储器和/或自适应多频着色来执行异步自适应抗混叠。
图12是说明包含超长指令字(VLIW)电路1268的电子装置1266的另一实例的框图。明确地说,图12说明用于图形处理的架构的一个实例。结合图12描述的架构的一或多个方面可类似于想象技术(例如PowerVR图形)架构的方面起作用。此架构是可提供基于平铺的推迟渲染(TBDR)的平铺架构。可将不透明几何分类成平铺块(例如,代替高速缓存)。
电子装置1266可包含VLIW电路1268(例如GPU)和系统存储器1205(例如DRAM)。VLIW电路1268可包含图形管线1270和芯片上存储器1203。图形管线1270可包含顶点处理器(VP)1274、顶点着色器(VS)1276、曲面细分控制着色器(TCS)1278、曲面细分器(TESS)1280(例如曲面细分引擎)、曲面细分评估着色器(TES)1282、几何着色器(GS)1284、平铺器1223、光栅化器(Rast)1286和片段着色器(FS)1290。为方便起见,元件标签中的许多已简称。芯片上存储器1203可包含深度缓冲器1237和色彩缓冲器1239。系统存储器1205可包含几何数据1209、参数缓冲器1235、纹理数据1211和帧缓冲器1241。几何数据1209可指示一或多个点(例如顶点)、线和/或多边形。几何数据1209可表示场景和/或场景中的一或多个对象。
VF 1274可将几何数据从系统存储器1205获取到VLIW电路1268(例如图形管线1270)中。VF 1274可将几何数据提供到VS 1276。
VS 1276可将几何数据变换(例如投影)到不同空间中。举例来说,VS 1276可将来自三维(3D)空间的几何数据变换到二维(2D)空间中。在一些配置中,VS 1276可执行修剪、投影和/或剔除。举例来说,VS 1276可将在检视平截头体之外的几何数据修剪掉。VS1276可将几何数据从3D空间投影到2D空间中。VS 1276还可剔除几何数据中的一些。举例来说,可去除对应于被遮挡几何形状(例如因为其被其它几何形状挡住而不可检视的几何形状)的几何数据。VS 1276可将经变换的几何数据提供到TCS 1278。
TCS 1278可从VS 1276和/或从缓冲器1296接收几何数据(例如经变换的几何数据)。TCS 1278可变换几何数据(例如经变换的几何数据)的基础。举例来说,TCS 1278可将几何数据的基础变换为曲面细分的基础(例如用于高效地细分多边形,例如三角形)。举例来说,TCS 1278可存储指示TCS 1278所执行的基础变换的基础指示符。可将经基础变换的几何数据提供到TESS 1280。
TESS 1280可对几何数据(例如经基础变换的几何数据)进行曲面细分。举例来说,TESS 1280可基于所述几何数据产生较多几何数据(例如顶点)(例如可将三角形细分成更多的三角形)。TESS 1280可基于LOD参数来操作。LOD参数可指定LOD和/或可指示TESS 1280将执行的曲面细分的度。可将经曲面细分的几何数据提供到TES 1282。
TES 1282可变换几何数据(例如经曲面细分的几何数据)的基础。举例来说,TES1282可将几何数据的基础变换回到在TCS 1278应用基础变换之前的基础。在一些配置中,TES 1282可从TCS 1278和/或存储器(例如芯片上存储器1203和/或系统存储器1205)获得基础指示符,以便变换(例如逆变换)几何数据的基础。TES 1282可将几何数据(例如经逆基础变换的几何数据)提供到GS 1284。
GS 1284可对几何数据(例如经逆基础变换的几何数据)执行一或多个操作。举例来说,GS 1284可基于几何数据产生额外几何。GS 1284可将几何数据(例如,具有额外几何)提供到平铺器1223。
平铺器1223可将几何数据(例如,具有额外几何)分割成若干平铺块。举例来说,平铺器1223可将几何数据分成较小群组的几何数据。平铺块可包含连续几何数据。平铺器1223可将平铺块提供到参数缓冲器1235。
参数缓冲器1235可存储平铺块。举例来说,参数缓冲器1235可存储图元(例如几何数据\顶点\线\多边形等)的列表。在图12中的描述的平铺架构中,平铺块处理可利用系统存储器存取的空间地点。举例来说,对平铺块来说在本地的操作可相对“便宜”(例如可利用极少处理、功率、存储器和/或时间资源)。在一些配置中,VLIW电路1268可对几何数据进行曲面细分,并将那些几何数据发送出来以平铺到参数缓冲器1235。可将几何数据(例如平铺几何数据、图元等)提供到光栅化器1286。应注意,存储在参数缓冲器1235中的参数可不包含渲染参数(例如LOD参数)。
光栅化器1286可接收来自参数缓冲器1235的几何数据(例如平铺几何数据、图元等)。光栅化器1286可使几何数据光栅化。举例来说,光栅化器可将几何数据转换像素数据。可将像素数据提供到FS 1290。
FS 1290可对像素数据执行片断着色或像素着色。举例来说,FS 1290可确定一或多个像素的一或多个属性(例如色彩、亮度、透明度等)。在一些配置中,FS 1290可包含隐藏表面去除(HSR)和深度测试(DT)块1225、标记缓冲器(TB)1227、纹理和阴影(T&S)块1229、阿尔法测试(AT)块1231和阿尔法混合(AB)块1233中的一或多者。HSR&DT1225可执行深度测试和隐藏表面去除。举例来说,深度测试可包含确定对应于像素的深度。HSR&DT可确定每一像素的深度,并将深度指示符存储在深度缓冲器1237中。执行隐藏表面去除可包含丢弃比其它像素大的深度处(例如被其它像素遮挡)的像素。在一些方法中,标记缓冲器(TB)1227可任选地重组像素以实现更快执行。T&S 1229可从系统存储器获得纹理数据1211。AT 1231可执行定制“模板”测试(例如另一深度测试)。在一些配置中,AT 1231可更新HSR&DT 1225。AB1233可混合像素(例如来自一或多个层和/或帧缓冲器的像素)。举例来说,AB 1233可执行合成和/或分解操作,其中可使用阿尔法值来混合两个图像。
AB 1233可将像素数据提供到色彩缓冲器1239。如图12中所说明,色彩和深度缓冲器数据可存储在芯片上。色彩缓冲器1239可将像素数据提供到帧缓冲器1241。帧缓冲器1241可输出像素数据。可提供(例如输出)像素数据以供呈现。举例来说,可将像素数据发送到显示器以供呈现。
应注意,在无本文公开的系统和方法的情况下,可依据如结合图8所描述的数据集(例如顶点、像素和/或图像数据的集合)来执行结合图12描述的操作。
图13是说明在结合图12描述的架构中实施的本文公开的系统和方法的实例的框图。此架构可提供TBDR。具体地说,图13说明电子装置1302。结合图13描述的电子装置1302可为上文结合图1到5中的一或多者所述的电子装置102、302中的一或多者的实例。电子装置1302可经配置以执行结合图1到5中的一或多者描述的方法、函数、步骤、操作等中的一或多者。
电子装置1302可包含VLIW电路1304(例如GPU)和系统存储器1314。VLIW电路1304可为上文结合图1到5中的一或多者所述的VLIW电路104、304中的一或多者的一个实例。另外或替代地,系统存储器1314可为结合图1到5中的一或多者描述的系统存储器114、314中的一或多者的实例。系统存储器1314可包含几何数据1309、参数缓冲器1335、纹理数据1311和/或帧缓冲器1341。几何数据1309、参数缓冲器1335、纹理数据1311和/或帧缓冲器1341中的一或多者可类似于结合图12描述的对应元件。应注意,系统存储器1314可包含如结合图3到4中的一或多者所描述的一或多个帧缓冲器。举例来说,帧缓冲器1341可为结合图3到4中的一或多者描述的帧缓冲器中的一或多者的实例。在一些配置中,一或多个帧缓冲器可包含于芯片上存储器1310、系统存储器1314或这两者中。
VLIW电路1304可包含图形管线1306和芯片上存储器1310。结合图13描述的图形管线1306可为结合图1到5中的一或多者描述的图形管线106、306中的一或多者的一个实例。另外或替代地,结合图13描述的芯片上存储器1310可为结合图1到5中的一或多者描述的芯片上存储器110、310中的一或多者的一个实例。
芯片上存储器1310可包含高速缓冲存储器1301和/或深度和色彩缓冲器1343。在一些配置中,芯片上存储器1310、高速缓冲存储器1301和/或深度和色彩缓冲器1343中的一或多者可类似于结合图12描述的对应元件。
图形管线1306可包含VP 1374、VS 1376、TCS 1378、TESS 1380、TES 1382、GS1384、平铺器1323、光栅化器1386和FS 1390中的一或多者。在一些配置中,VP 1374、VS1376、TCS 1378、TESS 1380、TES 1382、GS 1384、平铺器1323、光栅化器1386和FS 1390中的一或多者可执行结合图12描述的一或多个对应元件的操作中的一或多者。应注意,在一些配置中,如结合图12所描述,FS 1390可包含HSR&DT、TB、T&S、AT和AB中的一或多者。
在图13中说明的配置中,VLIW电路1304(例如图形管线1306)可包含异步存储器控制器1308。异步存储器控制器1308可包含和/或实施于TCS 1378、TESS 1380、TES1382、GS1384、光栅化器1386和FS 1390中的一或多者中。完全或部分地,例如,异步存储器控制器1308可实施于TCS 1378、TESS 1380、TES 1382、GS 1384、光栅化器1386和/或FS 1390中。一般标记“1308”可表示异步存储器控制器1308可在图13中说明的元件1308a-f中的任一个或全部中实施。在一些配置中,异步存储器控制器1308可仅在TCS 1378、TESS 1380、TES 1382和GS 1384中的一或多者中实施。举例来说,异步存储器控制器1308可仅异步地读取TCS1378、TESS 1380、TES 1382和/或GS 1384中的一或多个参数,因为可将数据转发到后面的级。
结合图13描述的异步存储器控制器1308可为结合图1到5中的一或多者描述的异步存储器控制器108、308中的一或多者的实例。举例来说,异步存储器控制器1308可(例如,在数据集的处理期间)从系统存储器1314异步地读取一或多个参数(例如LOD参数)。在一些配置中,可将经更新的参数提供到TCS 1378、TESS 1380、TES 1382、GS 1384、光栅化器1386和FS 1390中的一或多者。因此,当正处理数据集时,TCS 1378、TESS1380、TES 1382、GS1384、光栅化器1386和FS 1390中的一或多者可将数据集的处理改变为不同于最初为数据集建立的处理。
在一些配置中,这可使电子装置1302能够执行单遍次多LOD渲染。举例来说,异步存储器控制器1308可读取LOD参数,其不同于最初为当前正处理和/或渲染(例如曲面细分)的数据集建立的另一LOD参数。可将经更新的LOD参数提供到TCS 1378、TESS1380、TES1382、GS 1384、光栅化器1386和FS 1390中的一或多者。因此,在以一或多个不同参数起始的数据集的处理期间,TCS 1378、TESS 1380、TES 1382、GS 1384、光栅化器1386和FS 1390中的一或多者可根据经更新的LOD参数来改变数据集的处理(例如改变曲面细分等级)。
VLIW电路1304(例如图形管线1306)可包含不均匀帧缓冲器控制器1312。如图13中所说明,不均匀帧缓冲器控制器1312可包含和/或实施于FS 1390中。应注意,不均匀帧缓冲器控制器1312可另外或替代地包含和/或实施于FS 1390、图形管线1306和芯片上存储器1310中的一或多者中。完全或部分地,例如,不均匀帧缓冲器控制器1312可实施于FS 1390、图形管线1306、芯片上存储器1310和电子装置1302中的一或多者中。
结合图13描述的不均匀帧缓冲器控制器1312可为结合图1到5中的一或多者描述的不均匀帧缓冲器控制器112、312中的一或多者的实例。举例来说,不均匀帧缓冲器控制器1312可动态地存取一或多个帧缓冲器(例如帧缓冲器1341)的不同子集。在一些配置中,动态地存取帧缓冲器的不同子集可包含以与第二区的至少一个像素不同的速率存取第一区的至少一个像素。另外或替代地,动态地存取帧缓冲器的不同子集可包含实现动态着色器子例程调换(例如,当第一像素的处理在进行中,且第二像素的过程完成时)。另外或替代地,不均匀帧缓冲器控制器1312可经配置以用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理第二像素的第二样本。图13中所说明的架构可允许芯片上缓冲器(例如深度和色彩缓冲器)的定制配置。这可允许针对VR的并排渲染、mipmap产生等。
图14是说明包含超长指令字(VLIW)电路1468的电子装置1466的另一实例的框图。明确地说,图14说明用于图形处理的架构的一个实例。此架构可提供(例如支持)即时模式(例如IMR)和平铺模式(例如TBDR)两者。举例来说,架构可提供一系列即时模式或平铺模式。图14中说明的实例可避免大芯片上高速缓冲存储器/缓冲器(例如,中间几何所需)。
电子装置1466可包含VLIW电路1468(例如GPU)和系统存储器1405(例如DRAM)。VLIW电路1468可包含图形管线1470和芯片上存储器1403。图形管线1470可包含顶点处理器(VP)1474、顶点着色器(VS)1476、开关A到B 1447a-b(例如多路复用器)、曲面细分控制着色器(TCS)1478、曲面细分器(TESS)1480(例如曲面细分引擎)、曲面细分评估着色器(TES)1482、几何着色器(GS)1484、平铺器1449、光栅化器(Rast)1486和片段着色器(FS)1490。为方便起见,元件标签中的许多已简称。芯片上存储器1403可包含高速缓冲存储器1401和/或深度和色彩缓冲器1443。系统存储器1405可包含几何数据1409、参数缓冲器1435、纹理数据1411和帧缓冲器1441。几何数据1409可指示一或多个点(例如顶点)、线和/或多边形。几何数据1409可表示场景和/或场景中的一或多个对象。
VF 1474可将几何数据从系统存储器1405获取到VLIW电路1468(例如图形管线1470)中。VF 1474可将几何数据提供到VS 1476。
VS 1476可将几何数据变换(例如投影)到不同空间中。举例来说,VS 1476可将来自三维(3D)空间的几何数据变换到二维(2D)空间中。在一些配置中,VS 1476可执行修剪、投影和/或剔除。举例来说,VS 1476可将在检视平截头体之外的几何数据修剪掉。VS1476可将几何数据从3D空间投影到2D空间中。VS 1476还可剔除所述几何数据中的一些。举例来说,可去除对应于被遮挡几何形状(例如因为其被其它几何形状挡住而不可检视的几何形状)的几何数据。VS 1476可将经变换的几何数据提供到交换器A 1447a(例如多路复用器)。
交换器A 1447a可基于模式1445,将经变换的几何数据投送到TCS 1478或投送到平铺器1449。举例来说,模式1445可指示渲染模式。在一些配置中,渲染模式可包含平铺模式(例如基于平铺的推迟渲染(TBDR)模式)和即时模式(例如即时模式渲染(IMR))。如果启用曲面细分,那么交换器A 1447a可投送将经曲面细分的经变换几何数据。否则,交换器A1447a可投送将平铺的经变换几何数据。举例来说,在模式1445指示平铺模式的情况下,交换器A 1447a可将经变换几何引导到平铺器1449。在模式1445指示即时模式的情况下,交换器A 1447a可将经变换几何引导到TCS 1478。即时模式可包含结合图8和10中的一或多者描述的操作中的一或多者。平铺模式可包含结合图12描述的操作中的一或多者。
TCS 1478可从交换器A 1447a(例如VS 1476)接收几何数据(例如经变换的几何数据)。TCS 1478可变换几何数据(例如经变换的几何数据)的基础。举例来说,TCS 1478可将几何数据的基础变换为曲面细分的基础(例如用于高效地细分多边形,例如三角形)。举例来说,TCS 1478可存储指示TCS 1478所执行的基础变换的基础指示符。可将经基础变换的几何数据提供到TESS 1480。
TESS 1480可对几何数据(例如经基础变换的几何数据)进行曲面细分。举例来说,TESS 1480可基于所述几何数据产生较多几何数据(例如顶点)(例如可将三角形细分成更多的三角形)。TESS 1480可基于LOD参数来操作。LOD参数可指定LOD,和/或可指示TESS1480要执行的曲面细分度。可将经曲面细分的几何数据提供到TES 1482。
TES 1482可变换几何数据(例如经曲面细分的几何数据)的基础。举例来说,TES1482可将几何数据的基础变换回到在TCS 1478应用基础变换之前的基础。在一些配置中,TES 1482可从TCS 1478和/或存储器(例如芯片上存储器1403和/或系统存储器1405)获得基础指示符,以便变换(例如逆变换)几何数据的基础。TES 1482可将几何数据(例如经逆基础变换的几何数据)提供到GS 1484。
GS 1484可对几何数据(例如经逆基础变换的几何数据)执行一或多个操作。举例来说,GS 1484可基于几何数据产生额外几何。GS 1484可将几何数据(例如,具有额外几何)提供到交换器B 1447b。交换器B 1447b(例如多路复用器)可将几何数据(例如,具有额外几何)投送到光栅化器1486(例如,在即时模式的情况下)。
在模式1445指示TBDR模式的情况下,交换器A 1447a可将经变换的几何数据提供到平铺器1449(例如,从VS 1476)。平铺器1449可将经变换的几何数据分割成若干平铺块。举例来说,平铺器1449可将几何数据分成较小群组的几何数据。平铺块可包含连续几何数据。平铺器1449可将平铺块提供到参数缓冲器1435。
参数缓冲器1435可存储平铺块。举例来说,参数缓冲器1435可存储图元(例如几何数据、顶点、线、多边形等)的列表。在图14中的描述的平铺模式下,平铺处理可利用系统存储器存取的空间地点。举例来说,对平铺块来说在本地的操作可相对“便宜”(例如可利用极少处理、功率、存储器和/或时间资源)。可将几何数据(例如平铺几何数据、图元等)提供到交换器B 1447b。交换器B 1447b可将几何数据从参数缓冲器1435投送到光栅化器1486(例如,在平铺模式的情况下)。
光栅化器1486可接收几何数据(例如来自参数缓冲器1435的平铺几何数据,或来自GS 1484的几何数据(例如,具有额外几何))。光栅化器1486可使几何数据光栅化。举例来说,光栅化器可将几何数据转换像素数据。可将像素数据提供到FS 1490。
FS 1490可对像素数据执行片断着色或像素着色。举例来说,FS 1490可确定一或多个像素的一或多个属性(例如色彩、亮度、透明度等)。举例来说,FS 1490可执行所述操作中的一或多者,和/或可包含上文结合结合图8到12中的一或多者描述的FS 890、990、1090、1190、1290、1390中的一或多者所述的结构中的一或多者。
FS 1490可将像素数据提供到高速缓冲存储器1401以及深度和色彩缓冲器1443中的一或多者。在一些配置中,FS 1490和/或深度和色彩缓冲器1443可将类似功能性提供到本文所述的合成/分解块。在一些配置中,结合图14描述的架构可不混合即时模式和平铺模式。举例来说,模式(例如模式1445)可指示曲面细分即时模式或无曲面细分平铺模式。
高速缓冲存储器1401可从系统存储器接收纹理数据1411。在一些配置中,可仅高速缓存纹理存取和帧缓冲器平铺块。在即时模式的情况下,可分配大小为整个帧缓冲器1441的平铺块。
如图14中所说明,色彩和深度缓冲器数据可存储在芯片上。深度和色彩缓冲器1443可将像素数据提供到帧缓冲器1441。帧缓冲器1441可输出像素数据。可提供(例如输出)像素数据以供呈现。举例来说,可将像素数据发送到显示器以供呈现。
应注意,在无本文公开的系统和方法的情况下,结合图14描述的操作可依据数据集(例如顶点、像素和/或图像数据的集合)来执行,如结合图8所描述。
图15是说明在结合图14描述的架构中实施的本文公开的系统和方法的实例的框图。此架构可提供即时模式(例如IMR)和平铺模式(例如TBDR)。具体地说,图15说明电子装置1502。结合图15描述的电子装置1502可为上文结合图1到5中的一或多者所述的电子装置102、302中的一或多者的实例。电子装置1502可经配置以执行结合图1到5中的一或多者描述的方法、函数、步骤、操作等中的一或多者。
电子装置1502可包含VLIW电路1504(例如GPU)和系统存储器1514。VLIW电路1504可为上文结合图1到5中的一或多者所述的VLIW电路104、304中的一或多者的一个实例。另外或替代地,系统存储器1514可为结合图1到5中的一或多者描述的系统存储器114、314中的一或多者的实例。系统存储器1514可包含几何数据1509、参数缓冲器1535、纹理数据1511和帧缓冲器1541。几何数据1509、参数缓冲器1535、纹理数据1511和/或帧缓冲器1541中的一或多者可类似于结合图14描述的对应元件。应注意,系统存储器1514可包含如结合图3到4中的一或多者所描述的一或多个帧缓冲器。举例来说,帧缓冲器1541可为结合图3到4中的一或多者描述的帧缓冲器中的一或多者的实例。在一些配置中,一或多个帧缓冲器可包含于芯片上存储器1510、系统存储器1514或这两者中。
VLIW电路1504可包含图形管线1506和芯片上存储器1510。结合图15描述的图形管线1506可为结合图1到5中的一或多者描述的图形管线106、306中的一或多者的一个实例。另外或替代地,结合图15描述的芯片上存储器1510可为结合图1到5中的一或多者描述的芯片上存储器110、310中的一或多者的一个实例。
芯片上存储器1510可包含高速缓冲存储器1501和/或深度和色彩缓冲器1543。在一些配置中,芯片上存储器1510、高速缓冲存储器1501和/或深度和色彩缓冲器1543中的一或多者可类似于结合图14描述的对应元件。
图形管线1506可包含VP 1574、VS 1576、交换器A-B 1547a-b、TCS 1578、TESS1580、TES 1582、GS 1584、平铺器1549、光栅化器1586和FS 1590中的一或多者。在一些配置中,VP 1574、VS 1576、交换器1547a-b、TCS 1578、TESS 1580、TES 1582、GS 1584、平铺器1549、光栅化器1586和FS 1590中的一或多者可执行结合图14描述的一或多个对应元件的操作中的一或多者。应注意,在一些配置中,如结合图14所描述,FS 1590可包含HSR&DT、TB、T&S、AT和AB中的一或多者。
在图15中说明的配置中,VLIW电路1504(例如图形管线1506)可包含异步存储器控制器1508。异步存储器控制器1508可包含和/或实施于TCS 1578、TESS 1580、TES1582、GS1584、光栅化器1586、FS 1590和平铺器1549中的一或多者中。完全或部分地,例如,异步存储器控制器1508可实施于TCS 1578、TESS 1580、TES 1582、GS 1584、光栅化器1586、FS1590和/或平铺器1549中。一般标记“1508”可表示异步存储器控制器1508可在图15中说明的元件1508a-f中的任一个或全部中实施。在一些配置中,异步存储器控制器1508可仅在TCS 1578、TESS 1580、TES 1582和GS 1584中的一或多者中实施。举例来说,异步存储器控制器1508可仅异步地读取TCS 1578、TESS 1580、TES 1582和/或GS 1584中的一或多个参数,因为可将数据转发到后面的级。
交换器A 1547a可基于模式1545,将数据投送到TCS 1578或投送到平铺器1549。举例来说,模式1545可指示渲染模式。在一些配置中,渲染模式可包含平铺模式(例如基于平铺的推迟渲染(TBDR)模式)和即时模式(例如即时模式渲染(IMR))。如果启用曲面细分,那么交换器A 1547a可投送将经曲面细分的数据。否则,交换器A 1547a可投送将平铺的数据。即时模式可包含结合图8和10中的一或多者描述的操作中的一或多者。平铺模式可包含结合图12描述的操作中的一或多者。
在一些配置中,在平铺模式中,包含于平铺器1549、光栅化器1586和FS 1590中的一或多者中的异步存储器控制器1508e-g可执行分区和/或减少FS 1590的计算。举例来说,异步存储器控制器1508e-g可针对高-LOD区使用较昂贵的着色器,针对中等-LOD区使用中等昂贵的着色器,且针对低-LOD区使用较便宜的着色器。举例来说,注视点渲染可包含几何的LOD和/或着色器计算。在一些配置中(例如,在平铺模式中),可不修改几何形状,但每像素运行的一或多个着色器可具有不同的计算费用。
结合图15描述的异步存储器控制器1508可为结合图1到5中的一或多者描述的异步存储器控制器108、308中的一或多者的实例。举例来说,异步存储器控制器1508可(例如,在数据集的处理期间)从系统存储器1514异步地读取一或多个参数(例如LOD参数)。在一些配置中,可将经更新的参数提供到TCS 1578、TESS 1580、TES 1582、GS 1584、光栅化器1586、FS 1590和平铺器1549中的一或多者。因此,当正处理数据集时,TCS1578、TESS 1580、TES 1582、GS 1584、光栅化器1586、FS 1590和平铺器1549中的一或多者可将数据集的处理改变为不同于最初为数据集建立的处理。
在一些配置中,这可使电子装置1502能够执行单遍次多LOD渲染。举例来说,异步存储器控制器1508可读取LOD参数,其不同于最初为当前正处理和/或渲染(例如曲面细分)的数据集建立的另一LOD参数。可将经更新的LOD提供到TCS 1578、TESS1580、TES 1582、GS1584、光栅化器1586、FS 1590和平铺器1549中的一或多者。因此,TCS 1578、TESS 1580、TES1582、GS 1584、光栅化器1586、FS 1590和平铺器1549可在以一或多个不同参数起始的数据集的处理期间,根据经更新的LOD参数来改变数据集的处理(例如改变曲面细分等级和/或改变一或多个着色器)。
VLIW电路1504(例如图形管线1506)可包含不均匀帧缓冲器控制器1512。如图15中所说明,不均匀帧缓冲器控制器1512可包含和/或实施于FS 1590中。应注意,不均匀帧缓冲器控制器1512可另外或替代地包含和/或实施于FS 1590、图形管线1506和芯片上存储器1510中的一或多者中。完全或部分地,例如,不均匀帧缓冲器控制器1512可实施于FS 1590、图形管线1506、芯片上存储器1510和电子装置1502中的一或多者中。
结合图15描述的不均匀帧缓冲器控制器1512可为结合图1到5中的一或多者描述的不均匀帧缓冲器控制器112、312中的一或多者的实例。举例来说,不均匀帧缓冲器控制器1512可动态地存取一或多个帧缓冲器(例如帧缓冲器1541)的不同子集。在一些配置中,动态地存取帧缓冲器的不同子集可包含以与第二区的至少一个像素不同的速率存取第一区的至少一个像素。另外或替代地,动态地存取帧缓冲器的不同子集可包含实现动态着色器子例程调换(例如,当第一像素的处理在进行中,且第二像素的过程完成时)。另外或替代地,不均匀帧缓冲器控制器1512可经配置以用第一像素的经处理第一样本来取代第二像素的第二样本,以避免处理第二像素的第二样本。图15中所说明的架构可允许芯片上缓冲器(例如深度和色彩缓冲器)的定制配置。这可允许针对VR的并排渲染、mipmap产生等。
另外或替代地,不均匀帧缓冲器控制器312可提供高效帧缓冲器分割、读取和/或写入。举例来说,不均匀帧缓冲器控制器312可使片段着色器(FS)和/或合成/分解块能够以不均匀方式存取帧缓冲器(例如同时以不同细节等级写入到帧缓冲器的不同子集,以不同数目的样本写入到不同子集等)。
图16是说明其中可实施用于渲染多个区的系统和方法的电子装置1651的一个配置的框图。电子装置1651的实例包含智能电话、计算机(例如台式计算机、膝上型计算机等)、头戴式显示器(例如虚拟现实(VR)头戴装置、增强现实(AR)头戴装置等)、VR装置、AR装置、平板装置、媒体播放器、电视机、汽车、交通工具、相机、视频摄录影机、数码相机、蜂窝式电话、个人相机、动作相机、飞机、无人机、无人驾驶飞行器(UAV)、保健设备、游戏控制台、个人数字助理(PDA)、机顶盒、媒体播放器等。在一些配置中,电子装置1651可至少位于交通工具中的可装卸式模块的一部分。举例来说,电子装置1651可包含于交通工具中和/或耦合到交通工具,且可从交通工具移除。结合图16描述的电子装置1651可或可不为结合图1到5以及8到15中的一或多者描述的电子装置102、302、866、902、1066、1102、1266、1302、1466、1502中的一或多者的实例。在一些配置中,电子装置1651的组件或元件中的一或多者可或可不类似于结合图1到5以及8到15中的一或多者描述的对应组件或元件。所述组件或元件中的一或多者可在硬件(例如电路)或硬件与软件的组合(例如具有指令的处理器)中实施。
在一些配置中,电子装置1651可包含存储器1667、一或多个显示器1673、一或多个图像传感器1653、一或多个光学系统1655、一或多个通信接口1657、一或多个天线1659和/或一或多个处理器1661。结合图16描述的元件或组件中的两个或更多个可彼此电子通信。举例来说,处理器1661可耦合到存储器1667(例如与所述存储器电子通信)。处理器1661可包含一或多个中央处理单元(CPU)、超长指令字(VLIW)电路、图形处理单元、专用集成电路(ASIC)等,或其任何组合。举例来说,处理器1661可为结合图1到5以及8到15中的一或多者描述的VLIW电路104、304、868、904、1068、1104、1268、1304、1468、1504。在一些配置中,处理器1661可为具有集成VLIW电路(例如GPU)的CPU,或可为CPU和单独VLIW电路(例如GPU)。举例来说,处理器1661可为用于渲染图像的装置。在一些配置中,所得图像可在一或多个显示器1673上呈现。
通信接口1657可使电子装置1651能够与一或多个其它电子装置通信。举例来说,通信接口1657可为有线和/或无线通信提供接口。在一些配置中,通信接口1657可耦合到一或多个天线1659以用于发射和/或接收射频(RF)信号。另外或替代地,通信接口1657可实现一或多个种有线(例如通用串行总线(USB)、以太网、视频图形阵列(VGA)、数字视频接口(DVI)、高清晰多媒体接口(HDMI)、显示端口、移动高清链路(MHL)等)通信。
在一些配置中,可实施和/或利用多个通信接口1657。举例来说,一个通信接口1657可为蜂窝式(例如3G、长期演进(LTE)、CDMA等)通信接口1657,另一通信接口1657可为以太网接口,另一通信接口1657可为通用串行总线(USB)接口,又一通信接口1657可为无线局域网(WLAN)接口(例如电气电子工程师学会(IEEE)802.11接口),且又一通信接口1657可为蓝牙接口。
在一些配置中,电子装置1651可执行结合图1到15以及17到24中的一或多者描述的功能、程序、方法、步骤等中的一或多者。另外或替代地,电子装置1651可包含结合图1到15以及17到24中的一或多者描述的结构中的一或多者。
存储器1667可存储指令和/或数据。存储器1667可包含系统存储器和/或芯片上存储器。结合图16描述的存储器1667可或可不为结合图1到5以及8到15中的一或多者描述的存储器110、114、310、314、803、805、910、914、1003、1005、1110、1114、1203、1205、1310、1314、1403、1405、1510、1514中的一或多者的实例。处理器1661可存取存储器1667(例如从存储器读取和/或写入到所述存储器)。存储器1667可存储几何数据1669。在一些配置中,存储器1667可包含帧缓冲器1671。帧缓冲器1671可为用于存储图像数据的存储器1667的一部分。在一些配置中,经缓冲的图像数据可在一或多个显示器1673上呈现。
在一些配置中,处理器1661可包含用于渲染图像的一或多个元件。所述元件的一些实例可包含前端(FE)、顶点处理器(VP、顶点获取器(VF)、顶点着色器(VS)、曲面细分控制着色器(TCS)、外壳着色器(HS)、棋盘形布置器(例如曲面细分引擎)(TESS)、曲面细分评估着色器(TES)、域着色器(DS)、几何着色器(GS)、光栅化器(Rast)、片段着色器(FS)、像素着色器(PS)、铺瓦器、渲染输出单元(ROP)、修剪器(Clip)和/或流输出(SOL)等。在一些配置中,这些元件中的一或多者可被称为图形管线。
处理器1661可包含和/或实施多区渲染器1663。举例来说,多区渲染器可在硬件或硬件与软件的组合中实施。多区渲染器1663可渲染图像的多个区。举例来说,多区渲染器1663可基于几何数据1669渲染图像的多个区。可以不同的经曲面细分的细节等级来渲染所述多个区。举例来说,多区渲染器1663可渲染N个区,其中所述区中的至少两个具有不同的经曲面细分的细节等级。举例来说,多区渲染器可以第一经曲面细分的细节等级来渲染图像的第一区,且可以第二较高经曲面细分的细节等级来渲染图像的第二区。所述区可为静态或动态的。举例来说,所述区可位于显示器1673上的预定位置。因此,多区渲染器1663可以对应于静态区的细节等级来渲染几何形状。在其它配置中,所述区可为动态的。举例来说,所述区可基于眼睛跟踪和/或其它因素(例如对象类型、优先权、接收到的设定等)而移动。在一些配置中,区可为圆形区域(或另一形状的区域),其中心大约在显示器(例如图像)的用户正在看的点上。在其它配置中,区可为对应于用户正观看的视窗的图像的整个区域。
电子装置1651可耦合到一或多个显示器1673。举例来说,电子装置1651可包含一或多个显示器1673,和/或可耦合到一或多个外部(例如远程)显示器1673。显示器1673的实例包含液晶显示器(LCD)面板、发光二极管(LED)面板(例如有机发光二极管(OLED))面板、阴极射线管(CRT)显示器、监视器、电视机、投影仪、等离子显示器、头戴式显示器、电子墨水显示器等。
在一些配置中,显示器1673可能够在一或多个窗(例如车窗、建筑物窗等)上呈现图像。举例来说,显示器1673可包含一或多个窗投影仪和/或一或多个集成窗显示面板。多区渲染器1663可渲染多个区(其中例如,两个或更多个区可具有不同的细节等级)。在一些配置中,电子装置1651(例如处理器1661)可在不同窗上呈现不同的区。举例来说,第一区可在第一窗(例如挡风玻璃)上呈现,第二区可在第二窗(例如车门窗)上呈现,和/或第三区可在第三窗(例如后车窗)上呈现。在一些配置中,不同区可在同一窗的不同区段上呈现。举例来说,第一区可在窗的第一区段(例如挡风玻璃的驾驶员侧区段)上呈现,且第二区可在所述窗的第二区段(例如挡风玻璃的乘客侧区段)上呈现。在另一实例中,所述区可呈现为窗上的条(例如水平或垂直条)。举例来说,第一区可在窗(例如挡风玻璃)上的中间水平条上呈现,而第二区可在所述窗(例如挡风玻璃)上的下部和上部水平条上呈现。在一些配置中,可利用前述方法的组合。举例来说,第一区可在挡风玻璃的驾驶员侧上呈现,第二区可在挡风玻璃的乘客侧上提供,且第三区域可在车门窗上呈现。可实施其它变化。
在一些配置中,电子装置1651可包含异步存储器控制器和/或不均匀帧缓冲器控制器。举例来说,多区渲染器1663可包含和/或耦合到异步存储器控制器和/或不均匀帧缓冲器控制器。多区渲染器1663可或可不根据结合如本文所述的异步存储器控制器和/或不均匀帧缓冲器控制器描述的操作、功能和/或方法来渲染所述多个区。举例来说,电子装置1651可或可不执行如本文所述的单遍次多LOD渲染。
电子装置1651可获得一或多个图像(例如数字图像、图像帧、视频等)。所述一或多个图像可为一或多个用户和/或场景(例如,一或多个对象和/或背景)的图像。举例来说,电子装置1651可包含一或多个图像传感器1653和/或一或多个光学系统1655(例如透镜),其将位于光学系统1655的视野内的对象的图像聚焦到图像传感器1653上。在一些配置中,图像传感器1653可捕获一或多个图像。图像传感器1653和/或光学系统1655可耦合到处理器1661和/或由所述处理器控制。
另外或替代地,电子装置1651可从另一装置(例如耦合到电子装置1651的外部图像传感器、网络服务器、业务相机、水下摄像头、机动车相机、网络相机等)请求和/或接收一或多个图像。在一些配置中,电子装置1651可经由通信接口1657请求和/或接收一或多个图像。举例来说,电子装置1651可包含或可不包含相机(例如图像传感器1653和/或光学系统1655),且可从远程装置接收图像。
在一些配置中,包含于电子装置1651中的一或多个图像传感器1653和/或耦合到电子装置1651的一或多个其它图像传感器可经定向以捕获用户的一或多个图像。举例来说,智能电话可包含安装在与显示器(例如显示器1673)相同的面上的相机。以此方式,相机可在用户正看着显示器时,捕获用户的图像。在另一实例中,相机可安装在交通工具的控制台和/或方向盘中,以捕获用户(例如驾驶员)的图像。
另外或替代地,包含于电子装置1651中的一或多个图像传感器1653和/或耦合到电子装置1651的一或多个其它图像传感器可经定向以捕获景物。举例来说,一或多个相机可安装在智能电话的背侧上。在另一实例中,一或多个相机可安装在交通工具的外部。在一些配置中,电子装置1651可在增强现实(AR)应用、虚拟现实(VR)应用和/或其它应用(例如环绕视图可视化、驾驶员辅助、高级驾驶员辅助系统(ADAS)等)中利用景物的图像。
在一些配置中,图像传感器1653所捕获的和/或经由通信接口1657接收到的图像可由电子装置1651用于眼睛跟踪。举例来说,处理器1661可包含和/或实施眼睛跟踪器1665。眼睛跟踪器1665可跟踪一或多个用户的眼睛的注视(例如视线方向)。举例来说,眼睛跟踪器1665可定位图像中的一或多个用户的眼睛,且可估计所述用户的注视(例如视线方向)。举例来说,眼睛跟踪器1665可确定(例如估计)用户正在看显示器(例如显示器1673或外部显示器)上的何处,和/或用户正在看显示器所呈现的图像上的何处。换句话说,眼睛跟踪器1665可确定(例如估计)用户的注视相对于图像和/或显示器指向何处。在一些配置中,眼睛跟踪器1665可类似于上文结合图3所述的眼睛跟踪器326来执行眼睛跟踪。
在一些配置中,多区渲染器1663可基于眼睛跟踪来渲染图像的一或多个区。图像的区可具有不同细节等级。举例来说,多区渲染器1663可以不同的细节等级来渲染多个区,其中在用户当前正在看的区域中渲染具有最高细节等级的区。在一些配置中,这可被称为注视点渲染。眼睛跟踪器1665可产生眼部跟踪信息。眼部跟踪信息可指示用户的注视相对于显示器和/或图像指向(例如用户的若干注视指向)何处。在一些配置中,处理器1661和/或处理器1661可基于眼睛跟踪信息来确定一或多个LOD参数。LOD参数可指示将为图像的一或多个区渲染的LOD。LOD参数可存储在存储器1667中。可或可不关于正由处理器1661处理的数据集(例如绘制调用)异步地更新LOD参数。
眼睛跟踪器1665可检测用户何时改变注视来看图像的不同部分。本文公开的系统和方法可基于眼睛跟踪(例如眼睛跟踪信息和/或LOD参数)来改变LOD渲染。举例来说,多区渲染器1663可增加用户已改变注视来检视的图像的区域中的LOD。另外或替代地,本文公开的系统和方法可减小用户的注视不再指向的图像的区域中的LOD。如上文所描述,在一些配置中,不同区可对应于不同窗。多区渲染器1663可基于用户正在看的哪一窗来改变对应于窗(和/或窗区段)的区。举例来说,当用户(例如驾驶员)正在看(例如透过)挡风玻璃时,多区渲染器1663可渲染交通工具的挡风玻璃上的高LOD区。当用户(例如驾驶员)看另一窗(例如转头检查盲点和/或倒车等)时,多区渲染器1663可将高LOD区改变到用户正在看(例如透过)的窗(例如侧窗和/或后窗)。
在一些配置中,眼睛跟踪器1665可跟踪多个用户中的每一者的一或多个眼睛(例如驾驶员的眼睛和一或多个乘客的眼睛)。本文公开的系统和方法可基于眼睛跟踪(例如眼睛跟踪信息和/或LOD参数)来区分区渲染(例如LOD渲染)的优先级。在一些方法中,多区渲染器1663可为对应于一个用户的区(或例如,为对应于一组优先权用户的区)提供较高LOD,且为对应于一或多个其它用户的一或多个区提供一或多个较低LOD。另外或替代地,多区渲染器1663可首先渲染对应于一个用户的区,且然后可渲染对应于一或多个其它用户的一或多个其它区(例如,依序)。举例来说,多区渲染器1663可在驾驶员正观看的图像的区域中提供增加的LOD,和/或可首先渲染驾驶员正观看的图像的区域中的图像。多区渲染器1663可在乘客正观看的图像的区域中提供较低LOD,和/或可渲染在驾驶员之后的乘客正观看的图像的区域中的图像。在一些配置中,优先权可为预定的(例如制造商和/或用户可设定优先权),可基于用户位置(例如交通工具驾驶员变得最高优先权,且乘客获得较低优先权),和/或可基于用户辨识(例如所辨识的用户获得较高优先级,其它所辨识和/或未辨识的用户获得较低优先权)。
本文所公开的系统和方法可提供窗显示技术的改进。举例来说,交通工具可配备有一或多个窗显示器(例如窗投影仪和/或窗显示面板)。窗显示器可经配置以在一或多个应用程序中操作。举例来说,交通工具窗显示器可向驾驶员呈现驱动方向。举例来说,电子装置1651可用示出小街道处即将出现转弯的箭头来渲染图像。可渲染和/或呈现其它图像。举例来说,电子装置1651可渲染指示符和/或突出显示,其示出和/或强调街道记号、停止记号、交通灯、行人、导航信息(例如驱动方向、地图、交通工具位置、目的地等)、障碍、警告、其它安全信息(例如距前方另一交通工具的距离、当前速度下是否存在足够的停止距离等)、交通工具信息(例如当前速度、低燃料指示符、每分钟转速(RPM)、行进的距离、温度、时间、油变化指示符、检查引擎指示符、发动机温度、温度警告)、娱乐信息(例如无线电台、音乐名称、歌曲持续时间、歌曲播放时间、电影名称、电影持续时间、电影播放时间、电影内容、照片内容等)、通信信息(例如电话呼叫信息、局域网(LAN)状态、蓝牙连接性等)等。
随着图像内容的质量继续增加(例如更详细的几何形状、更高的分辨率纹理、更大的显示区域等),显示高度详细的内容可能较困难。这对于其中处理带宽和/或电力效率限制成问题的平台来说可能尤其如此。以不同的细节等级(例如经曲面细分的细节等级)来渲染不同的区可有助于区分渲染资源的优先级。因此,可将更多的细节提供给更重要和/或用户更关注的信息。举例来说,可渲染具有较高LOD的区,其为用户正在看和/或可能看的地方(例如在挡风玻璃的中间部分,用户的眼睛凝视的地方、正显示警告的地方等)。这可提供改进的经历,因为有趣和/或重要的信息以较高细节呈现。另外或替代地,可用较少细节来渲染其中用户可能不注意较少的细节(例如在外围视觉中)的区域和/或通常含有较不重要的信息的区域(例如一侧窗),以节约处理和/或能量资源。
应注意,经曲面细分的细节等级不同于像素分辨率。举例来说,像素分辨率可指像素密度和/或多少像素专用于某一图像(或图像的区域)。经曲面细分的细节等级可指如何曲面细分(例如细分)经精细渲染的几何形状。举例来说,专用于渲染几何形状和/或图像的区域的较大数目的点、多边形和/或线可反映经曲面细分的细节等级(LOD)。另外或替代地,不同细节等级可对应于不同质量着色器(例如较高LOD可对应于较高质量着色器,其中执行更详细和/或昂贵的处理)。应注意,在一些配置中,像素分辨率可限定曲面细分等级。举例来说,1个像素可能不需要100个三角形;10×10平铺块可能不需要1,000个三角形等。
在一些配置中,电子装置1651可包含相机应用程序和/或显示器1673。当相机应用程序正在运行时,图像传感器1653可捕获位于光学系统1655的视野内的对象的图像。图像传感器1653正捕获的图像可呈现于显示器1673上。在一些配置中,这些图像可以相对较高的帧率快速连续显示,因此在任何给定时刻处,位于光学系统1655的视野内的对象都呈现在显示器1673上。
应注意,电子装置1651中所说明的元件中的一或多者可为任选的。举例来说,可或可不包含和/或实施电子装置1651中所说明的元件中的一或多者。另外或替代地,处理器1661中说明的元件中的一或多者可与处理器1661分开实施(例如在其它电路中、另一处理器上、单独的电子装置上等)。举例来说,图像传感器1653、光学系统1655、通信接口1657、眼睛跟踪器1665和/或显示器1673可不在电子装置1651上实施。在一些配置中,电子装置1651可从另一装置接收图像和/或眼睛跟踪信息。另外或替代地,一或多个显示器可在单独装置上实施。
在一些配置中,电子装置1651可在显示器1673上呈现用户接口1675。举例来说,用户接口1675可使用户能够与电子装置1651交互。在一些配置中,显示器1673可为接收来自物理触摸(例如通过手指、触笔或其它工具)的输入的触摸屏。另外或替代地,电子装置1651可包含另一输入接口或耦合到另一输入接口。举例来说,电子装置1651可包含面向用户的相机,且可检测用户示意动作(例如,手部示意动作、臂部示意动作、眼部跟踪、眨眼等)。在另一实例中,电子装置1651可耦合到鼠标,且可检测鼠标点击。应注意,在一些配置中,无用户输入可为必要的。
在一些配置中,电子装置1651可任选地包含运动传感器(例如陀螺仪、加速计等)。举例来说,运动传感器可检测(例如,电子装置1651的)运动和/或定向。在一些配置中,正渲染的图像可基于运动和/或定向信息。举例来说,电子装置1651可为头戴式显示器(例如虚拟现实(VR)头戴装置、增强现实(AR)头戴装置等)、交通工具(例如机动车、无人机、飞机等)、移动装置(例如智能电话),或可利用运动和/或定向信息来渲染图像的其它装置。举例来说,运动和/或定向信息可指示经渲染场景中的大体检视方向。在一些配置中,除眼睛跟踪信息之外或作为所述眼睛跟踪的另一选择,电子装置1651可基于此检视方向来渲染图像。
图17是说明用于渲染多个区的方法1700的流程图。方法1700可由结合图16描述的电子装置1651执行。
电子装置1651可渲染1702图像的第一区。这可如上文结合图16所描述来实现。举例来说,电子装置1651可执行对应于图像的第一区的几何获取(例如顶点获取)、顶点着色、曲面细分控制着色、曲面细分、曲面细分评估着色、几何着色、平铺、光栅化和/或片断着色中的一或多者。
电子装置1651可渲染1704图像的第二区。这可如上文结合图16所描述来实现。举例来说,电子装置1651可执行对应于图像的第二区的几何获取(例如顶点获取)、顶点着色、曲面细分控制着色、曲面细分、曲面细分评估着色、几何着色、平铺、光栅化和/或片断着色中的一或多者。第一区可具有比第二区高的经曲面细分的细节等级。举例来说,第一区可具有比第二区的曲面细分设置高的曲面细分设置(例如较高的几何密度)。
电子装置1651可在至少一个交通工具窗上呈现1706第一区和第二区。这可如上文结合图16所描述来实现。举例来说,第一区和第二区可在窗(例如挡风玻璃)的单独区段上和/或不同窗上呈现。
图18是说明窗显示器的一些实例1877a-b的图。具体地说,实例A 1877a说明窗A1879a(例如挡风玻璃)。在实例A 1877a中,安装投影仪1881来将图像投影到窗A 1879a上。举例来说,一或多个投影仪1881可安装于交通工具的仪表板、车门中、上车顶和/或车壁(例如框架)上。在一些配置中,单个投影仪1881可经配置以将图像投影到一或多个窗。在其它配置中,多个投影仪1881可经配置以将图像投影到一或多个窗。在一些配置中,可将投影仪1881在可装卸式装置和/或移动装置中。
实例B 1877b说明窗B 1879b(例如挡风玻璃)。在实例B 1877b中,集成显示器1883可附接到窗B 1879。举例来说,集成显示器1883可为透明的或半透明的。集成显示器1883可在窗B 1879b上呈现图像。举例来说,集成显示器1883可为LCD面板、OLED面板等。在一些配置中,单个投影仪集成显示器1883可经配置以在一或多个窗上呈现图像。在其它配置中,多个集成显示器1883可经配置以在一或多个车窗上呈现图像。应注意,窗投影仪和/或集成显示器可在许多种类的窗(例如交通工具、建筑物、飞机、船、电车、火车等中的窗)中实施。
图19是说明窗1979上的区1985a-b的一个实例的图。在此实例中,区A 1985a是窗1979(例如挡风玻璃)的侧区段(例如左侧区段),且区B 1985b是窗的另一侧区段(例如右侧区段)。假定窗1979是交通工具中的挡风玻璃,例如电子装置1651(例如多区渲染器1663)可在对应于驾驶员侧的区(例如区A 1985a)中渲染较高细节等级。可在对应于乘客侧的区(例如区B 1985b)中渲染较低等级的细节。以此方式,驾驶员可在驾驶员通常看到的区域中检视图像的较高等级细节。应注意,可渲染不同数目个区。另外或替代地,区1985a-b可各自占用窗1979的一半或不同比例(例如70%与30%)。
图20是说明窗2079上的区2085a-c的另一实例的图。在此实例中,区A 2085a是跨越窗2079(例如挡风玻璃)的中间部分的水平条。区B 2085b包含定界区A 2085a的两个水平条,且区C 2085c包含定界区B 2085b的两个水平条。假定窗2079是交通工具中的挡风玻璃,例如电子装置1651(例如多区渲染器1663)可在区A 2085a中渲染较高等级的细节。可在区B2085b中渲染较低等级的细节。可在区C 2085c中渲染更低等级的细节。以此方式,当驾驶员看整个挡风玻璃时,其可检视驾驶员看到的区域中的图像的较高等级的细节。应注意,可渲染不同数目个区。另外或替代地,区2085a-c可各自占用窗2079的等于或不同比例(例如50%/30%/20%)。
图21是说明多个窗2179a-e上的区2185a-c的另一实例的图。在此实例中,在窗A2179a(例如挡风玻璃)上渲染区A 2185a。在窗B 2179b和窗C 2179c(例如左前和右前窗)上渲染区B 2185b。在窗D 2179d和窗E 2179e(例如左后和右后窗)上渲染区C 2185c。假定窗A 2179a是交通工具中的挡风玻璃,例如电子装置1651(例如多区域渲染器1663)可在区A2185a中渲染较高等级的细节。可在区B 2185b中渲染较低等级的细节。可在区C 2185c中渲染更低等级的细节。以此方式,当驾驶员看向挡风玻璃外时,其可检视驾驶员看到的区域中的图像的较高等级的细节。应注意,可渲染不同配置的区和/或不同数目个区。举例来说,可在后窗上渲染区C 2185c(或另一区)。
图22是说明用于渲染多个区的方法2200的较具体配置的流程图。方法2200可由结合图16描述的电子装置1651执行。
电子装置1651可执行2202眼睛跟踪。这可结合图3、5和16中的一或多者所描述来实现。举例来说,电子装置1651可捕获用户(例如一或多个用户)的一或多个图像。电子装置1651可识别图像中的一或多个用户的一或多个眼睛。电子装置1651接着可确定所述一或多个用户的眼睛相对于一或多个显示器(例如显示器1673)和/或显示器上的图像指向何处。
电子装置1651可基于眼睛跟踪来渲染2204图像的第一区。这可结合图1到5以及8到17中的一或多者所描述来实现。举例来说,电子装置1651可执行对应于图像的第一区的几何获取(例如顶点获取)、顶点着色、曲面细分控制着色、曲面细分、曲面细分评估着色、几何着色、平铺、光栅化和/或片断着色中的一或多者。第一区的位置可基于眼睛跟踪。举例来说,电子装置1651可建立第一区,作为用户的眼睛所指向的位置周围的图像的区段。在一些配置中,第一区可为圆形区域(或另一形状的区域),其中心大约在显示器(例如图像)的用户正在看的点上。在其它配置中,第一区可为对应于用户正观看的窗的图像的整个区域。
电子装置1651可基于眼睛跟踪来渲染2206图像的第二区。这可结合图1到5以及8到17中的一或多者所描述来实现。举例来说,电子装置1651可执行对应于图像的第二区的几何获取(例如顶点获取)、顶点着色、曲面细分控制着色、曲面细分、曲面细分评估着色、几何着色、平铺、光栅化和/或片断着色中的一或多者。第一区可具有比第二区高的经曲面细分的细节等级。举例来说,第一区可具有比第二区的曲面细分设置高的曲面细分设置(例如较高的几何密度)。第二区的位置可基于眼睛跟踪。在一些配置中,电子装置1651可建立第二区,作为第一区周围的图像的区段。举例来说,第二区可为环绕第一区的圆形区域(或另一形状的区域)。在其它配置中,第二区可为对应于用户不在观看的窗的图像的区域。在其它配置中,第二区可为除第一区之外的整个图像。应注意,可渲染更多的区。所述区可或可不重叠。在一些配置中,可如结合图16所描述,对区渲染进行优先级排序。
电子装置1651可在至少一个交通工具窗上呈现2208第一区和第二区。此操作可如上文结合图16到21中的一或多者所描述来实现。举例来说,第一区和第二区可在窗(例如挡风玻璃)的单独区段上和/或不同窗上呈现。
图23是说明窗2379上的区2385a-c的另一实例的图。在此实例中,基于眼睛跟踪,区域A 2385a是用户正在看的窗2379(例如挡风玻璃)的圆形区域。区域B 2385b是环绕区域A 2385a的圆形区域。区C 2385c是窗2379的不包括区A 2385a和区B 2385b的区域。举例来说,,假定窗2379是交通工具中的挡风玻璃,电子装置1651(例如多区渲染器1663)可在区域A 2385a中渲染较高等级的细节。可在区B 2385b中渲染较低等级的细节。可在区C 2385c中渲染更低等级的细节。以此方式,驾驶员可检视驾驶员当前正在看(挡风玻璃上的任何地方)的区域中的图像的较高等级的细节。应注意,可渲染不同数目个区。
图24说明可包含在电子装置2487内的某些组件。电子装置2487可为相机、视频可携式摄像机、数码相机、蜂窝式电话、智能电话、计算机(例如桌上型计算机、膝上型计算机等)、平板装置、媒体播放器、电视机、交通工具、头戴装置(例如虚拟现实头戴装置、增强现实头戴装置)、头戴式显示器、个人相机、运动相机、监控摄像头、所安裝相机、所连接相机、机器人、飞机、无人机、无人驾驶飞行器(UAV)、保健设备、游戏控制台、个人数字助理(PDA)、机顶盒等(或可包含于其内)。可根据本文所述的电子装置102、302、866、902、1066、1102、1266、1302、1466、1502、1651中的一或多者来实施电子装置2487。
电子装置2487包含处理器2407。处理器2407可为通用单芯片或多芯片微处理器(例如,ARM)、专用微处理器(例如,数字信号处理器(DSP))、微控制器、可编程门阵列等。处理器2407可被称为中央处理单元(CPU)和/或VLIW电路(例如GPU)。处理器2407可根据本文所述的VLIW电路104、304、868、904、1068、1104、1268、1304、1468、1504和/或处理器324、1015、1124、1661中的一或多者来实施。尽管电子装置2487中仅示出单个处理器2407,但在替代配置中,可使用处理器的组合(例如ARM和DSP、CPU和GPU等)。
电子装置2487还包含存储器2489。存储器2489可为能够存储电子信息的任何电子组件。存储器2489可体现为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储媒体、光学存储媒体、RAM中的快闪存储器装置、随处理器包含的机载存储器、EPROM存储器、EEPROM存储器、寄存器等,包含其组合。可根据本文所述的存储器110、114、310、314、803、805、910、914、1003、1005、1110、1114、1203、1205、1310、1314、1403、1405、1510、1514、1667中的一或多者来实施存储器2489。
数据2493a和指令2491a可存储于存储器2489中。指令2491a可由处理器2407执行以实施本文中所描述的方法200、500、600、1700、2200中的一或多者。执行指令2491a可涉及使用存储于存储器2489中的数据2493a。当处理器2407执行指令2491时,可将指令2491b的各部分加载到处理器2407上,且可将各段数据2493b加载到处理器2407上。
电子装置2487还可包含发射器2497和接收器2499,以允许将信号发射到电子装置2487和从所述电子装置接收信号。发射器2497和接收器2499可统称为收发器2401。一或多个天线2409a-b可电连接到收发器2401。电子装置2487还可包含(未图示)多个发射器、多个接收器、多个收发器和/或额外天线。
电子装置2487可包含数字信号处理器(DSP)2403。电子装置2487还可包含通信接口2405。通信接口2405可实现一或多个种类的输入和/或输出。举例来说,通信接口2405可包含用于将其它装置链接到电子装置2487的一或多个端口和/或通信装置。另外或替代地,通信接口2405可包含一或多个其它接口(例如,触摸屏、小键盘、键盘、麦克风、相机等)。举例来说,通信接口2405可使用户能够与电子装置2487交互。
电子装置2487的各种组件可通过一或多个总线耦合在一起,所述总线可包含电力总线、控制信号总线、状态信号总线、数据总线等。为清楚起见,各种总线在图24中说明为总线系统2495。
术语“确定”涵盖各种各样的动作,且因此“确定”可包含计算、估计、处理、导出、调查、查找(例如,在表、数据库或另一数据结构中查找)、查实等。并且,“确定”可包含接收(例如,接收信息)、存取(例如,存取存储器中的数据)等。此外,“确定”可包括解决、选择、挑选、建立等等。
除非另外明确地指定,否则短语“基于”并不意味着“仅基于”。换句话说,短语“基于”描述“仅基于”与“至少基于”两者。
术语“处理器”应大体上解释为包含通用处理器、中央处理单元(CPU)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、控制器、微控制器、状态机等。在一些情况下,“处理器”可指代专用集成电路(ASIC)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)等。术语“处理器”可指处理装置的组合,例如DSP和微处理器的组合、多个微处理器的组合、一或多个微处理器结合DSP核心、CPU和GPU的组合,或任何其它此类配置。
术语“存储器”应广义上解释为涵盖能够存储电子信息的任何电子组件。术语存储器可指各种类型的处理器可读媒体,例如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除PROM(EEPROM)、快闪存储器、磁性或光学数据存储器、寄存器等。如果处理器可从存储器读取信息和/或写入信息到存储器,那么存储器被称为与处理器电子连通。与处理器成一体的存储器与处理器电子通信。
术语“指令”和“代码”应被广泛解释为包含任何类型的计算机可读语句。举例来说,术语“指令”和“代码”可指代一或多个程序(program)、例程、子例程、函数、程序(procedure)等。“指令”和“代码”可包括单个计算机可读语句或许多计算机可读语句。
本文中所描述的功能可实施于由硬件执行的软件或固件中。所述功能可存储为计算机可读媒体上的一或多个指令。术语“计算机可读媒体”或“计算机程序产品”指代可由计算机或处理器存取的任何有形存储媒体。作为实例而非限制,计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。如本文所使用的磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。应注意,计算机可读媒体可为有形且非暂时性的。术语“计算机程序产品”是指与可由计算装置或处理器执行、处理或计算的代码或指令(例如,“程序”)组合的计算装置或处理器。如本文中所使用,术语“代码”可指可由计算装置或处理器执行的软件、指令、代码或数据。
还可经由发射媒体发射软件或指令。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线路(DSL)或无线技术(例如,红外线、无线电和微波)从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如,红外线、无线电和微波)包含在传输媒体的定义中。
本文中所揭示的方法包括用于实现所描述方法的一或多个步骤或动作。在不脱离所附权利要求书的范围的情况下,方法步骤和/或动作可彼此互换。换句话说,除非正描述的方法的适当操作需要步骤或动作的特定次序,否则,在不脱离权利要求书的范围的情况下,可修改特定步骤和/或动作的次序和/或使用。
另外,应了解,用于执行本文中描述的方法和技术的模块和/或其它适当装置可下载和/或通过装置另外获得。举例来说,装置可耦合到服务器以促进用于执行本文中所描述的方法的装置的传送。或者,本文所述的各种方法可经由存储装置(例如随机存取存储器(RAM)、只读存储器(ROM)、物理存储媒体,例如压缩光盘(CD)或软性磁盘等)提供,使得在将存储装置耦合或提供到装置后,所述装置可即刻获得所述各种方法。
应理解,所附权利要求书不限于上文所说明的精确配置和组件。在不脱离权利要求书的范围的情况下,可在本文中所描述的系统、方法和设备的布置、操作和细节方面进行各种修改、改变和变更。
Claims (28)
1.一种电子装置,其包括:
存储器;
超长指令字VLIW电路,其包括异步存储器控制器,其中所述异步存储器控制器经配置以异步存取所述存储器以在单个绘制调用中渲染不同细节等级;以及
不均匀帧缓冲器,其包括不同子集,其中所述不同子集对应于所述不同细节等级。
2.根据权利要求1所述的电子装置,其中所述电子装置进一步包括不均匀帧缓冲器控制器,其经配置以动态地存取所述不均匀帧缓冲器的所述不同子集。
3.根据权利要求2所述的电子装置,其中所述不均匀帧缓冲器控制器经配置以便以与第二区的至少一个像素不同的速率来存取第一区的至少一个像素,其中所述第一区和所述第二区对应于所述不同细节等级。
4.根据权利要求2所述的电子装置,其中所述不均匀帧缓冲器控制器经配置以在第一像素的处理在进行中且第二像素的处理完成时,实现着色器子例程调换。
5.根据权利要求2所述的电子装置,其中所述不均匀帧缓冲器控制器经配置以用第一像素的经处理的第一样本取代第二像素的第二样本,以避免处理所述第二像素的所述第二样本,其中所述第一像素具有与所述第二像素不同数目的样本。
6.根据权利要求2所述的电子装置,其中所述不均匀帧缓冲器控制器包含于合成/分解C/D块中、包含于所述存储器中,或与所述C/D块和所述存储器分开。
7.根据权利要求1所述的电子装置,其中所述VLIW电路包括曲面细分控制着色器TCS、曲面细分器TESS、曲面细分评估着色器TES、几何着色器GS、光栅化器和片段着色器FS,且其中所述TCS、TESS、TES、GS、光栅化器和FS中的一或多者包括所述异步存储器控制器。
8.根据权利要求1所述的电子装置,其中所述存储器包含于所述VLIW电路中,且其中所述异步存储器控制器经配置以异步地存取所述存储器中的细节等级LOD参数。
9.根据权利要求1所述的电子装置,其中所述VLIW电路包括曲面细分控制着色器TCS、曲面细分器TESS、曲面细分评估着色器TES、几何着色器GS、光栅化器、片段着色器FS和平铺器,且其中所述TCS、TESS、TES、GS、光栅化器、FS和平铺器中的一或多者包括所述异步存储器控制器。
10.根据权利要求1所述的电子装置,其中所述存储器是系统存储器,且其中所述异步存储器控制器经配置以异步地存取所述存储器中的细节等级LOD参数。
11.根据权利要求1所述的电子装置,其中所述异步存储器控制器经配置以在数据集的处理期间,异步地存取参数数据。
12.根据权利要求1所述的电子装置,其中所述VLIW电路经配置以横越单个数据集中的第一区与第二区之间的区边界执行不均匀细节等级曲面细分,其中所述第一区和所述第二区对应于不同的细节等级。
13.根据权利要求1所述的电子装置,其中当所述绘制调用的细节等级基于眼睛跟踪而在处理所述单个数据集期间改变时,所述VLIW电路经配置以在单个数据集中执行不均匀细节等级曲面细分。
14.根据权利要求1所述的电子装置,其进一步包括显示器,所述显示器经配置以呈现所述不同细节等级。
15.根据权利要求1所述的电子装置,其中所述不均匀帧缓冲器经配置以将具有所述不同细节等级的像素存储在所述不均匀帧缓冲器的所述不同子集中。
16.一种由电子装置执行的方法,所述方法包括:
获得几何数据;以及
异步地存取存储器以在单个绘制调用中渲染不同的细节等级,其中不均匀帧缓冲器的不同子集对应于所述不同细节等级。
17.根据权利要求16所述的方法,其进一步包括动态地存取所述不均匀帧缓冲器的所述不同子集。
18.根据权利要求17所述的方法,其进一步包括以与第二区的至少一个像素不同的速率存取第一区的至少一个像素,其中所述第一区和所述第二区对应于所述不同细节等级。
19.根据权利要求17所述的方法,其进一步包括当第一像素的处理在进行中且第二像素的处理完成时,调换着色器子例程。
20.根据权利要求16所述的方法,其进一步包括异步地存取所述存储器中的细节等级LOD参数。
21.根据权利要求16所述的方法,其进一步包括在数据集的处理期间异步地存取参数数据。
22.根据权利要求16所述的方法,其进一步包括横越单个数据集中的第一区与第二区之间的区边界执行不均匀细节等级曲面细分,其中所述第一区和所述第二区对应于不同细节等级。
23.根据权利要求16所述的方法,其进一步包括当所述绘制调用的细节等级基于眼睛跟踪在处理所述单个数据集期间改变时,在单个数据集中执行不均匀细节等级曲面细分。
24.根据权利要求16所述的方法,其进一步包括将具有所述不同细节等级的像素存储在所述不均匀帧缓冲器的所述不同子集中。
25.一种存储有指令的非暂时性有形计算机可读媒体,在被处理器执行时,所述指令使所述处理器进行以下操作:
获得几何数据;以及
异步地存取存储器以在单个绘制调用中渲染不同细节等级,其中不均匀帧缓冲器的不同子集对应于所述不同细节等级。
26.根据权利要求25所述的计算机可读媒体,其中所述指令进一步使所述处理器动态地存取所述不均匀帧缓冲器的所述不同子集。
27.一种设备,其包括:
用于获得几何数据的装置;以及
用于异步地存取存储器以在单个绘制调用中渲染不同细节等级的装置,其中不均匀帧缓冲器的不同子集对应于所述不同细节等级。
28.根据权利要求27所述的设备,其进一步包括用于动态地存取所述不均匀帧缓冲器的所述不同子集的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/993,685 US10643296B2 (en) | 2016-01-12 | 2016-01-12 | Systems and methods for rendering multiple levels of detail |
US14/993,685 | 2016-01-12 | ||
PCT/US2016/064760 WO2017123340A1 (en) | 2016-01-12 | 2016-12-02 | Systems and methods for rendering multiple levels of detail |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108475497A CN108475497A (zh) | 2018-08-31 |
CN108475497B true CN108475497B (zh) | 2021-01-22 |
Family
ID=57796963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680078340.3A Active CN108475497B (zh) | 2016-01-12 | 2016-12-02 | 用于渲染多个细节等级的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10643296B2 (zh) |
EP (1) | EP3403258A1 (zh) |
CN (1) | CN108475497B (zh) |
WO (1) | WO2017123340A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9857871B2 (en) | 2015-09-04 | 2018-01-02 | Sony Interactive Entertainment Inc. | Apparatus and method for dynamic graphics rendering based on saccade detection |
CN105657408B (zh) * | 2015-12-31 | 2018-11-30 | 北京小鸟看看科技有限公司 | 虚拟现实场景的实现方法和虚拟现实装置 |
US10643381B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10372205B2 (en) | 2016-03-31 | 2019-08-06 | Sony Interactive Entertainment Inc. | Reducing rendering computation and power consumption by detecting saccades and blinks |
US10401952B2 (en) | 2016-03-31 | 2019-09-03 | Sony Interactive Entertainment Inc. | Reducing rendering computation and power consumption by detecting saccades and blinks |
US10192528B2 (en) | 2016-03-31 | 2019-01-29 | Sony Interactive Entertainment Inc. | Real-time user adaptive foveated rendering |
US10169846B2 (en) * | 2016-03-31 | 2019-01-01 | Sony Interactive Entertainment Inc. | Selective peripheral vision filtering in a foveated rendering system |
US11354863B2 (en) * | 2016-06-30 | 2022-06-07 | Honeywell International Inc. | Systems and methods for immersive and collaborative video surveillance |
US11222397B2 (en) * | 2016-12-23 | 2022-01-11 | Qualcomm Incorporated | Foveated rendering in tiled architectures |
CA3044073C (en) | 2016-12-23 | 2020-06-09 | Newtonoid Technologies, Llc | Intelligent glass displays and methods of making and using same |
US10242457B1 (en) * | 2017-03-20 | 2019-03-26 | Zoox, Inc. | Augmented reality passenger experience |
US10591971B2 (en) * | 2017-04-01 | 2020-03-17 | Intel Corporation | Adaptive multi-resolution for graphics |
US10649524B2 (en) | 2017-04-07 | 2020-05-12 | Intel Corporation | Apparatus and method for foveated rendering, bin comparison and TBIMR memory-backed storage for virtual reality implementations |
US10319064B2 (en) | 2017-04-10 | 2019-06-11 | Intel Corporation | Graphics anti-aliasing resolve with stencil mask |
US10395624B2 (en) | 2017-11-21 | 2019-08-27 | Nvidia Corporation | Adjusting an angular sampling rate during rendering utilizing gaze information |
CN109242943B (zh) * | 2018-08-21 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及图像处理设备、存储介质 |
US10909659B2 (en) * | 2018-12-12 | 2021-02-02 | Apical Limited | Super-resolution image processing using a machine learning system |
US10981059B2 (en) * | 2019-07-03 | 2021-04-20 | Sony Interactive Entertainment LLC | Asset aware computing architecture for graphics processing |
EP4005201A1 (en) * | 2019-07-28 | 2022-06-01 | Google LLC | Methods, systems, and media for rendering immersive video content with foveated meshes |
CN111703385B (zh) * | 2020-06-28 | 2022-03-11 | 广州易点智慧出行科技有限公司 | 一种内容互动方法以及一种车辆 |
US11895170B2 (en) * | 2021-03-09 | 2024-02-06 | Cisco Technology, Inc. | Synchronicity for virtual reality/augmented reality interactive sessions in wireless networks |
WO2023225771A1 (en) * | 2022-05-23 | 2023-11-30 | Qualcomm Incorporated | Concurrent frame buffer composition scheme |
CN118262029B (zh) * | 2024-05-30 | 2024-08-13 | 摩尔线程智能科技(北京)有限责任公司 | 渲染细分方法、电子设备、存储介质及计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1954338A (zh) * | 2004-05-14 | 2007-04-25 | 辉达公司 | 取消位图形处理系统和方法 |
CN101460992A (zh) * | 2006-06-08 | 2009-06-17 | 高通股份有限公司 | 混合多个显示层 |
CN103700125A (zh) * | 2013-12-30 | 2014-04-02 | 北京奇虎科技有限公司 | 一种电子地图控制装置和电子地图控制方法 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438516B1 (en) * | 1998-12-07 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for optimizing unicode composition and decomposition |
US6577329B1 (en) | 1999-02-25 | 2003-06-10 | International Business Machines Corporation | Method and system for relevance feedback through gaze tracking and ticker interfaces |
US7016998B2 (en) * | 2000-11-27 | 2006-03-21 | Silicon Graphics, Inc. | System and method for generating sequences and global interrupts in a cluster of nodes |
US7068813B2 (en) | 2001-03-28 | 2006-06-27 | Koninklijke Philips Electronics N.V. | Method and apparatus for eye gazing smart display |
US6677945B2 (en) * | 2001-04-20 | 2004-01-13 | Xgi Cayman, Ltd. | Multi-resolution depth buffer |
US7075535B2 (en) * | 2003-03-05 | 2006-07-11 | Sand Codex | System and method for exact rendering in a zooming user interface |
US8063916B2 (en) * | 2003-10-22 | 2011-11-22 | Broadcom Corporation | Graphics layer reduction for video composition |
AU2003300514A1 (en) | 2003-12-01 | 2005-06-24 | Volvo Technology Corporation | Perceptual enhancement displays based on knowledge of head and/or eye and/or gaze position |
US7436405B2 (en) | 2004-05-14 | 2008-10-14 | Microsoft Corporation | Terrain rendering using nested regular grids |
EP1782228A1 (en) | 2004-08-03 | 2007-05-09 | Silverbrook Research Pty. Ltd | Walk-up printing |
JP2006106254A (ja) | 2004-10-04 | 2006-04-20 | Denso Corp | 車両用ヘッドアップディスプレイ |
US8390874B2 (en) | 2004-10-14 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Optimal resolution imaging system and method |
US7209139B1 (en) | 2005-01-07 | 2007-04-24 | Electronic Arts | Efficient rendering of similar objects in a three-dimensional graphics engine |
US7856602B2 (en) | 2005-04-20 | 2010-12-21 | Apple Inc. | Updatable menu items |
US20070141538A1 (en) | 2005-07-08 | 2007-06-21 | Quinn Edward W | Simulator utilizing a high resolution visual display |
US7830381B2 (en) | 2006-12-21 | 2010-11-09 | Sectra Ab | Systems for visualizing images using explicit quality prioritization of a feature(s) in multidimensional image data sets, related methods and computer products |
JP4312238B2 (ja) * | 2007-02-13 | 2009-08-12 | 株式会社ソニー・コンピュータエンタテインメント | 画像変換装置および画像変換方法 |
US20080282050A1 (en) | 2007-05-07 | 2008-11-13 | On Demand Microelectronics | Methods and arrangements for controlling memory operations |
US7777960B2 (en) | 2007-09-10 | 2010-08-17 | Microvision, Inc. | Wide field of view head-up display system |
US20090195541A1 (en) | 2008-02-05 | 2009-08-06 | Rambus Inc. | Rendering dynamic objects using geometry level-of-detail in a graphics processing unit |
GB2460411B (en) | 2008-05-27 | 2012-08-08 | Simpleware Ltd | Image processing method |
US8284197B2 (en) * | 2008-07-11 | 2012-10-09 | Advanced Micro Devices, Inc. | Method and apparatus for rendering instance geometry |
US20100079454A1 (en) | 2008-09-29 | 2010-04-01 | Legakis Justin S | Single Pass Tessellation |
US8963931B2 (en) | 2009-09-10 | 2015-02-24 | Advanced Micro Devices, Inc. | Tiling compaction in multi-processor systems |
US8917271B2 (en) | 2009-10-05 | 2014-12-23 | Nvidia Corporation | Redistribution of generated geometric primitives |
US8493390B2 (en) | 2010-12-08 | 2013-07-23 | Sony Computer Entertainment America, Inc. | Adaptive displays using gaze tracking |
US9897805B2 (en) | 2013-06-07 | 2018-02-20 | Sony Interactive Entertainment Inc. | Image rendering responsive to user actions in head mounted display |
US9423994B2 (en) | 2012-02-22 | 2016-08-23 | Citrix Systems, Inc. | Hierarchical display |
US9105129B2 (en) | 2012-06-05 | 2015-08-11 | Google Inc. | Level of detail transitions for geometric objects in a graphics application |
US9177351B2 (en) | 2012-10-09 | 2015-11-03 | Qualcomm Incorporated | Multi-primitive graphics rendering pipeline |
US9262163B2 (en) * | 2012-12-29 | 2016-02-16 | Intel Corporation | Real time instruction trace processors, methods, and systems |
US9727991B2 (en) * | 2013-03-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Foveated image rendering |
US20140347363A1 (en) | 2013-05-22 | 2014-11-27 | Nikos Kaburlasos | Localized Graphics Processing Based on User Interest |
US9395540B2 (en) | 2013-06-11 | 2016-07-19 | Honda Motor Co., Ltd. | HUD fusion interface |
US10269090B2 (en) | 2013-08-16 | 2019-04-23 | Nvidia Corporation | Rendering to multi-resolution hierarchies |
US9569886B2 (en) | 2013-12-19 | 2017-02-14 | Intel Corporation | Variable shading |
JP5917785B2 (ja) | 2014-02-26 | 2016-05-18 | 日通システム株式会社 | 人件費シミュレーションシステム、人件費シミュレーション方法及び人件費シミュレーションプログラム |
US9691122B2 (en) * | 2014-06-30 | 2017-06-27 | Intel Corporation | Facilitating dynamic and efficient pre-launch clipping for partially-obscured graphics images on computing devices |
KR102197064B1 (ko) * | 2014-10-10 | 2020-12-30 | 삼성전자 주식회사 | Lod를 조절할 수 있는 그래픽스 프로세싱 유닛, 이의 작동 방법, 및 상기 그래픽스 프로세싱 유닛을 포함하는 장치들 |
US9704217B2 (en) * | 2015-04-20 | 2017-07-11 | Intel Corporation | Apparatus and method for non-uniform frame buffer rasterization |
US10726619B2 (en) | 2015-10-29 | 2020-07-28 | Sony Interactive Entertainment Inc. | Foveated geometry tessellation |
US10643381B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10192528B2 (en) | 2016-03-31 | 2019-01-29 | Sony Interactive Entertainment Inc. | Real-time user adaptive foveated rendering |
-
2016
- 2016-01-12 US US14/993,685 patent/US10643296B2/en active Active
- 2016-12-02 EP EP16826211.1A patent/EP3403258A1/en active Pending
- 2016-12-02 WO PCT/US2016/064760 patent/WO2017123340A1/en active Application Filing
- 2016-12-02 CN CN201680078340.3A patent/CN108475497B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1954338A (zh) * | 2004-05-14 | 2007-04-25 | 辉达公司 | 取消位图形处理系统和方法 |
CN101460992A (zh) * | 2006-06-08 | 2009-06-17 | 高通股份有限公司 | 混合多个显示层 |
CN103700125A (zh) * | 2013-12-30 | 2014-04-02 | 北京奇虎科技有限公司 | 一种电子地图控制装置和电子地图控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170200252A1 (en) | 2017-07-13 |
CN108475497A (zh) | 2018-08-31 |
WO2017123340A1 (en) | 2017-07-20 |
US10643296B2 (en) | 2020-05-05 |
EP3403258A1 (en) | 2018-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108463837B (zh) | 用于渲染多个细节等级的系统和方法 | |
CN108475497B (zh) | 用于渲染多个细节等级的系统和方法 | |
US10535180B2 (en) | Method and system for efficient rendering of cloud weather effect graphics in three-dimensional maps | |
US9019271B2 (en) | Z-culling method, three-dimensional graphics processing method and apparatus threrof | |
US10776997B2 (en) | Rendering an image from computer graphics using two rendering computing devices | |
US20200098165A1 (en) | Dynamic rendering for foveated rendering | |
CN117087430A (zh) | 用于汽车应用和其他应用的眩光和被遮挡视图补偿 | |
US10825238B2 (en) | Visual edge rendering using geometry shader clipping | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
US11373356B2 (en) | Method and system for efficient rendering of 3D particle systems for weather effects | |
CN115715464A (zh) | 用于遮挡处理技术的方法和装置 | |
US12136166B2 (en) | Meshlet shading atlas | |
KR20220164484A (ko) | 섀도우 정보를 이용한 렌더링 | |
US20220058860A1 (en) | Billboard layers in object-space rendering | |
WO2023055655A1 (en) | Meshlet shading atlas | |
CN118974779A (zh) | 可变比率曲面细分 |
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 |