CN106204699A - 3d绘图处理电路及其深度处理方法 - Google Patents
3d绘图处理电路及其深度处理方法 Download PDFInfo
- Publication number
- CN106204699A CN106204699A CN201510298931.9A CN201510298931A CN106204699A CN 106204699 A CN106204699 A CN 106204699A CN 201510298931 A CN201510298931 A CN 201510298931A CN 106204699 A CN106204699 A CN 106204699A
- Authority
- CN
- China
- Prior art keywords
- brick wall
- circuit
- information
- block
- depth
- 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.)
- Withdrawn
Links
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/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开了一种3D绘图处理电路的深度处理方法及相关3D绘图处理电路,其中,该方法包括:(a)加载一场景的一几何信息,并进行一顶点转换操作;(b)以一砖墙分辨率分割该顶点转换操作后的该几何信息,并获得该场景的一砖墙分辨率的一前置深度信息;(c)以一区块分辨率分割该顶点转换操作后的该几何信息,并产生多个区块列表;(d)将该多个区块列表转换为多个换算出的砖墙,并根据该砖墙分辨率的深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙;以及(e)处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息。本发明实施例可提高图像的处理效率。
Description
【技术领域】
本发明涉及一种绘图处理方法及相关电路,尤其涉及一种3D绘图处理电路及其深度处理方法。
【背景技术】
近几年来,随着计算机科技以及游戏软件的快速发展,利用3D显示技术所研发出的3D游戏已经可以呈现逼真且华丽的图像。而随着手持式装置的逐渐普遍,3D显示技术也逐渐地运用于手持式装置。手持式装置可为智能型手机或者平板计算机等等的移动装置。
众所周知,3D绘图处理电路(graphic processing circuit,GPC)是处理3D图像的核心。为了要呈现细腻的3D图像,3D绘图处理电路会消耗大量的电能。当3D绘图处理电路设置于移动装置中,则移动装置的电能会快速消耗。
因此,提升3D绘图处理电路的效能,并降低其能量的损耗,延长移动装置运行的时间,即为一个重要的课题。
【发明内容】
本发明提供一种3D绘图处理电路及3D绘图处理电路的深度处理方法。
本发明提供一种3D绘图处理电路,包括:一顶点处理电路,包括:一几何处理电路,用于加载一场景的一几何信息,并进行一顶点转换操作;一前置深度测试电路,用于接收该顶点转换操作后的该几何信息,并以一砖墙分辨率分割该几何信息,进而获得该场景的一前置深度信息;以及一区块存储器,用于接收该顶点转换操作后的该几何信息,并以一区块分辨率分割该几何信息,并产生多个区块列表;以及一像素处理电路,包括:一光栅处理电路,用于加载该多个区块列表,并将区块列表转换为多个换算出的砖墙,并根据该砖墙分辨率的深度信息,及该场景的该前置深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙;以及一描绘组件,用于接收并处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息。
本发明提供另一种3D绘图处理电路,包括:一顶点处理电路,包括:一几何处理电路,用于加载一场景的一几何信息,并进行一顶点转换操作;一前置深度测试电路,用于接收该顶点转换操作后的该几何信息,并以一砖墙分辨率分割该几何信息,并进而获得该场景的一前置深度信息;以及一区块存储器,用于接收该顶点转换操作后的该几何信息并以一区块分辨率分割该几何信息,并产生多个区块列表;其中,该区块存储器还用于接收该几何信息,产生一中介信息并记录于该多个区块列表;以及一像素处理电路,包括:一光栅处理电路,用于加载区块列表,并根据区块列表中的该中介信息,及该场景的该前置深度信息,来早期排除多个被遮蔽的基础图形;再将该多个区块列表中剩余的基础图形,转换为多个换算出的砖墙,并根据该砖墙分辨率的深度信息,及该场景的该前置深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙;以及一描绘组件,用于接收并处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息。
本发明还提供一种3D绘图处理电路的深度处理方法,包括下列步骤:(a)加载一场景的一几何信息,并进行一顶点转换操作;(b)以一砖墙分辨率分割该顶点转换操作后的该几何信息,并获得该场景的一砖墙分辨率的一前置深度信息;(c)以一区块分辨率分割该顶点转换操作后的该几何信息,并产生多个区块列表;(d)将区块列表转换为多个换算出的砖墙,并根据该砖墙分辨率的深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙;以及(e)处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息。
本发明实施例接收顶点转换操作后的该几何信息,并以一砖墙分辨率分割该几何信息,进而获得该场景的该砖墙分辨率的一前置深度信息,并以一区块分辨率分割该几何信息,并产生多个区块列表,以及将该多个区块列表转换为多个换算出的砖墙,并根据该多个换算出的砖墙的深度信息,及该场景的该前置深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙来判断砖墙,最终处理该第一部分砖墙,由此提高了图像处理效率。
【附图说明】
图1为3D绘图处理电路的一实施例的框图。
图2A-图2B为三个基础图形(primitive)输入至预深度测试与排除(Pre-Ztesting and occlusion)的顺序示意图。
图3为本发明3D绘图处理电路的第一实施例的框图。
图4为本发明3D绘图处理电路的第二实施例的框图。
图5所为本发明3D绘图处理器的深度处理方法的流程图。
【具体实施方式】
请参考图1,其为绘图处理电路的示意图。3D绘图处理电路100包括:一顶点处理电路(Vertex Processing circuit,VP)110与一像素处理电路(PixelProcessing circuit,PP)130。3D绘图处理电路100连接至缓冲组件(bufferingdevice)120。缓冲组件120可为外部内存,例如动态随机存取存储器(DynamicRandom Access Memory,DRAM)。
顶点处理电路110包括一顶点加载器(Vertex loader)112、顶点渲染器(VertexShader)114与区块存储器(Bin Store)116。缓冲组件120可定义一顶点缓冲器(vertex buffer)122与一区块缓冲器(bin buffer)124。
根据3D显示技术,一个场景(scene)中包括有多个对象(object),而每个对象皆由多个基础图形(primitive)所组合而成。基础图形(primitive)大部分为三角形(triangle),也可以是线(line)或者是点(point)。
当3D绘图处理电路100处理一个场景(scene)时,应用程序界面(applicationprogramming interface,API)会将所有基础图形(primitive)的顶点信息(vertexinformation)暂存在顶点缓冲器122供顶点处理电路110的处理。顶点信息为构成基础图形(primitive)的所有顶点(vertex)的位置(position)、颜色(color)以及贴图坐标(texture coordinate)。
顶点处理电路110是将场景中的画面由三维的世界空间坐标(word spacecoordinate)转换(convert to)为二维的屏幕空间坐标(screen space coordinate)。首先,顶点加载器(Vertex loader)112载入顶点缓冲器122中存储的基础图形(primitive)的顶点信息(vertex information),并传递至顶点渲染器(Vertex Shader)114进行顶点转换操作(vertex transformation)。
顶点渲染器(Vertex Shader)114可根据可程序化的渲染程序(ProgrammableShader Code)进行基础图形(primitive)的打光(Lighting)与顶点转换操作(vertextransformation)。而顶点转换操作(vertex transformation)完成后,所有的基础图形(primitive)会转换(convert to)至二维的屏幕空间坐标(screen space coordinate),并传递至区块存储器(bin store)116。
基本上,一个场景(scene)可被划分为多个区块(bin),例如一个区块的大小(size)为32像素×32像素。换言的,1024像素×1024像素的场景(scene)可被划分为1024个区块(bin)。当然,区块(bin)以及场景(scene)的大小并不限定于上述的大小。
更详细地说,当顶点转换操作(vertex transformation)完成后,区块存储器(binstore)116会建立所有的基础图形(primitive)与区块(bin)的间的对应的关系并存储于区块缓冲器(bin buffer)124。举例来说,假设第一基础图形(primitive)进行顶点转换操作后,其所转换到的屏幕空间坐标会接触(touch)于二个区块(bin)中。则区块存储器(bin store)116会在该二个区块(bin)的区块列表(bin table)中记录该第一基础图形(primitive)的顶点信息。
同理,所有的基础图形(primitive)皆进行顶点转换操作后,区块存储器(binstore)116会在每一个区块(bin)中记录接触于该区块的所有基础图形的顶点信息。举例来说,经过顶点转换操作后,共有五个基础图形接触于第一区块,所以第一区块中的区块列表会记录五个基础图形的顶点信息。
换句话说,区块存储器(bin store)116会将所有区块(bin)的区块列表存储于区块缓冲器124。而每一个区块列表会记录接触于该区块的基础图形的顶点信息。
像素处理电路(Pixel Processing circuit)130中包括一区块加载器(binloader)132、一前置深度测试与遮蔽物剔除电路(Pre-Z Testing and OcclusionCulling circuit)134、一像素渲染电路(Pixel shader circuit)136与一后端混合电路(post blending circuit)138。缓冲组件120可进一步定义一前置深度缓冲器(Pre-Zbuffer)125、一贴图缓冲器(texture buffer)127与一颜色与深度缓冲器(color/Zbuffer)129。
像素处理电路130中,区块加载器(bin loader)132载入区块缓冲器124中暂存的区块列表(bin table),并传递至前置深度测试与遮蔽物剔除电路(Pre-Z Testingand Occlusion Culling circuit)134。
前置深度测试与遮蔽物剔除电路134接收区块列表,并根据区块列表中每个基础图形的深度信息(depth information)来排序(sorting)出最小的深度信息。
前置深度测试与遮蔽物剔除电路134于排序的过程,会根据待处理的基础图形的深度信息和存储于前置深度缓冲器125的前置深度信息(pre-depthinformation)的比较结果,选择性地将特定的基础图形(primitive)传递至像素渲染电路(pixel shader circuit)136进行处理,并以对应的深度信息来更新(update)前置深度信息,并暂存于前置深度缓冲器125。而排序的过程完成后存储于前置深度缓冲器125的前置深度信息是为最小的深度信息,其所对应的基础图形(primitive)最接近观察者。
举例来说,假设区块加载器132依序加载第一区块列表(bin table)中的第一基础图形、第二基础图形与第三基础图形至前置深度测试与遮蔽物剔除电路134,第一基础图形的深度信息为z1,第二基础图形的深度信息为z2,第三基础图形的深度信息为z3,其中z1小于z2,且z1大于z3。
首先,前置深度测试与遮蔽物剔除电路134,将第一基础图形的深度信息为z1暂存于前置深度缓冲器125作为前置深度信息,并且将第一基础图形传递至像素渲染电路136进行处理。
接着,前置深度测试与遮蔽物剔除电路134判断第二基础图形。由于前置深度缓冲器125存储的前置深度信息为z1,且z1小于z2。很明显地,在整个场景(scene)上,第二基础图形的深度较深,使得第二基础图形被第一基础图形所遮敝(obscure),并不会显示于屏幕上。因此,第二基础图形会被排除(OcclusionCulling)。亦即,第二基础图形不需要被传递至像素渲染电路(Pixel shadercircuit)136进行处理。此时,前置深度信息z1仍旧被暂存于前置深度缓冲器125中而未被取代。
前置深度测试与遮蔽物剔除电路134判断第三基础图形。由于前置深度缓冲器125中存储的前置深度信息为z1,且z1大于z3。很明显地,在整个场景(scene)上,第一基础图形的深度(depth)较深,使得第一基础图形被第三基础图形所遮敝。因此,第三基础图形不可被排除(Occlusion Culling)。此时,第三基础图形需要被传递至像素渲染电路136进行处理,并将深度信息z3暂存于前置深度缓冲器125作为前置深度信息以取代z1。
前置深度测试与遮蔽物剔除电路134是判断特定基础图形的深度信息,并与前置深度缓冲器125中暂存的前置深度信息进行比较。当特定基础图形的深度信息较大时,直接排除(Occlusion Culling)特定基础图形。反之,当特定基础图形(primitive)的深度信息较小时,直接取代前置深度缓冲器125中暂存的前置深度信息并将特定基础图形传递至像素渲染电路136进行处理。
当区块列表(bin table)中所有的基础图形的深度信息皆排序完成后,前置深度缓冲器125中对应于第一区块(bin)的前置深度信息是为距离屏幕最近的基础图形的深度信息。
像素处理电路130中的像素渲染电路136接收到基础图形时,针对基础图形中的每一个像素进行运算并选择性地从贴图缓冲器127读取特定贴图(texture)后传递至后端混合电路(post blending circuit)138。使得后端混合电路138据以产生场景(scene)上每个像素的颜色与深度值(depth value),并存储于颜色与深度缓冲器129。而颜色与深度缓冲器129中所存储的数据即为呈现于屏幕上的像素数据。
3D绘图处理电路100中,前置深度测试与遮蔽物剔除电路134会比较基础图形的深度信息,并根据比较结果选择性地将基础图形传递至像素渲染电路136进行处理。由于像素处理电路130中的区块加载器132无法决定基础图形输入至前置深度测试与遮蔽物剔除电路134的顺序,因此会影响像素渲染电路136的处理效率。
请参考图2A-图2B,其所绘示为三个基础图形输入至前置深度测试与遮蔽物剔除电路134的顺序示意图。如图2A所示,距离眼睛最近的基础图形P3具有最小的深度信息,距离眼睛最远的基础图形P1具有最大的深度信息。假设基础图形输入的顺序是由前往后(from front to back),亦即P3、P2、P1的次序,因此仅有基础图形P3会被传递至像素渲染电路136进行处理,基础图形P2与P3会被排除,像素渲染电路136会有较佳的处理效率。
如图2B所示,假设基础图形输入的顺序是由后往前(from back to front),亦即P1、P2、P3的次序,三个基础图形P1~P3皆会被传递至像素渲染电路136进行处理,且前置深度缓冲器125中的深度信息会逐次被取代。由于基础图形P3的深度信息最小且会遮蔽基础图形P2与P1。实际上,基础图形P2与P1不需要被传递至像素渲染电路136进行处理。换言之,图2B所示的基础图形的输入顺序,会影响像素渲染电路136的处理效率。
请参考图3,其为本发明3D绘图处理电路的第一实施例的框图。3D绘图处理电路300包括:一顶点处理电路(Vertex Processing circuit,VP)310与一像素处理电路(Pixel Processing circuit,PP)330,3D绘图处理电路300连接至缓冲组件(buffering device)320,缓冲组件320可为外部内存,例如DRAM。
顶点处理电路310中包括:一几何处理电路(Geometry processing circuit)311、前置深度测试电路(Pre-Z Testing circuit)316、与区块存储器318。举例而言,几何处理电路311包括:一顶点加载器(Vertex loader)312与一顶点渲染器(VertexShader)314。缓冲组件320定义一顶点缓冲器(vertex buffer)322、前置深度缓冲器(Pre-Z buffer)325与一区块缓冲器(bin buffer)324。以下介绍本发明顶点处理电路310的操作原理,此实施例中所提及的基础图形皆为不透明的(opaque)基础图形。
当3D绘图处理电路300处理一个场景(scene)时,应用程序界面(API)会将所有基础图形(primitive)的几何信息(geometry information)暂存于顶点缓冲器322并等待顶点处理电路310的处理。举例而言,基础图形(primitive)可以是四边形、三角形(triangle)、线(line)或者是点(point)。几何信息可为顶点信息,其为构成基础图形的所有顶点的位置、颜色以及贴图坐标。
在该实施例中,顶点处理电路310是将场景中的画面由三维的世界空间坐标(word space coordinate)转换(convert to)为二维的屏幕空间坐标(screen spacecoordinate)。几何处理电路(Geometry processing circuit)311是加载场景的几何信息。
首先,几何处理电路(Geometry processing circuit)311中的顶点加载器(Vertexloader)312载入顶点缓冲器322中暂存的基础图形的顶点信息,并传递至顶点渲染器(Vertex Shader)314进行顶点转换操作(vertex transformation)。
在该实施例中,顶点渲染器314可根据可程序化的渲染程序(ProgrammableShader Code)进行基础图形的打光与顶点转换操作。而顶点转换操作完成后,所有的基础图形会转换至二维的屏幕空间坐标(screen space coordinate),并传递至前置深度测试电路316。
在该实施例中,显示的场景可被划分为多个砖墙(tile)与区块(bin),且砖墙的尺寸小于区块的尺寸。举例来说,一个砖墙的大小为4像素×4像素,而区块的大小为32像素×32像素。换言之,1024像素×1024像素的场景可被划分为65536个砖墙或者1024个区块。砖墙、区块以及场景不限定于上述的大小。
更详细地说,当顶点转换操作完成后,前置深度测试电路(Pre-Z Testingcircuit)316会根据所有的基础图形来建立整个场景的砖墙分辨率的前置深度信息(pre-depth information in tile resolution),并且存储于前置深度缓冲器(Pre-Zbuffer)325。
当顶点转换操作完成后,前置深度测试电路316会建立所有的基础图形与砖墙的间的对应的关系并存储于前置深度缓冲器325。较佳地,3D绘图处理电路300将基础图形(primitive)切成数个砖墙(tile),并排序(sorting)所有砖墙(tile)的深度信息,并暂存于前置深度缓冲器(Pre-Z buffer)325。
举例来说,假设顶点渲染器314进行顶点转换操作后,有第一基础图形、第二基础图形与第三基础图形会接触于第一砖墙。且第一基础图形在第一砖墙位置的深度信息为za,第二基础图形在第一砖墙位置的深度信息为zb,第三基础图形在第一砖墙位置的深度信息为zc,其中za大于zb,且zb大于zc。
首先,前置深度测试电路316将第一砖墙在第一基础图形上的深度信息za暂存于前置深度缓冲器325。
接着,前置深度测试电路316判断第一砖墙在第二基础图形(primitive)上的深度信息zb。由于前置深度缓冲器325存储的前置深度信息为za,且za大于zb,在整个场景上,第一基础图形在第一砖墙的深度较深,使得第一基础图形在第一砖墙的位置被第二基础图形所遮敝,并不会显示于屏幕上。此时,前置深度测试电路316将深度信息zb暂存于前置深度缓冲器325作为更新的前置深度信息并取代za。
接着,前置深度测试电路316判断第一砖墙在第三基础图形上的深度信息zc。由于前置深度缓冲器325存储的前置深度信息为zb,且zb大于zc,在整个场景上,第二基础图形在第一砖墙的位置深度较深,使得第二基础图形在第一砖墙被第三基础图形所遮敝,并不会显示于屏幕上。此时,前置深度测试电路316将深度信息zc暂存于前置深度缓冲器325作为更新的前置深度信息并取代zb。
在该实施例中,前置深度测试电路316比较每一个砖墙中所有的基础图形在该砖墙的深度信息,并决定每一个砖墙所对应的前置深度信息。当所有砖墙中的所有深度信息皆排序完成后,前置深度缓冲器325即存储整个场景的砖墙分辨率的前置深度信息。
当顶点渲染器314进行顶点转换操作后,所有的基础图形及其顶点信息也会传递至区块存储器(bin store)318。
区块存储器(bin store)318建立所有的基础图形与区块之间的对应的关系并存储于区块缓冲器324。亦即,所有的基础图形皆进行顶点转换操作后,区块存储器318会在每一个区块中记录接触(touch)于该区块的所有基础图形的顶点信息,建立区块列表。而区块存储器318会将所有区块(bin)的区块列表(bin table)存储于区块缓冲器324。而每一个区块列表会记录接触于该区块(Bin)的基础图形的顶点信息。
在该实施例中,像素处理电路330中包括一光栅处理电路(rasterizationprocessing circuit)331与描绘组件(rendering device)335。光栅处理电路331包括:区块加载器(Bin loader)332与遮蔽物剔除电路(Occlusion Culling circuit)334。描绘组件335包括:一像素渲染电路(pixel shader circuit)336与一后端混合电路(postblending circuit)338。缓冲组件320可进一步定义一贴图缓冲器(texture buffer)327与一颜色与深度缓冲器(color/Z buffer)329。
在该实施例中,光栅处理电路331的区块加载器332加载区块缓冲器324中暂存的区块列表,并将区块列表传递至遮蔽物剔除电路334。
当遮蔽物剔除电路334收到区块列表后,根据区块列表中每个基础图形的顶点信息,获得每个基础图形的深度信息。遮蔽物剔除电路334将每个基础图形切割成为砖墙的大小,并换算基础图形在每个砖墙中的深度信息。
遮蔽物剔除电路334将换算出的砖墙的深度信息进一步与前置深度缓冲器325中的前置深度信息进行比较,并根据一预定关系来决定该换算出的砖墙是否传递至像素渲染电路336进行处理。
举例而言,由于整个场景的前置深度信息皆存储在前置深度缓冲器325,当遮蔽物剔除电路334换算出的砖墙的深度信息不大于前置深度缓冲器325中的前置深度信息时,代表换算出的砖墙不会被遮蔽,遮蔽物剔除电路334可进一步将换算出的砖墙传递至像素渲染电路336进行处理。
反之,当遮蔽物剔除电路334换算出的砖墙的深度信息大于前置深度缓冲器325中的前置深度信息时,代表换算出的砖墙会被遮蔽,遮蔽物剔除电路334可直接将换算出的砖墙排除,不传递至像素渲染电路336。
由以上的说明可知,当遮蔽物剔除电路334收到区块列表并将每个基础图形切割成为砖墙的大小之后,多个换算出的砖墙不需经过额外的排序,可直接与前置深度缓冲器325中的前置深度信息进行比较,而仅有需要处理的砖墙才会被传递至像素渲染电路336进行处理,可以有效地提高像素渲染电路336的处理效率。
像素处理电路330中的像素渲染电路336接收到砖墙时,针对砖墙中的基础图形的每一个像素进行运算并选择性地由贴图缓冲器327读取特定贴图后传递至后端混合电路338,使得后端混合电路338据以产生屏幕上每个像素的颜色与深度值(depth value),并存储于颜色与深度缓冲器329。而颜色与深度缓冲器329中所存储的数据即为呈现于屏幕上的像素数据。
在该实施例中,3D绘图处理电路300,可先在顶点处理电路310中利用前置深度测试电路316将整个场景的砖墙分辨率的前置深度信息存储在前置深度缓冲器325中。之后,在像素处理电路330中的遮蔽物剔除电路334进行判断时,多个换算出的砖墙不需经过额外的排序,即可与前置深度缓冲器325中的前置深度信息进行比较,并将需要处理的砖墙传递至像素渲染电路336进行处理,而不需要处理的砖墙可直接予以排除。
在另一具体实施例中,前置深度信息可不限于仅有一个深度值(depth value)。前置深度信息可以是基础图形的深度值区间。而遮蔽物剔除电路334在利用预定关系来比较前置深度信息时,可能无法确认换算出的砖墙是否完全被遮蔽,称为模糊砖墙(ambiguous tile)。被遮蔽物剔除电路334判断为模糊砖墙时,模糊砖墙也被传递至像素渲染电路336进行处理。
较佳地,3D绘图处理电路300包括顶点处理电路310与像素处理电路330,可以集成为一集成电路(single silicon)。较佳地,区块缓冲器324与前置深度缓冲器325可以与3D绘图处理电路300集成为一集成电路(single silicon),提升整体数据存取效率。举例而言,区块缓冲器324与前置深度缓冲器325可以为芯片内存(on-die memory),例如静态随机存取内存(SRAM)或者高速缓存。
请参考图4,其为本发明3D绘图处理电路的第二实施例的框图。3D绘图处理电路400包括:一顶点处理电路(Vertex Processing circuit,简称VP)410与一像素处理电路(Pixel Processing circuit,简称PP)430,3D绘图处理电路400连接至缓冲组件(buffering device)420,缓冲组件420可为外部内存,例如DRAM。
顶点处理电路410包括:几何处理电路311、前置深度测试电路316与一区块存储器418。几何处理电路311包括:顶点加载器312与顶点渲染器314。
像素处理电路430包括:光栅处理电路431与描绘组件335。光栅处理电路431包括:一区块加载器432、一遮蔽物剔除电路334。描绘组件335包括:一像素渲染电路336与一后端混合电路338。
缓冲组件320可定义一顶点缓冲器322、前置深度缓冲器325、包括中介信息的一区块缓冲器(bin buffer with intermediate information)424、一贴图缓冲器327与一颜色与深度缓冲器329。
比较第一实施例与第二实施例,其差异在于区块存储器418、光栅处理电路431、与区块缓冲器424。而其他组件的操作原理相同于第一实施例,不再赘述。
由于前置深度测试电路316可处理每一个砖墙中所有的基础图形的深度信息,并决定每一个砖墙所对应的最小前置深度信息。因此,区块存储器318中的中介信息电路(intermediate information processing circuit)419可接收前置深度测试电路316所处理的信息,并在区块列表中增加一中介信息(intermediateinformation)。亦即,区块列表中除了记录接触于各个区块中的所有基础图形的顶点信息外,还包括中介信息。再者,中介信息是为该基础图形在一区块中,所覆盖的所有砖墙位置,以及被覆盖的所有砖墙中的一最小深度信息。而完成后的区块列表即存储于区块缓冲器424。
在该实施例中,区块加载器432中包括早期排除电路(early occlusioncircuit)433,当区块加载器432加载中介信息的区块缓冲器424中暂存的区块列表时,早期排除电路433可以根据中介信息以及前置深度缓冲器325中的前置深度信息来早期排除被遮蔽的基础图形。
因此,传递至遮蔽物剔除电路334的区块列表中有些基础图形的数据会被早期排除电路433所排除。遮蔽物剔除电路334可以更有效率的处理区块列表。
由以上的说明可以获得图5所示的3D绘图处理器的深度处理方法流程图。首先,加载一场景的一几何信息,并进行一顶点转换操作(步骤S501);接着,以一砖墙分辨率分割该顶点转换操作后的该几何信息,并获得该场景最靠近观察者的前置深度信息(步骤S503),且该前置深度信息是被存储于前置深度缓冲器;接着,以一区块分辨率分割该顶点转换操作后的该几何信息,并产生多个区块列表(步骤S505);将区块列表中的基础图形转换为多个砖墙,并根据存储于该前置深度缓冲器的前置深度信息和该砖墙的深度信息,区分换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙(步骤S507);以及处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息(步骤S509)。
在步骤步骤S501中,该几何信息包括多个基础图形的顶点信息。在步骤S503中,是以该砖墙分辨率分割该顶点转换操作后的基础图形,并获得该场景的该砖墙分辨率的深度信息。以及,步骤505中是以该区块分辨率分割该顶点转换操作的基础图形,并产生区块列表。
在步骤步骤S507中,更包括:当换算出的砖墙的深度信息不大于该前置深度缓冲器中的前置深度信息时,被区分为该第一部分砖墙;当换算出的砖墙的深度信息大于该前置深度缓冲器中的前置深度信息时,被区分为该第二部分砖墙;以及当换算出的砖墙的深度信息无法判断出是否大于该前置深度缓冲器中的深度信息时,被区分为该第一部分砖墙。并且,根据区块列表中的中介信息将区块列表转换为多个换算出的砖墙。
在步骤505中可以根据该砖墙分辨率分割的该几何信息,产生多个中介信息并记录于区块列表。其中该中介信息是为该基础图形在该一区块中,所覆盖的所有砖墙位置,以及被覆盖的所有砖墙中的一最小深度信息。
由以上的说明可知,本发明所提出的3D绘图处理电路300利用顶点处理电路310中的前置深度测试电路316完成砖墙分辨率的前置深度信息并存储于前置深度缓冲器325。而绘图处理电路300利用像素处理电路330中的遮蔽物剔除电路334来判断砖墙的排除与否,因此可提高像素渲染电路336的处理效率。
综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本领域技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视后附的申请权利要求所界定者为准。
Claims (35)
1.一种3D绘图处理电路,其特征在于,包括:
一顶点处理电路,包括:
一几何处理电路,用于加载一场景的一几何信息,并进行一顶点转换操作;
一前置深度测试电路,用于接收该顶点转换操作后的该几何信息,并以一砖墙分辨率分割该几何信息,进而获得该场景的一前置深度信息;以及
一区块存储器,用于接收该顶点转换操作后的该几何信息,并以一区块分辨率分割该几何信息,并产生多个区块列表;以及
一像素处理电路,包括:
一光栅处理电路,用于加载该多个区块列表,并将该多个区块列表转换为多个换算出的砖墙,并根据该砖墙分辨率的深度信息,及该场景的该前置深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙;以及
一描绘组件,用于接收并处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息。
2.如权利要求1所述的3D绘图处理电路,其特征在于,该几何处理电路包括:
一顶点加载器,用于加载该场景中的该几何信息,且该几何信息包括多个基础图形的顶点信息;及
一顶点渲染器,用于接收该顶点加载器加载的该多个基础图形的顶点信息,并进行该顶点转换操作。
3.如权利要求2所述的3D绘图处理电路,其特征在于,该前置深度测试电路,进一步用于接收该顶点转换操作后的基础图形的顶点信息,并以该砖墙分辨率分割该顶点转换操作后的基础图形,并进而获得该场景的该砖墙分辨率的深度信息。
4.如权利要求3项所述的3D绘图处理电路,其特征在于,该区块存储器,进一步用于接收该顶点转换操作后的基础图形的顶点信息,并以该区块分辨率分割该顶点转换操作后的基础图形,并产生该多个区块列表。
5.如权利要求4所述的3D绘图处理电路,其特征在于,该顶点加载器,由一顶点缓冲器中载入该场景中该多个基础图形的顶点信息。
6.如权利要求4所述的3D绘图处理电路,其特征在于,该区块存储器还用于将该多个区块列表存储于一区块缓冲器。
7.如权利要求4所述的3D绘图处理电路,其特征在于,该前置深度测试电路还用于将该场景的该砖墙分辨率的深度信息存储于一前置深度缓冲器。
8.如权利要求7所述的3D绘图处理电路,其特征在于,该光栅处理电路包括:
一区块加载器,用于载入该多个区块列表;以及
一遮蔽物剔除电路,用于将该多个区块列表转换为该多个换算出的砖墙,并根据该砖墙分辨率的深度信息,区分该多个换算出的砖墙为该第一部分砖墙与该第二部分砖墙,并丢弃该第二部分砖墙。
9.如权利要求8所述的3D绘图处理电路,其特征在于,该遮蔽物剔除电路进一步用于根据一预定关系将该多个换算出的砖墙区分为该第一部分砖墙与该第二部分砖墙。
10.如权利要求9所述的3D绘图处理电路,其特征在于,该预定关系包括:
当该多个换算出的砖墙的深度信息不大于该前置深度缓冲器中的深度信息时,被区分为该第一部分砖墙;以及
当换算出的砖墙的深度信息大于该前置深度缓冲器中的深度信息时,被区分为该第二部分砖墙。
11.如权利要求10所述的3D绘图处理电路,其特征在于,该预定关系还包括:
当该多个换算出的砖墙的深度信息无法判断出是否大于该前置深度缓冲器中的深度信息时,被区分为该第一部分砖墙。
12.如权利要求1所述的3D绘图处理电路,其特征在于,该描绘组件包括:
一像素渲染电路,用于接收并处理该第一部分砖墙,以及一后端混合电路产生该场景中每个像素的颜色与深度信息。
13.如权利要求1所述的3D绘图处理电路,其特征在于,该前置深度测试电路还用于将该场景的该砖墙分辨率的前置深度信息存储于一前置深度缓冲器,且该区块存储器将该多个区块列表存储于一区块缓冲器。
14.如权利要求1所述的3D绘图处理电路,其特征在于,该3D绘图处理电路集成为一集成电路。
15.一种3D绘图处理电路,其特征在于,包括:
一顶点处理电路,包括:
一几何处理电路,用于加载一场景的一几何信息,并进行一顶点转换操作;
一前置深度测试电路,用于接收该顶点转换操作后的该几何信息,并以一砖墙分辨率分割该几何信息,并进而获得该场景的一前置深度信息;以及
一区块存储器,用于接收该顶点转换操作后的该几何信息并以一区块分辨率分割该几何信息,并产生多个区块列表;其中,该区块存储器还接收该几何信息,产生一中介信息并记录于该多个区块列表;以及
一像素处理电路,包括:
一光栅处理电路,用于加载该多个区块列表,并根据该多个区块列表中的该中介信息,及该场景的该前置深度信息,来早期排除多个被遮蔽的基础图形;再将该多个区块列表中剩余的基础图形,转换为多个换算出的砖墙,并根据该砖墙分辨率的深度信息,及该场景的该前置深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙;以及
一描绘组件,用于接收并处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息。
16.如权利要求15所述的3D绘图处理电路,其特征在于,该几何处理电路包括:
一顶点加载器,用于加载该场景中的该几何信息,且该几何信息包括多个基础图形的顶点信息;及
一顶点渲染器,用于接收顶点加载器加载的该多个基础图形的顶点信息,并进行该顶点转换操作。
17.如权利要求16所述的3D绘图处理电路,其特征在于,该前置深度测试电路,进一步用于接收该顶点转换操作后的该多个基础图形的顶点信息,并以该砖墙分辨率分割该多个基础图形,并进而获得该场景的该砖墙分辨率的深度信息。
18.如权利要求17所述的3D绘图处理电路,其特征在于,该区块存储器,进一步用于接收该顶点转换操作后的该多个基础图形的顶点信息,并以该区块分辨率分割该多个基础图形,并产生该多个区块列表。
19.如权利要求18所述的3D绘图处理电路,其特征在于,该区块存储器还包括一中介信息电路,用于接收该砖墙分辨率分割的该几何信息,以产生该中介信息并记录于该多个区块列表。
20.如权利要求19所述的3D绘图处理电路,其特征在于,该中介信息记录每一该区块中,被各基础图形所覆盖的砖墙位置,以及被覆盖的该多个砖墙中的一最小深度信息。
21.如权利要求18所述的3D绘图处理电路,其特征在于,该顶点加载器,由一顶点缓冲器中载入该场景中该多个基础图形的顶点信息。
22.如权利要求18所述的3D绘图处理电路,其特征在于,该区块存储器还用于将该多个区块列表存储于一区块缓冲器。
23.如权利要求18所述的3D绘图处理电路,其特征在于,该前置深度测试电路还用于将该场景的该砖墙分辨率的深度信息存储于一前置深度缓冲器。
24.如权利要求23所述的3D绘图处理电路,其特征在于,该光栅处理电路包括:
一区块加载器,用于载入该多个区块列表,并根据该多个中介信息,选择该多个基础图形中的一第一部分基础图形;以及
一遮蔽物剔除电路,用于将该第一部分基础图形转换为该多个换算出的砖墙,并根据该砖墙分辨率的深度信息,区分该多个换算出的砖墙为该第一部分砖墙与该第二部分砖墙,并丢弃该第二部分砖墙。
25.如权利要求24所述的3D绘图处理电路,其特征在于,该遮蔽物剔除电路进一步用于根据一预定关系将该多个换算出的砖墙区分为该第一部分砖墙与该第二部分砖墙。
26.如权利要求25所述的3D绘图处理电路,其特征在于,该预定关系包括:
当该多个换算出的砖墙的深度信息不大于该前置深度缓冲器中的深度信息时,被区分为该第一部分砖墙;以及
当该多个换算出的砖墙的深度信息大于该前置深度缓冲器中的深度信息时,被区分为该第二部分砖墙。
27.如权利要求26所述的3D绘图处理电路,其特征在于,该预定关系还包括:
当该多个换算出的砖墙的深度信息无法判断出是否大于该前置深度缓冲器中的深度信息时,被区分为该第一部分砖墙。
28.如权利要求15所述的3D绘图处理电路,其特征在于,该描绘组件包括:
一像素渲染电路,用于接收并处理该第一部分砖墙,以及一后端混合电路产生该场景中每个像素的颜色与深度信息。
29.如权利要求15所述的3D绘图处理电路,其他在于,该3D绘图处理电路集成为一集成电路。
30.一种3D绘图处理电路的深度处理方法,其特征在于,包括下列步骤:
(a)加载一场景的一几何信息,并进行一顶点转换操作;
(b)以一砖墙分辨率分割该顶点转换操作后的该几何信息,并获得该场景的一砖墙分辨率的一前置深度信息;
(c)以一区块分辨率分割该顶点转换操作后的该几何信息,并产生多个区块列表;
(d)将该多个区块列表转换为多个换算出的砖墙,并根据该砖墙分辨率的深度信息,区分该多个换算出的砖墙为一第一部分砖墙与一第二部分砖墙,并丢弃该第二部分砖墙;以及
(e)处理该第一部分砖墙,产生该场景中每个像素的颜色与深度信息。
31.如权利要求30所述的深度处理方法,其特征在于,该几何信息包括多个基础图形的顶点信息;且步骤(b)中是以该砖墙分辨率分割该顶点转换操作后的该多个基础图形,并获得该场景的该砖墙分辨率的深度信息;以及步骤(c)中是以该区块分辨率分割该顶点转换操作的该多个基础图形,并产生该多个区块列表。
32.如权利要求30所述的深度处理方法,其特征在于,步骤(d)进一步包括:
(d1)当换算出的砖墙的深度信息不大于该深度信息时,被区分为该第一部分砖墙;
(d2)当换算出的砖墙的深度信息大于该深度信息时,被区分为该第二部分砖墙;以及
(d3)当换算出的砖墙的深度信息无法判断出是否大于该前置深度缓冲器中的深度信息时,被区分为该第一部分砖墙。
33.如权利要求30项所述的深度处理方法,其特征在于,步骤(c)还包括:根据该砖墙分辨率分割的该几何信息,产生多个中介信息并记录于区块列表。
34.如权利要求33所述的深度处理方法,其特征在于,
该中介信息记录每一该区块中,被各基础图形所覆盖的砖墙位置,以及被覆盖的该多个砖墙中的一最小深度信息。
35.如申请权利要求第33项所述的深度处理方法,步骤(d)还包括:根据区块列表中的中介信息将区块列表转换为多个换算出的砖墙。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/576,036 US9792722B2 (en) | 2014-12-18 | 2014-12-18 | Depth processing method and associated graphic processing circuit |
US14/576,036 | 2014-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106204699A true CN106204699A (zh) | 2016-12-07 |
Family
ID=56130051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510298931.9A Withdrawn CN106204699A (zh) | 2014-12-18 | 2015-06-03 | 3d绘图处理电路及其深度处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9792722B2 (zh) |
CN (1) | CN106204699A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182656A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 一种图像处理方法及终端 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10796478B2 (en) | 2018-09-26 | 2020-10-06 | Qualcomm Incorporated | Dynamic rendering for foveated rendering |
US11924442B2 (en) | 2018-11-20 | 2024-03-05 | Koninklijke Kpn N.V. | Generating and displaying a video stream by omitting or replacing an occluded part |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1381814A (zh) * | 2001-04-17 | 2002-11-27 | 矽统科技股份有限公司 | 三维绘图方法及其装置 |
CN102708579A (zh) * | 2011-02-16 | 2012-10-03 | Arm有限公司 | 拼贴式图形系统和操作这种系统的方法 |
CN102722549A (zh) * | 2012-05-28 | 2012-10-10 | 中国科学院遥感应用研究所 | 一种基于集群的遥感数据集实时渲染服务 |
CN103336772A (zh) * | 2013-04-25 | 2013-10-02 | 中国科学院遥感与数字地球研究所 | 一种新的单景影像瓦片数据组织方法 |
US20140327671A1 (en) * | 2013-05-02 | 2014-11-06 | Arm Limited | Graphics processing systems |
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646639B1 (en) | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
US6924801B1 (en) | 1999-02-09 | 2005-08-02 | Microsoft Corporation | Method and apparatus for early culling of occluded objects |
GB2378108B (en) | 2001-07-24 | 2005-08-17 | Imagination Tech Ltd | Three dimensional graphics system |
US8089486B2 (en) * | 2005-03-21 | 2012-01-03 | Qualcomm Incorporated | Tiled prefetched and cached depth buffer |
US20080273031A1 (en) | 2005-12-08 | 2008-11-06 | Xgi Technology Inc. (Cayman) | Page based rendering in 3D graphics system |
GB2452300B (en) | 2007-08-30 | 2009-11-04 | Imagination Tech Ltd | Predicated geometry processing in a tile based rendering system |
GB2458488C (en) | 2008-03-19 | 2018-09-12 | Imagination Tech Ltd | Untransformed display lists in a tile based rendering system |
US9934604B2 (en) * | 2013-12-27 | 2018-04-03 | Intel Corporation | Culling using masked depths for MSAA |
-
2014
- 2014-12-18 US US14/576,036 patent/US9792722B2/en active Active
-
2015
- 2015-06-03 CN CN201510298931.9A patent/CN106204699A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1381814A (zh) * | 2001-04-17 | 2002-11-27 | 矽统科技股份有限公司 | 三维绘图方法及其装置 |
CN102708579A (zh) * | 2011-02-16 | 2012-10-03 | Arm有限公司 | 拼贴式图形系统和操作这种系统的方法 |
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
CN102722549A (zh) * | 2012-05-28 | 2012-10-10 | 中国科学院遥感应用研究所 | 一种基于集群的遥感数据集实时渲染服务 |
CN103336772A (zh) * | 2013-04-25 | 2013-10-02 | 中国科学院遥感与数字地球研究所 | 一种新的单景影像瓦片数据组织方法 |
US20140327671A1 (en) * | 2013-05-02 | 2014-11-06 | Arm Limited | Graphics processing systems |
Non-Patent Citations (1)
Title |
---|
黄伟钿: "面向移动平台的3D图形处理器的设计", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182656A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 一种图像处理方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
US20160180579A1 (en) | 2016-06-23 |
US9792722B2 (en) | 2017-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4579262B2 (ja) | 3次元画像のレンダリングにおける早期zテスト方法およびシステム | |
EP3026635B1 (en) | Graphic processing unit and method of performing, by graphic processing unit, tile-based graphics pipeline | |
US10242481B2 (en) | Visibility-based state updates in graphical processing units | |
CN110443893A (zh) | 大规模建筑场景渲染加速方法、系统、装置和存储介质 | |
CN110136082A (zh) | 遮挡剔除方法、装置及计算机设备 | |
CN103886633B (zh) | 基于图块的计算机图形渲染中细分面数据的面片 | |
CN110073417A (zh) | 用于在真实世界3d环境中放置增强或混合现实应用的虚拟对象的方法和设备 | |
CN106296779A (zh) | 一种三维模型渲染显示方法及系统 | |
WO2008067483A1 (en) | Ray tracing a three dimensional scene using a grid | |
KR100833842B1 (ko) | 3차원 그래픽 엔진에서의 픽셀 래스터라이제이션 처리방법및 그의장치 | |
CN101620724A (zh) | 图形处理系统 | |
CN112348954A (zh) | 一种建筑模型处理方法、装置、计算机设备以及存储介质 | |
US8954295B1 (en) | Determining an outer shell of a composite three-dimensional model | |
US20110202318A1 (en) | Interference determination device, interference determination method, and computer program product | |
Livnat et al. | Interactive point-based isosurface extraction | |
CN105549929A (zh) | 用于改善图形性能的方法、装置和计算机程序产品 | |
CN106204699A (zh) | 3d绘图处理电路及其深度处理方法 | |
CN105631923A (zh) | 一种渲染方法和装置 | |
CN113077531A (zh) | 在图形处理系统中对基元进行图块化 | |
CN115701305A (zh) | 阴影筛选 | |
CN106204408A (zh) | 绘图处理电路及其前置深度信息处理方法 | |
CN109377552A (zh) | 图像遮挡计算方法、装置、计算设备及存储介质 | |
CN103310409B (zh) | 一种Tile-based渲染架构GPU的三角形快速分块方法 | |
CN110334027B (zh) | 游戏画面测试方法和装置 | |
WO2023239799A1 (en) | Systems and methods for efficient rendering and processing of point clouds using textures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20161207 |