CN111798365B - 深度抗锯齿数据读取方法、装置、设备和存储介质 - Google Patents
深度抗锯齿数据读取方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111798365B CN111798365B CN202010535942.5A CN202010535942A CN111798365B CN 111798365 B CN111798365 B CN 111798365B CN 202010535942 A CN202010535942 A CN 202010535942A CN 111798365 B CN111798365 B CN 111798365B
- Authority
- CN
- China
- Prior art keywords
- data
- depth
- multisampling
- resource
- sampling
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明实施例提供一种深度抗锯齿数据读取方法、装置、设备和存储介质,该方法包括:创建深度多采样资源,对场景进行渲染,得到场景的深度多采样数据,存到图形处理器缓存中;在内存中创建颜色资源,将场景的深度多采样数据进行编码,并存储到颜色资源对应的图形处理器缓存中;在调用绘制命令的过程中,将颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,并存储到颜色资源的内存中;对单采样数据进行采样以及解码处理,得到深度抗锯齿数据;在内存中创建纹理数据资源,将深度抗锯齿数据存储到纹理数据资源中。采用本发明,所得的深度数据存储在了指定内存中,存在指定内存中的深度数据可以正常被读取与使用。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种深度抗锯齿数据读取方法、装置、设备和存储介质。
背景技术
相关技术中,为了提高渲染图像的精度,去除渲染图像中锯齿现象,会在渲染图像的过程中进行抗锯齿处理。这对渲染图像进行抗锯齿处理之后,所得的抗锯齿结果会自动保存在RenderBuffer这种类型的缓存器中。由于RenderBuffer本身对读写的限制,导致无法读取RenderBuffer中存储的抗锯齿结果,进而也就无法正常使用RenderBuffer中存储的抗锯齿结果,不利于渲染效果的实现。
此外,相关技术中的渲染方式除了RenderBuffer之外都不支持32位的高精度深度Z-Buffer的使用,无法满足项目中相应的高精度Z-Buffer需求,需要创建多采样的Texture,消耗的内存资源比较多,且需要人为使用着色语言将多采样结果混合成单采样结果,相比GPU硬件混合方法耗时更多,最后要求使用OpenGLES 3.2版本,此版本在当今安卓手机上的普及率很低,大多数安卓手机不支持此功能。
除此以外,相关技术中使用OpenGLES的eglChooseConfig函数接口设置多采样参数,在绘制完场景后,直接将深度抗锯齿结果保存到类型为FrameBuffer的资源中。将深度抗锯齿结果写到FrameBuffer资源中,导致深度信息无法被后续需要读取深度信息的渲染流程使用。
发明内容
本发明实施例提供一种深度抗锯齿数据读取方法、装置、设备和存储介质,用以使得计算出的抗锯齿结果可读,可以正常使用抗锯齿结果,提高渲染效率。
第一方面,本发明实施例提供一种深度抗锯齿数据读取方法,该方法包括:
创建深度多采样资源,对场景进行渲染,得到所述场景的深度多采样数据,存到图形处理器缓存中;
在内存中创建颜色资源,将所述场景的深度多采样数据进行编码,并存储到所述颜色资源对应的图形处理器缓存中;
在调用绘制命令的过程中,将所述颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,并存到颜色资源的内存中;
对所述单采样数据进行采样以及解码处理,得到深度抗锯齿数据;
在内存中创建纹理数据资源,将所述深度抗锯齿数据存储到所述纹理数据资源中。
第二方面,本发明实施例提供一种深度抗锯齿数据读取装置,包括:
渲染模块,用于创建深度多采样资源,对场景进行渲染,得到所述场景的深度多采样数据,存到图形处理器缓存中;
写入模块,用于在内存中创建颜色资源,将所述场景的深度多采样数据进行编码,并存储到所述颜色资源对应的图形处理器缓存中;
转换模块,用于在调用绘制命令的过程中,将所述颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,并存到颜色资源的内存中;
解码模块,用于对所述单采样数据进行采样以及解码处理,得到深度抗锯齿数据;
所述写入模块,还用于在所述内存中创建纹理数据资源,将所述深度抗锯齿数据存储到所述纹理数据资源中。
第三方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现第一方面中的深度抗锯齿数据读取方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现第一方面中的深度抗锯齿数据读取方法。
通过本发明实施例提供的方法,可以通过图形处理器缓存来高效地处理深度多采样数据,并将所得的深度抗锯齿数据存储在指定内存中。通过将深度抗锯齿数据存储在指定内存中的方式,使得能够从内存中读取深度抗锯齿数据,并基于深度抗锯齿数据进行后续的渲染流程。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种深度抗锯齿数据读取方法的流程图示意图;
图2为本发明实施例提供的一种深度抗锯齿数据读取装置的结构示意图;
图3为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种深度抗锯齿数据读取方法的流程图,如图1所示,该方法包括如下步骤:
101、创建深度多采样资源,对场景进行渲染,得到场景的深度多采样数据,存到图形处理器缓存中。
102、在内存中创建颜色资源,将场景的深度多采样数据进行编码,并存储到颜色资源对应的图形处理器缓存中。
103、在调用绘制命令的过程中,将颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,并存到颜色资源的内存中。
104、对单采样数据进行采样以及解码处理,得到深度抗锯齿数据。
105、在内存中创建纹理数据资源,将深度抗锯齿数据存储到纹理数据资源中。
在实际应用中,为了存储在执行本发明实施例提供的方法的过程中所生成的数据,可以为这些数据创建存储资源,这样在生成这些数据之后,可以将这些数据存储到对应的存储资源中。下面将介绍可以创建的存储资源。
假设当前需要对渲染目标进行渲染,该渲染目标的高记为SizeH,该渲染目标的宽记为SizeW,在创建所有存储资源时,这些存储资源的宽和高都可以依次设置为SizeW和SizeH。
可以通过OpenGLES(OpenGL for Embedded Systems,OpenGLES是OpenGL三维图形应用程序接口的子集)的拓展功能glFramebufferTexture2DMultisam pleEXT或者glFramebufferTexture2DMultisampleIMG,创建用于存储场景的深度多采样数据的存储资源。该用于存储场景的深度多采样数据的存储资源可以是RenderBuffer资源,可以通过MultiSampleDepthRenderBuffer来表示该Re nderBuffer资源。此外,还可以指定MultiSampleDepthRenderBuffer对应的多采样的采样数量,该采样数量可以是2、4、8或者其他数值,其他数值可以是硬件能够支持的多采样的采样数量。RenderBuffer资源中存储的数据格式可以是GL_DEPTH_COMPONENT32或者GL_DEPTH_COMPONENT16。GL_DEPTH_COMPONENT32对应32位高精度的深度多采样数据,GL_DEPTH_COMPONENT16对应16位的深度多采样数据。
还可以通过OpenGLES的上述拓展功能,创建用于存储深度多采样数据的Texture资源,可以通过MultiSampleDepthTexture来表示该用于存储深度多采样数据的Texture资源。此外,还可以指定MultiSampleDepthTexture对应的多采样的采样数量,该采样数量与MultiSampleDepthRenderBuffer设置的采样数量相同。用于存储深度多采样数据的Texture资源中存储的数据格式可以是GL_RGBA8。
还可以创建用于存储深度抗锯齿数据的Texture资源,可以通过DepthTex ture来表示该用于存储深度抗锯齿数据的Texture资源。用于存储深度抗锯齿数据的Texture资源中存储的数据格式设置为与RenderBuffer资源相同。
需要说明的是,在应用程序启动之后,可以通过上述方式创建上述存储资源,在创建这些存储资源之后,在应用程序运行的过程中,可以重复使用这些存储资源。通过重复使用存储资源的方式,可以减少内存资源的使用。
在创建MultiSampleDepthRenderBuffer之后,可以以MultiSampleDepthRenderBuffer作为深度信息渲染目标,对场景进行渲染,得到场景的深度多采样数据,这样得到的场景的深度多采样数据可以存储在图形处理器缓存中。
需要说明的是,上述场景可以是游戏中的场景,该场景可以是三维场景。在在显示器上显示游戏画面之前,可以先渲染游戏的场景,由于游戏的场景是三维的,而在显示器上显示的游戏画面是二维的,因此在得到游戏的场景之后,可以将游戏的场景转换成适用于在显示器上显示的游戏画面。
为了提高游戏画面的图像质量,避免游戏画面中出现锯齿影响观看体验,可以通过多重采样抗锯齿技术(Multisampling Anti-Aliasing,MSAA)进行多采样处理,这样可以避免游戏画面中出现锯齿。通过多重采样抗锯齿技术,可以对深度缓存(Z-Buffer)和模板缓存(Stencil Buffer)中的数据进行多采样处理,再将多采样的中间结果混合成单采样的最终结果,得到的效果是只对多边形的边缘进行了抗锯齿处理,对计算机的内存和带宽资源消耗较小。
在多重采样抗锯齿的过程中,每个子采样点都可以进行单独的着色。对于每个子采样点可以计算一个覆盖信息(coverage)和遮挡信息(occlusion),通过覆盖信息和遮挡信息把像素的颜色值写到每个子采样点里,最终根据子采样点里的颜色值,通过重建过滤器来降采样生成目标图像。
在对场景进行渲染得到场景的深度多采样数据之后,可以在内存中创建颜色资源,将场景的深度多采样数据进行编码,并存储到颜色资源对应的图形处理器缓存中。在后续调用的过程中,将颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据。
在实际应用中,基于场景的深度多采样数据,确定深度多采样数据的过程是在图形处理器(Graphics Processing Unit,简写为GPU)中完成的。可以通过Draw Call来命令GPU进行渲染操作,Draw Call是GPU调用图形编程接口。
创建的MultiSampleDepthTexture可以是内存资源,绘制过程中GPU会先把数据放在图形处理器的缓存中,最后在必要的时候才会将图形处理器的缓存数据写入MultiSampleDepthTexture中。可以将MultiSampleDepthTexture设置为颜色信息渲染目标,将MultiSampleDepthRenderBuffer设置为深度信息渲染目标。
可以绘制第一矩形,该第一矩形是在平面中的,是适用于在显示器上显示的二维平面,可以通过RecTangle1来表示该第一矩形。可以将RecTangle1的宽设置为SizeW,将RecTangle1的高设置为SizeH。在绘制RecTangle1时,Re cTangle1中没有填充,下面可以通过Shader FrameBuffer Fetch Extensions,根据场景中的深度多采样数据,来填充RecTangle1中的深度多采样数据。
上述填充RecTangle1中的深度多采样数据的过程可以包括:对于RecTang le1中的任一像素,基于任一像素在RecTangle1中的位置,确定场景中与任一像素相对应的参考点;基于参考点对应的深度多采样数据,确定任一像素对应的深度多采样数据。
在实际应用中,对于RecTangle1中任一像素P,确定任一像素P在RecTan gle1中的位置,由于RecTangle1中的像素的位置与场景中的点的位置具有对应关系,因此可以基于任一像素P在RecTangle1中的位置,确定场景中与任一像素P相对应的参考点。场景中包括多个几何体,场景对应的深度多采样数据可以存储在图形处理器缓存中,因此场景中的参考点也对应有相应的深度多采样数据,可以从图形处理器缓存中获取参考点对应的深度多采样数据。最后可以基于参考点对应的深度多采样数据,确定任一像素P对应的深度多采样数据。
上述基于参考点对应的深度多采样数据,确定任一像素对应的深度多采样数据的过程可以实现为:对参考点对应的深度多采样数据进行预设编码,得到编码后的数据;将编码后的数据,确定为任一像素对应的深度多采样数据。其中,预设编码可以是RGBA8编码。
在实际应用中,在对深度多采样数据进行RGBA8编码后,深度多采样数据的数据格式为RGBA8,可以将数据格式为RGBA8的深度多采样数据写入到颜色信息渲染目标中。
可以使用GLES着色语言,重复对RecTangle1中的每个像素都执行一遍上述过程,直到得到RecTangle1中所有像素分别对应的深度多采样数据。其中,GLES着色语言是一类专门用来为着色器编程的编程语言,由于三维计算器图形目标市场的多元化,不同的目标市场通常使用不同的着色器语言。OpenGLES使用的是GLES着色语言。
在计算出RecTangle1中的深度多采样数据并将深度多采样数据存储到GPU中的缓存之后,可以在后续调用绘制命令的过程中,将颜色资源中存储的深度多采样数据转换为单采样数据。
上述确定深度抗锯齿数据的过程可以实现为:在调用绘制命令的过程中,图形处理器将纹理资源中存储的深度多采样数据,混合为单采样数据。
在实际应用中,可以调用Draw Call命令实现确定深度抗锯齿数据的过程。具体可以以DepthTexture作为深度信息渲染目标,以MultiSampleDepthTexture作为纹理资源。当把MultiSampleDepthTexture作为纹理资源时,GPU可以将GPU的缓存中存储的深度多采样数据混合为单采样数据,并将单采样数据写入到MultiSampleDepthTexture中。通过使用GPU硬件自动将深度多采样数据混合成单采样数据,可以提高数据处理时间效率。
可选地,确定深度数据的过程可以实现为:绘制第二矩形,第二矩形中包括多个像素;对于多个像素中的任一像素,基于任一像素在第二矩形中归一化的位置,确定任一像素对应的单采样数据;对任一像素对应的单采样数据进行数据格式转换,得到任一像素对应的深度抗锯齿数据。
在实际应用中,可以绘制一个宽为SizeW、高为SizeH的第二矩形,可以将第二矩形记为RecTangle2。由于前面介绍到以DepthTexture作为深度信息渲染目标,因此可以将RecTangle2的单采样数据写入到DepthTexture中。
对于RecTangle2的任一像素P,可以根据任一像素P在RecTangle2中归一化的位置,确定任一像素P对应的单采样数据,该单采样数据也可以称为颜色数据C。随后可以对颜色数据C进行格式转换得到深度抗锯齿数据D。
上述格式转换的过程可以实现为:若内存中创建的纹理数据资源的数据存储格式为GL_DEPTH_COMPONENT32,则通过第一格式转换算法,对任一像素对应的单采样数据进行数据格式转换;若内存中创建的纹理数据资源的数据存储格式为GL_DEPTH_COMPONENT16,则通过第二格式转换算法,对任一像素对应的单采样数据进行数据格式转换。
可选地,任一像素对应的单采样数据为RGBA8格式的数据;第一格式转换算法为将RGBA8格式的数据转换为Float32格式的数据的算法;第二格式转换算法为将RGBA8格式的数据转换为Float16格式的数据的算法。
本发明实施例提供的方法中,支持存储深度抗锯齿数据的数据格式包括GL_DEPTH_COMPONENT32和GL_DEPTH_COMPONENT16。GL_DEPTH_COMPONENT32为高精度的深度抗锯齿数据,因此通过本发明实施例提供的方法,可以提高支持的深度抗锯齿数据的精度。
可以使用GLES着色语言,重复对RecTangle2中的每个像素都执行一遍上述过程,直到得到RecTangle2中所有像素分别对应的深度抗锯齿数据。通过本发明实施例提供的方法,可以适用于不同的搭载安卓系统的移动平台,提高了本发明的利用率。
通过上面的描述可知,所得的深度抗锯齿数据存储在了DepthTexture中,DepthTexture可以作为后续渲染流程中的深度信息渲染目标,此外存在DepthTexture中的深度抗锯齿数据在后续渲染流程中可以作为纹理资源正常被读取与使用。
通过本发明实施例提供的方法,可以通过图形处理器缓存来高效地处理深度多采样数据,并将所得的深度抗锯齿数据存储在指定内存中。通过将深度抗锯齿数据存储在指定内存中的方式,使得能够从内存中读取深度抗锯齿数据,并基于深度抗锯齿数据进行后续的渲染流程,通过硬件计算多采样数据。
以下将详细描述本发明的一个或多个实施例的深度抗锯齿数据读取装置。本领域技术人员可以理解,这些深度抗锯齿数据读取装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图2为本发明实施例提供的一种深度抗锯齿数据读取装置的结构示意图。
渲染模块21,用于创建深度多采样资源,对场景进行渲染,得到所述场景的深度多采样数据,存到图形处理器缓存中;
写入模块22,用于在内存中创建颜色资源,将所述场景的深度多采样数据进行编码,并存储到所述颜色资源对应的图形处理器缓存中;
转换模块23,用于在调用绘制命令的过程中,将所述颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,并存到颜色资源的内存中;
解码模块24,用于对所述单采样数据进行采样以及解码处理,得到深度抗锯齿数据;
所述写入模块22,还用于在所述内存中创建纹理数据资源,将所述深度抗锯齿数据存储到所述纹理数据资源中。
可选地,所述写入模块22,用于:
绘制第一矩形,所述第一矩形中包括多个像素;
对于所述多个像素中的任一像素,基于所述任一像素在所述第一矩形中的位置,确定所述场景中与所述任一像素相对应的参考点;
基于所述参考点对应的深度多采样数据,确定所述任一像素对应的深度多采样数据。
可选地,所述写入模块22,用于:
对所述参考点对应的深度多采样数据进行预设编码,得到编码后的数据;
将所述编码后的数据,确定为所述任一像素对应的深度多采样数据。
可选地,所述预设编码为RGBA8编码。
可选地,所述转换模块23,用于:
在调用绘制命令的过程中,图形处理器将所述纹理资源中存储的深度多采样数据,混合为单采样数据。
可选地,所述解码模块24,用于:
绘制第二矩形,所述第二矩形中包括多个像素;
对于所述多个像素中的任一像素,基于所述任一像素在所述第二矩形中归一化的位置,确定所述任一像素对应的单采样数据;
对所述任一像素对应的单采样数据进行数据格式转换,得到所述任一像素对应的深度抗锯齿数据。
可选地,所述解码模块24,用于:
若所述内存中创建的所述纹理数据资源的数据存储格式为GL_DEPTH_COMPONENT32,则通过第一格式转换算法,对所述任一像素对应的单采样数据进行数据格式转换;
若所述内存中创建的所述纹理数据资源的数据存储格式为GL_DEPTH_COMPONENT16,则通过第二格式转换算法,对所述任一像素对应的深度抗锯齿数据进行数据格式转换。
可选地,所述任一像素对应的单采样数据为RGBA8格式的数据;
所述第一格式转换算法为将RGBA8格式的数据转换为Float32格式的数据的算法;
所述第二格式转换算法为将RGBA8格式的数据转换为Float16格式的数据的算法。
图2所示装置可以执行前述图1所示实施例中提供的深度抗锯齿数据读取方法,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图2所示深度抗锯齿数据读取装置的结构可实现为一电子设备,如图3所示,该电子设备可以包括:处理器91、存储器92。其中,所述存储器92上存储有可执行代码,当所述可执行代码被所述处理器91执行时,使所述处理器91至少可以实现如前述图1所示实施例中提供的深度抗锯齿数据读取方法。
可选地,该电子设备中还可以包括通信接口93,用于与其他设备进行通信。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述图1所示实施例中提供的深度抗锯齿数据读取方法。
根据需要,本发明各实施例的系统、方法和装置可以实现为纯粹的软件(例如用Java来编写的软件程序),也可以根据需要实现为纯粹的硬件(例如专用ASIC芯片或FPGA芯片),还可以实现为结合了软件和硬件的系统(例如存储有固定代码的固件系统或者带有通用存储器和处理器的系统)。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
Claims (11)
1.一种深度抗锯齿数据读取方法,其特征在于,包括:
创建深度多采样资源,对场景进行渲染,得到所述场景的深度多采样数据,存到图形处理器缓存中;
在内存中创建颜色资源,将所述场景的深度多采样数据进行编码,并存储到所述颜色资源对应的图形处理器缓存中;
在调用绘制命令的过程中,将所述颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,并存到颜色资源的内存中;
对所述单采样数据进行采样以及解码处理,得到深度抗锯齿数据;
在所述内存中创建纹理数据资源,将所述深度抗锯齿数据存储到所述纹理数据资源中。
2.根据权利要求1所述的方法,其特征在于,所述在内存中创建颜色资源,将所述场景的深度多采样数据进行编码,并存储到所述颜色资源对应的图形处理器缓存中,还包括:
绘制第一矩形,所述第一矩形中包括多个像素;
对于所述多个像素中的任一像素,基于所述任一像素在所述第一矩形中的位置,确定所述场景中与所述任一像素相对应的参考点;
基于所述参考点对应的深度多采样数据,确定所述任一像素对应的深度多采样数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述参考点对应的深度多采样数据,确定所述任一像素对应的深度多采样数据,包括:
对所述参考点对应的深度多采样数据进行预设编码,得到编码后的数据;
将所述编码后的数据,确定为所述任一像素对应的深度多采样数据。
4.根据权利要求3所述的方法,其特征在于,所述预设编码为RGBA8编码。
5.根据权利要求1所述的方法,其特征在于,所述在调用绘制命令的过程中,将所述颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,包括:
在调用绘制命令的过程中,图形处理器将所述纹理资源中存储的深度多采样数据,混合为单采样数据。
6.根据权利要求5所述的方法,其特征在于,所述对所述单采样数据进行采样以及解码处理,得到深度抗锯齿数据,包括:
绘制第二矩形,所述第二矩形中包括多个像素;
对于所述多个像素中的任一像素,基于所述任一像素在所述第二矩形中归一化的位置,确定所述任一像素对应的单采样数据;
对所述任一像素对应的单采样数据进行数据格式转换,得到所述任一像素对应的深度抗锯齿数据。
7.根据权利要求6所述的方法,其特征在于,所述对所述任一像素对应的单采样数据进行数据格式转换,包括:
若所述内存中创建的所述纹理数据资源的数据存储格式为GL_DEPTH_COMPO NENT32,则通过第一格式转换算法,对所述任一像素对应的单采样数据进行数据格式转换;
若所述内存中创建的所述纹理数据资源的数据存储格式为GL_DEPTH_COMPO NENT16,则通过第二格式转换算法,对所述任一像素对应的单采样数据进行数据格式转换。
8.根据权利要求7所述的方法,其特征在于,所述任一像素对应的单采样数据为RGBA8格式的数据;
所述第一格式转换算法为将RGBA8格式的数据转换为Float32格式的数据的算法;
所述第二格式转换算法为将RGBA8格式的数据转换为Float16格式的数据的算法。
9.一种深度抗锯齿数据读取装置,其特征在于,包括:
渲染模块,用于创建深度多采样资源,对场景进行渲染,得到所述场景的深度多采样数据,存到图形处理器缓存中;
写入模块,用于在内存中创建颜色资源,将所述场景的深度多采样数据进行编码,并存储到所述颜色资源对应的图形处理器缓存中;
转换模块,用于在调用绘制命令的过程中,将所述颜色资源对应的图形处理器缓存中存储的深度多采样数据转换为单采样数据,并存到颜色资源的内存中;
解码模块,用于对所述单采样数据进行采样以及解码处理,得到深度抗锯齿数据;
所述写入模块,还用于在所述内存中创建纹理数据资源,将所述深度抗锯齿数据存储到所述纹理数据资源中。
10.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-8中任一项所述的深度抗锯齿数据读取方法。
11.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-8中任一项所述的深度抗锯齿数据读取方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010535942.5A CN111798365B (zh) | 2020-06-12 | 2020-06-12 | 深度抗锯齿数据读取方法、装置、设备和存储介质 |
PCT/CN2020/112578 WO2021248706A1 (zh) | 2020-06-12 | 2020-08-31 | 深度抗锯齿数据读取方法、装置、计算机程序和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010535942.5A CN111798365B (zh) | 2020-06-12 | 2020-06-12 | 深度抗锯齿数据读取方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111798365A CN111798365A (zh) | 2020-10-20 |
CN111798365B true CN111798365B (zh) | 2023-09-01 |
Family
ID=72804411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010535942.5A Active CN111798365B (zh) | 2020-06-12 | 2020-06-12 | 深度抗锯齿数据读取方法、装置、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111798365B (zh) |
WO (1) | WO2021248706A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114612579A (zh) * | 2020-12-18 | 2022-06-10 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN113012026B (zh) * | 2021-03-23 | 2023-09-05 | 格兰菲智能科技有限公司 | 图形处理器及其操作方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620725A (zh) * | 2008-07-03 | 2010-01-06 | 辉达公司 | 混合多重采样/超采样抗锯齿 |
CN103003839A (zh) * | 2010-07-19 | 2013-03-27 | 超威半导体公司 | 反锯齿样本的拆分存储 |
CN104798108A (zh) * | 2012-12-24 | 2015-07-22 | 英特尔公司 | 用于改善msaa渲染效率的技术 |
CN105096370A (zh) * | 2015-07-15 | 2015-11-25 | 西安邮电大学 | 光线追踪的等价划分反锯齿方法 |
CN106952328A (zh) * | 2016-12-28 | 2017-07-14 | 北京大学 | 一种大规模宏观虚拟场景的绘制方法与系统 |
CN111192351A (zh) * | 2018-11-14 | 2020-05-22 | 芯原微电子(上海)股份有限公司 | 边缘抗锯齿的图形处理方法、系统、存储介质及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6967663B1 (en) * | 2003-09-08 | 2005-11-22 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
CN108846815B (zh) * | 2018-06-19 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 图像抗锯齿处理方法、装置和计算机设备 |
-
2020
- 2020-06-12 CN CN202010535942.5A patent/CN111798365B/zh active Active
- 2020-08-31 WO PCT/CN2020/112578 patent/WO2021248706A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620725A (zh) * | 2008-07-03 | 2010-01-06 | 辉达公司 | 混合多重采样/超采样抗锯齿 |
CN103003839A (zh) * | 2010-07-19 | 2013-03-27 | 超威半导体公司 | 反锯齿样本的拆分存储 |
CN104798108A (zh) * | 2012-12-24 | 2015-07-22 | 英特尔公司 | 用于改善msaa渲染效率的技术 |
CN105096370A (zh) * | 2015-07-15 | 2015-11-25 | 西安邮电大学 | 光线追踪的等价划分反锯齿方法 |
CN106952328A (zh) * | 2016-12-28 | 2017-07-14 | 北京大学 | 一种大规模宏观虚拟场景的绘制方法与系统 |
CN111192351A (zh) * | 2018-11-14 | 2020-05-22 | 芯原微电子(上海)股份有限公司 | 边缘抗锯齿的图形处理方法、系统、存储介质及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021248706A1 (zh) | 2021-12-16 |
CN111798365A (zh) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111798372B (zh) | 图像渲染方法、装置、设备和可读介质 | |
US9165399B2 (en) | System, method, and computer program product for inputting modified coverage data into a pixel shader | |
KR102475212B1 (ko) | 타일식 아키텍처들에서의 포비티드 렌더링 | |
US9454843B2 (en) | Modulated and blended anti-aliasing | |
US9779534B2 (en) | Prefixed summed length in graphics processing | |
CN111798365B (zh) | 深度抗锯齿数据读取方法、装置、设备和存储介质 | |
EP2854108B1 (en) | Anti-aliasing for graphics hardware | |
WO2018222271A1 (en) | Storage for foveated rendering | |
CN110544290A (zh) | 数据渲染方法及装置 | |
US9224227B2 (en) | Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader | |
CN110415161B (zh) | 图形处理方法、装置、设备及存储介质 | |
CN111292387B (zh) | 动态图片的加载方法、装置、存储介质及终端设备 | |
WO2016133730A1 (en) | Systems and methods for reducing memory bandwidth using low quality tiles | |
CN110706326B (zh) | 数据展示方法及装置 | |
JPWO2009090726A1 (ja) | 図形描画装置及び図形描画方法 | |
KR100823373B1 (ko) | 3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의프로그램 가능 필터링을 위한 방법 및 메카니즘 | |
CN115439609B (zh) | 基于地图服务的三维模型渲染方法、系统、设备及介质 | |
US8063914B1 (en) | Rendering antialiased geometry to an image buffer using jittering | |
CN113791857B (zh) | Linux系统中应用窗口背景模糊处理方法及装置 | |
CN115361583A (zh) | 针对APP与Unity实时渲染视频帧纹理的方法 | |
US9305388B2 (en) | Bit-count texture format | |
CN109064483B (zh) | Lcd屏幕的图片抗锯齿方法、装置、单片机及存储介质 | |
US20130063464A1 (en) | Primitive rendering using a single primitive type | |
CN116883228A (zh) | 一种gpu像素填充率测量方法 | |
CN118043842A (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20201020 Assignee: Beijing Xuanguang Technology Co.,Ltd. Assignor: Perfect world (Beijing) software technology development Co.,Ltd. Contract record no.: X2022990000514 Denomination of invention: Deep antialiasing data reading method, apparatus, device and storage medium License type: Exclusive License Record date: 20220817 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
GR01 | Patent grant | ||
GR01 | Patent grant |