CN115311399A - 图像渲染方法、装置、电子设备以及存储介质 - Google Patents
图像渲染方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN115311399A CN115311399A CN202211124669.2A CN202211124669A CN115311399A CN 115311399 A CN115311399 A CN 115311399A CN 202211124669 A CN202211124669 A CN 202211124669A CN 115311399 A CN115311399 A CN 115311399A
- Authority
- CN
- China
- Prior art keywords
- node
- resources
- frequency
- resource
- merging
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/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/50—Lighting effects
- G06T15/55—Radiosity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供了一种图像渲染方法、装置、电子设备以及存储介质,涉及图像处理技术领域。图像渲染方法包括:接收图像渲染指令;响应于图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合,并绑定到当前渲染管线,生成当前的着色器管线布局;其中,描述符集合布局为树状结构;树状结构的每一叶节点中包括至少一个着色器;描述符集合布局是基于至少一个着色器的每一模块的资源生成的;基于当前的着色器管线布局对图像进行渲染。本申请的图像渲染方法可以有效避免人工错误造成的着色器与管线不匹配,有效提高图像渲染效率。
Description
技术领域
本申请涉及图像处理技术领域,具体而言,本申请涉及一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。着色器技术被大量的用于游戏开发中,一个画面效果逼真的游戏动辄含有数以百计的着色器特效。
着色器使用渲染资源时,有分组管理的需求。通常的着色器系统,一般通过头文件引用的方式单独管理,用户如果自行组织资源,需要手动对这些资源进行编号,容易引入人工错误,造成着色器与管线不匹配,导致图像渲染出问题。
发明内容
本申请实施例的目的旨在提供一种能够提高查询效率的图像渲染方法、装置、电子设备以及存储介质,为了实现上述目的,本申请实施例提供的技术方案如下:
一方面,本申请实施例提供了一种图像渲染的方法,该方法包括:
接收图像渲染指令;
响应于所述图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合,并绑定到当前渲染管线,生成当前的着色器管线布局;
其中,所述描述符集合布局为树状结构;所述树状结构的每一叶节点中包括至少一个着色器;所述描述符集合布局是基于至少一个着色器的每一模块的资源生成的;
基于所述当前的着色器管线布局对图像进行渲染。
在一些可能的实施方式中,还包括:
通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成预设的描述符集合布局。
在一些可能的实施方式中,通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成预设的描述符集合布局,具体包括:
获取预设的树状结构的多个叶节点中的多个着色器的每一模块对应的资源,并确定每一叶节点中的各资源的更新频率;
基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源;
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局。
在一些可能的实施方式中,所述基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源,包括:
将叶节点作为子节点,基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中;
将父节点作为新的子节点,并重复执行基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中的步骤,直至得到所述根节点的资源。
在一些可能的实施方式中,所述合并频率为与所述子节点对应的父节点的更新频率;每一子节点的更新频率大于对应的父节点的更新频率。
在一些可能的实施方式中,所述基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中,包括:
确定子节点中更新频率小于或等于所述合并频率的第一资源,将至少一个子节点的第一资源合并到对应的父节点中;
确定子节点中更新频率大于所述合并频率的第二资源,确定所述第二资源的最大数量,将所述最大数量更新至所述父节点中。
在一些可能的实施方式中,所述按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述描述符集合布局,包括:
将根节点作为父节点,将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源;
将子节点作为新的父节点,并重复执行将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源的步骤,直至得到所述叶节点的资源,得到所述描述符集合布局。
在一些可能的实施方式中,所述将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源,包括:
若所述父节点包含的资源的更新频率均小于对应的所述子节点的更新频率,则将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源。
在一些可能的实施方式中,所述按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局,包括:
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述树状结构各个节点的更新资源;
基于预设的描述符索引对各个节点的更新资源进行排序,得到所述描述符集合布局。
在一些可能的实施方式中,所述描述符索引包括资源的更新频率、参数绑定的类型、描述符的类型、着色器的阶段中的至少一种。
另一方面,本申请实施例提供了一种图像渲染装置,该装置包括:
接收模块,用于接收图像渲染指令;
第一生成模块,用于响应于所述图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合,并绑定到当前渲染管线,生成当前的着色器管线布局;
其中,所述描述符集合布局为树状结构;所述树状结构的每一叶节点中包括至少一个着色器;所述描述符集合布局是基于至少一个着色器的每一模块的资源生成的;
渲染模块,用于基于所述当前的着色器管线布局对图像进行渲染。
在一些可能的实施方式中,还包括第二生成模块,用于通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成所述描述符集合布局。
在一些可能的实施方式中,所述第二生成模块在通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成所述描述符集合布局时,具体用于:
获取预设的树状结构的多个叶节点中的多个着色器的每一模块对应的资源,并确定每一叶节点中的各资源的更新频率;
基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源;
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局。
在一些可能的实施方式中,所述第二生成模块在基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源时,具体用于:
将叶节点作为子节点,基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中;
将父节点作为新的子节点,并重复执行基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中的步骤,直至得到所述根节点的资源。
在一些可能的实施方式中,所述合并频率为与所述子节点对应的父节点的更新频率;每一子节点的更新频率大于对应的父节点的更新频率。
在一些可能的实施方式中,所述第二生成模块在基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中时,具体用于:
确定子节点中更新频率小于或等于所述合并频率的第一资源,将至少一个子节点的第一资源合并到对应的父节点中;
确定子节点中更新频率大于所述合并频率的第二资源,确定所述第二资源的最大数量,将所述最大数量更新至所述父节点中。
在一些可能的实施方式中,所述第二生成模块在按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述描述符集合布局时,具体用于:
将根节点作为父节点,将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源;
将子节点作为新的父节点,并重复执行将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源的步骤,直至得到所述叶节点的资源,得到所述描述符集合布局。
在一些可能的实施方式中,第二生成模块在将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源时,具体用于:
若所述父节点包含的资源的更新频率均小于对应的所述子节点的更新频率,则将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源。
在一些可能的实施方式中,第二生成模块在按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局时,具体用于:
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述树状结构各个节点的更新资源;
基于预设的描述符索引对各个节点的更新资源进行排序,得到所述描述符集合布局。
在一些可能的实施方式中,所述描述符索引包括资源的更新频率、参数绑定的类型、描述符的类型、着色器的阶段中的至少一种。
另一方面,本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器中存储有计算机程序,处理器执行该计算机程序以实现本申请任一可选实施例中提供的方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序被处理器执行时实现本申请任一可选实施例中提供的方法。
另一方面,本申请实施例还提供了一种计算机程序产品,该计算机产品包括计算机程序,该计算机程序被处理器执行时实现本申请任一可选实施例中提供的方法。
本申请实施例提供的技术方案带来的有益效果如下:
通过预先生成树状结构的描述符集合布局,描述符集合布局是通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后并布局得到的,树状结构的每一叶节点中包括至少一个着色器,可以基于已创建的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合并绑定到当前渲染管线,生成当前的着色器管线布局,从而有效避免人工错误造成的着色器与管线不匹配,有效提高图像渲染效率。
进一步的,将着色器分为多个模块,用户可以根据模块编写着色器,开发起来更为容易,降低了管理成本。
进一步的,同一叶节点中的着色器具有相同的管线布局,因此在进行着色器切换时,不需要重新绑定描述符集合,可以有效减少数据状态切换和数据上传量,实现高频切换着色器。在合并资源时的同时,自动完成了资源的布局,减少了用户的开发量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的图像渲染方法的应用环境示意图;
图2为本申请实施例提供的一种图像渲染方法的流程示意图;
图3为本申请实施例提供的一种生成描述符集合布局的流程示意图;
图4为本申请提供的一个示例中树状结构中叶节点的着色器的资源的示意图;
图5为本申请提供的一个示例中资源从叶节点向根节点合并的方案的示意图;
图6为本申请提供的一个示例中资源从叶节点向根节点合并的方案的示意图;
图7为本申请提供的一个示例中资源从根节点向叶节点传播的方案的示意图;
图8为本申请提供的一个示例中资源从根节点向叶节点传播的方案的示意图;
图9为本申请实施例提供的一种图像渲染装置的结构示意图;
图10为本申请实施例所适用的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。在描述多个(两个或两个以上)项目时,如果没有明确限定多个项目之间的关系,这多个项目之间可以是指多个项目中的一个、多个或者全部,例如,对于“参数A包括A1、A2、A3”的描述,可以实现为参数A包括A1或A2或A3,还可以实现为参数A包括参数A1、A2、A3这三项中的至少两项。
可编程着色管线的出现给现代图形渲染技术带来了翻天覆地的变化,着色器技术被大量的用于游戏开发中,一个画面效果逼真的游戏动辄含有数以百计的着色器特效,以往的着色器系统,一般通过头文件引用的方式单独管理。采用这样的方式单独管理存在这样的问题:着色器使用渲染资源时,有分组管理的需求,例如按照更新频率分组、根据资源类型分组、根据使用方式分组。用户如果自行组织资源,需要手动对这些资源进行编号,这个过程非常容易引入人工错误,造成着色器与管线不匹配、资源使用错误等问题。修复这样的问题,会占用大量开发人力、资源。目前没有系统化的解决方案,管理资源编号与分组。
本申请引入了一种树状结构,以更新频率的高低等特性,组织着色器(shader)模块间的引用关系。这种结构化的关系,可以简化管理难度、提高shader更新效率,使得用户自定义变得更为容易。
下面通过对几个可选的实施例的描述,对本申请提供的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的图像渲染方法的应用环境示意图。其中,应用环境可以包括渲染终端10,渲染终端10中包括着色器管理系统101和渲染模块102。具体的,着色器管理系统101获取多个着色器的每一模块对应的资源,并确定每一叶节点中的各资源的更新频率,生成描述符集合布局。着色器管理系统101将生成的树状结构的描述符集合布局发送至渲染模块102,渲染模块102接收图像渲染指令;响应于所述图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合并绑定到当前渲染管线,生成当前的着色器管线布局,并基于所述当前的着色器管线布局对图像进行渲染。
上述场景中着色器管理系统预先生成描述符集合布局,在其他应用场景中,也可以是由服务器预先生成描述符集合布局,再发送至渲染终端,本领域技术人员可知,上述的场景仅为一个示例中的场景,不对本申请的图像渲染方法的应用场景进行限制。
本技术领域技术人员可以理解,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。
终端(也可以称为用户终端或用户设备)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、AR/VR设备等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
图2示出了本申请实施例提供的一种图像渲染方法的流程示意图,该方法可以由渲染终端执行。
如图2所示,以执行主体为渲染终端为例,本申请提供的图像渲染方法,可以包括如下步骤:
步骤S201,接收图像渲染指令;
步骤S202,响应于所述图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合,并绑定到当前渲染管线,生成当前的着色器管线布局;
步骤S203,基于所述当前的着色器管线布局对图像进行渲染。
其中,描述符是一个特殊的不透明的着色器变量,着色器使用它以间接的方式访问缓冲区和图像资源;描述符集合被称为“集合”,因为它可以引用一组同构资源,可以用相同的布局绑定(Layout Binding)来描述;描述符集合布局是用来描述描述符列表里的内容。
其中,所述描述符集合布局为树状结构;所述树状结构的每一叶节点中包括至少一个着色器;所述描述符集合布局是基于至少一个着色器的每一模块的资源生成的。
具体的,所述描述符集合布局是通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后覆盖生成。
其中,描述符集合布局的树状结构根据更新频率划分为多个层级,每一层级的每个节点有自己的更新频率,相同层级的节点的更新频率相同,顶层的节点更新频率越低,底层的节点更新频率更高,具体针对描述符结合布局的生成过程将在下文进行进一步详细阐述。
在具体实施过程中,以渲染过程中的光照步骤(Lighting Pass)为例,可以从描述符集合布局获取光照阶段的资源布局(逐渲染步骤)。我们根据这份资源布局,创建对应的描述符集合布局(例如Vk Descriptor Set Layout)。在此之后,可以根据布局的要求,上传数据、查找资源。最后创建并填充对应的描述符集合(例如Vk Descriptor Set),将其绑定到当前渲染管线上。在低频的描述符集合绑定完成后,以此类推,根据渲染顺序绑定更高频的描述符集合,最终得到当前的着色器管线布局。
上述实施例中,通过预先生成树状结构的描述符集合布局,描述符集合布局是通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后并布局得到的,树状结构的每一叶节点中包括至少一个着色器,可以基于已创建的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合并绑定到当前渲染管线,生成当前的着色器管线布局,从而有效避免人工错误造成的着色器与管线不匹配,有效提高图像渲染效率。
以下将结合实施例进一步详细阐述描述符集合布局的生成过程。
在一些可能的实施方式中,如图3所示,所述方法还包括:
通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后覆盖生成预设的描述符集合布局。
具体的,通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后覆盖生成预设的描述符集合布局,可以包括:
步骤S301,获取预设的树状结构的多个叶节点中的多个着色器的每一模块对应的资源,并确定每一叶节点中的各资源的更新频率。
具体的,可以获取多个着色器,针对每一个着色器,将着色器分为多个模块(chunk),并且以文本的形式保存在文件系统上。用户在编写着色器时,会引用这些模块。
具体的,模块内部使用到的资源,以更新的频率进行分组,由用户标注、维护。
例如,比如用户在模块声明用到的资源A(uniform block A)、资源B(sampler2DB)和资源C(image3D C),用户需要为资源A、资源B和资源C标注更新频率。比如资源A的更新频率为逐渲染步骤(Per-Pass)、资源B的更新频率为逐材质(Per-Material),资源C的更新频率为逐实例(Per-Instance)。着色器系统会将资源A、资源B和资源C的频率信息记录下来,保存在内部的树状结构中。
步骤S302,基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源。
具体的,从叶节点开始,对于每一个节点,递归向上地将资源合并至父节点,合并频率为父节点的更新频率。
需要注意的是,树状结构已经是预先设置的,也就是说,每一节点与对应的父节点之间的节点关系,是已经设置好的,树状结构的初始状态中,每个内部节点内容为空,每个叶节点包含合并对应的着色器的资源,每个节点设置有自己的更新频率。
在具体实施过程中,步骤S302基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源,可以包括:
(1)将叶节点作为子节点,基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中。
在具体实施过程中,合并频率为与所述子节点对应的父节点的更新频率;每一子节点的更新频率大于对应的父节点的更新频率。
也就是说,从叶节点依次向上,更新频率是依次递减的。
例如,将着色器甲中的模块uniform block A(逐渲染步骤)与着色器乙中的模块uniform block C(逐渲染步骤)进行合并时,父节点的合并频率为逐渲染步骤(Per-Pass),则合并到父节点中的资源为uniform block[A,B],也就是包含两个uniform block。
具体的,所述基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中,可以包括:
a、确定子节点中更新频率小于或等于所述合并频率的第一资源,将至少一个子节点的第一资源合并到对应的父节点中;
b、确定子节点中更新频率大于所述合并频率的第二资源,确定所述第二资源的最大数量,将所述最大数量更新至所述父节点中。
也就是说,对低于或等于合并频率的资源,视作公用资源,合并到一起;对高于合并频率的资源,视作私有资源,统计此类资源的最大数量,作为资源预算。
例如,用户在着色器(甲)中用到了uniform block A(逐渲染步骤)、sampler2D B(逐材质),在着色器(乙)中用到了uniform block C(逐渲染步骤)、sampler2D D(逐材质)。当以逐渲染步骤(Per-Pass)作为合并频率进行合并时,uniform block A与uniform blockC会根据步骤a合并,形成uniform block[A,B],也就是包含两个uniform block。而B与D由于更新频率更高,会根据步骤b预留最大数量,这里是1个sampler2D,形成sampler2D[1]。
(2)将父节点作为新的子节点,并重复执行基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中的步骤,直至得到所述根节点的资源。
具体的,重复依次向上递归更新,直至得到根节点的资源。
例如,从叶节点到根节点中间,包括叶节点的父节点,为第一节点;还包括第一节点的父节点,为第二节点;则将叶节点中的资源合并到对应的第一节点;再将第一节点中的资源合并到对应的第二节点,最后将第二节点中的资源合并到根节点,其中,每一次合并都是依据上述的原则:对低于或等于合并频率的资源,视作公用资源,合并到一起;对高于合并频率的资源,视作私有资源,统计此类资源的最大数量,作为资源预算。
步骤S303,按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局。
具体的,将父节点合并完的资源,向下传播并覆盖子节点的资源。
具体的,覆盖子节点的资源,可以是采用父节点中的资源替换子节点中的资源。
在具体实施过程中,步骤S303按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述描述符集合布局,可以包括:
(1)将根节点作为父节点,将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源。
具体的,可以覆盖的条件为当前资源的更新频率低于子节点的更新频率。
也就是说,将根节点作为父节点,将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源,可以包括:
若所述父节点包含的资源的更新频率均小于对应的所述子节点的更新频率,则将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源。
可以理解的是,在这个过程中,父节点合并过的资源,会被各个子节点共享。这意味着父节点资源的布局相对子节点是确定的,且有更低的更新频率。
(2)将子节点作为新的父节点,并重复执行将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源的步骤,直至得到所述叶节点的资源,得到所述描述符集合布局。
具体的,从根节点至叶节点,重复依次向下递归更新,直至得到叶节点的资源。
例如,从根节点到叶节点中间,包括叶节点的父节点,为第一节点;还包括第一节点的父节点,为第二节点;则将根节点中的资源覆盖到对应的第二节点;再将第二节点中的资源覆盖到对应的第一节点,最后将第一节点中的资源覆盖到叶节点,其中,每一次覆盖都是依据上述的原则:覆盖的条件为当前资源的更新频率低于子节点的更新频率。
在一些可能的实施方式中,步骤S303按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局,可以包括:
(1)按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述树状结构各个节点的更新资源;
(2)基于预设的描述符索引对各个节点的更新资源进行排序,得到所述描述符集合布局。
其中,描述符索引包括资源的更新频率、参数绑定的类型、描述符的类型、着色器的阶段中的至少一种。
在具体实施过程中,对于每个节点中的更新资源,首先根据描述符索引,将资源分组。组间的排序规则为描述符索引元组(Tuple)的字典序(Lexicographic order)。对于组内的资源,可以根据一定规则排序,比如资源名字的字典序。在排序结束后,所有资源的布局就完成了,即得到了描述符集合布局。
上述实施例中,将着色器分为多个模块,用户可以根据模块编写着色器,开发起来更为容易,降低了管理成本。
此外,同一叶节点中的着色器具有相同的管线布局,因此在进行着色器切换时,不需要重新绑定描述符集合,可以有效减少数据状态切换和数据上传量,实现高频切换着色器。在合并资源时的同时,自动完成了资源的布局,减少了用户的开发量。
为了更清楚的说明本申请的图像渲染方法,以下将结合示例对本申请的图像渲染方法进行进一步说明。
在一个示例中,本申请的图像渲染方法,可以包括如下步骤;
1)获取预设的树状结构的多个叶节点中的多个着色器的每一模块对应的资源,并确定每一叶节点中的各资源的更新频率;
如图4所示,图中预设的树状结构中包括叶节点“Shader 0”、“Shader1”和“Shader2”,“Shader 0”和“Shader 1”的父节点为“Queue 0”,“Shader 2”的父节点为“Queue 1”,“Queue 1”和“Queue 0”的父节点为“Pass 0”;如图4中“Shader 0”、“Shader 1”和“Shader2”分别分为多个不同的模块。
2)将叶节点作为子节点,基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中;其中,具体合并方式如下:
确定子节点中更新频率小于或等于所述合并频率的第一资源,将至少一个子节点的第一资源合并到对应的父节点中;
确定子节点中更新频率大于所述合并频率的第二资源,确定所述第二资源的最大数量,将所述最大数量更新至所述父节点中。
如图5所示,“Shader 0”和“Shader 1”中每一模块对应的资源合并到了“Queue 0”中,“Shader 2”每一模块的资源合并到了“Queue 1”中。
3)将父节点作为新的子节点,并重复执行基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中的步骤,直至得到所述根节点的资源。
如图6所示,“Queue 1”和“Queue 0”中的资源合并到了“Pass 0”中。
4)将根节点作为父节点,将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源;
其中,具体覆盖过程如下:
若所述父节点包含的资源的更新频率均小于对应的所述子节点的更新频率,则将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源。
如图7所示,“Pass 0”中的资源分别向“Queue 1”和“Queue 0”中传播。
5)将子节点作为新的父节点,并重复执行将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源的步骤,直至得到所述叶节点的资源,得到所述描述符集合布局。
如图8所示,“Queue 0”中的资源分别向“Shader 0”和“Shader 1”中传播,“Queue1”中的资源向“Shader 2”传播,得到最终的描述符集合布局。
需要注意的是,高于一定频率,收集时只预留大小,具体内容由每个shader决定。例如图8中“Shader 0”和“Shader 1”的频率3的资源是不同的,其中,“Shader 0”的频率3对应为(null)表示“为空”。
6)接收图像渲染指令;
7)响应于所述图像渲染指令,基于上述过程构建的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合并绑定到当前渲染管线,生成当前的着色器管线布局;
8)基于所述当前的着色器管线布局对图像进行渲染。
上述的图像渲染方法,通过预先生成树状结构的描述符集合布局,描述符集合布局是通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后并布局得到的,树状结构的每一叶节点中包括至少一个着色器,可以基于已创建的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合并绑定到当前渲染管线,生成当前的着色器管线布局,从而有效避免人工错误造成的着色器与管线不匹配,有效提高图像渲染效率。
进一步的,将着色器分为多个模块,用户可以根据模块编写着色器,开发起来更为容易,降低了管理成本。
进一步的,同一叶节点中的着色器具有相同的管线布局,因此在进行着色器切换时,不需要重新绑定描述符集合,可以有效减少数据状态切换和数据上传量,实现高频切换着色器。在合并资源时的同时,自动完成了资源的布局,减少了用户的开发量。
如图9所示,在一些可能的实施方式中,提供了一种图像渲染装置,包括:
接收模块901,用于接收图像渲染指令;
第一生成模块902,用于响应于所述图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合,并绑定到当前渲染管线,生成当前的着色器管线布局;
其中,所述描述符集合布局为树状结构;所述树状结构的每一叶节点中包括至少一个着色器;描述符集合布局是基于至少一个着色器的每一模块的资源生成的;
渲染模块903,用于基于所述当前的着色器管线布局对图像进行渲染。
在一些可能的实施方式中,还包括第二生成模块,用于:
通过对多个叶节点中的着色器每一模块的资源按照从树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成描述符集合布局。
在一些可能的实施方式中,第二生成模块在通过对多个叶节点中的着色器每一模块的资源按照从树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成所述描述符集合布局时,具体包括:
获取预设的树状结构的多个叶节点中的多个着色器的每一模块对应的资源,并确定每一叶节点中的各资源的更新频率;
基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源;
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局。
在一些可能的实施方式中,所述第二生成模块在基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源时,具体用于:
将叶节点作为子节点,基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中;
将父节点作为新的子节点,并重复执行基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中的步骤,直至得到所述根节点的资源。
在一些可能的实施方式中,所述合并频率为与所述子节点对应的父节点的更新频率;每一子节点的更新频率大于对应的父节点的更新频率。
在一些可能的实施方式中,所述第二生成模块在基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中时,具体用于:
确定子节点中更新频率小于或等于所述合并频率的第一资源,将至少一个子节点的第一资源合并到对应的父节点中;
确定子节点中更新频率大于所述合并频率的第二资源,确定所述第二资源的最大数量,将所述最大数量更新至所述父节点中。
在一些可能的实施方式中,所述第二生成模块在按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述描述符集合布局时,具体用于:
将根节点作为父节点,将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源;
将子节点作为新的父节点,并重复执行将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源的步骤,直至得到所述叶节点的资源,得到所述描述符集合布局。
在一些可能的实施方式中,第二生成模块在将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源时,具体用于:
若所述父节点包含的资源的更新频率均小于对应的所述子节点的更新频率,则将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源。
在一些可能的实施方式中,第二生成模块在按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局时,具体用于:
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述树状结构各个节点的更新资源;
基于预设的描述符索引对各个节点的更新资源进行排序,得到所述描述符集合布局。
在一些可能的实施方式中,所述描述符索引包括资源的更新频率、参数绑定的类型、描述符的类型、着色器的阶段中的至少一种。
本申请的图像渲染装置,通过预先生成树状结构的描述符集合布局,描述符集合布局是通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后并布局得到的,树状结构的每一叶节点中包括至少一个着色器,可以基于已创建的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合并绑定到当前渲染管线,生成当前的着色器管线布局,从而有效避免人工错误造成的着色器与管线不匹配,有效提高图像渲染效率。
进一步的,将着色器分为多个模块,用户可以根据模块编写着色器,开发起来更为容易,降低了管理成本。
进一步的,同一叶节点中的着色器具有相同的管线布局,因此在进行着色器切换时,不需要重新绑定描述符集合,可以有效减少数据状态切换和数据上传量,实现高频切换着色器。在合并资源时的同时,自动完成了资源的布局,减少了用户的开发量。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行存储器中存储的计算机程序时可实现本申请任一可选实施例中的方法。
图10示出了本发明实施例所适用的一种电子设备的结构示意图,如图10所示,该电子设备可以为服务器或者用户终端,该电子设备可以用于实施本发明任一实施例中提供的方法。
如图10中所示,该电子设备1000主要可以包括至少一个处理器1001(图10中示出了一个)、存储器1002、通信模块1003和输入/输出接口1004等组件,可选的,各组件之间可以通过总线1005实现连接通信。需要说明的是,图10中示出的该电子设备1000的结构只是示意性的,并不构成对本申请实施例提供的方法所适用的电子设备的限定。
其中,存储器1002可以用于存储操作系统和应用程序等,应用程序可以包括在被处理器1001调用时实现本发明实施例所示方法的计算机程序,还可以包括用于实现其他功能或服务的程序。存储器1002可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和计算机程序的其他类型的动态存储设备,也可以是EEPROM(ElectricallyErasable Programmable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(CompactDisc Read Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器1001通过总线1005与存储器1002连接,通过调用存储器1002中所存储的应用程序实现相应的功能。其中,处理器1001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application Specific Integrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
电子设备1000可以通过通信模块1003(可以包括但不限于网络接口等组件)连接到网络,以通过网络与其它设备(如用户终端或服务器等)的通信,实现数据的交互,如向其他设备发送数据或从其他设备接收数据。其中,通信模块1003可以包括有线网络接口和/或无线网络接口等,即通信模块可以包括有线通信模块或无线通信模块中的至少一项。
电子设备1000可以通过输入/输出接口1004可以连接所需要的输入/输出设备,如键盘、显示设备等,电子设备100自身可以具有显示设备,还可以通过接口1004外接其他显示设备。可选的,通过该接口1004还可以连接存储装置,如硬盘等,以可以将电子设备1000中的数据存储到存储装置中,或者读取存储装置中的数据,还可以将存储装置中的数据存储到存储器1002中。可以理解的,输入/输出接口1004可以是有线接口,也可以是无线接口。根据实际应用场景的不同,与输入/输出接口1004连接的设备,可以是电子设备1000的组成部分,也可以是在需要时与电子设备1000连接的外接设备。
用于连接各组件的总线1005可以包括一通路,在上述组件之间传送信息。总线1005可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。根据功能的不同,总线1005可以分为地址总线、数据总线、控制总线等。
可选的,对于本发明实施例所提供的方案而言,存储器1002可以用于存储执行本发明方案的计算机程序,并由处理器1001来运行,处理器1001运行该计算机程序时实现本发明实施例提供的方法或装置的动作。
基于与本申请实施例提供的方法相同的原理,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的相应内容。
本申请实施例还提供了一种计算机程序产品,该产品包括计算机程序,该计算机程序被处理器执行时可实现前述方法实施例的相应内容。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (15)
1.一种图像渲染方法,其特征在于,包括:
接收图像渲染指令;
响应于所述图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合,并绑定到当前渲染管线,生成当前的着色器管线布局;
其中,所述描述符集合布局为树状结构;所述树状结构的每一叶节点中包括至少一个着色器;所述描述符集合布局是基于至少一个着色器的每一模块的资源生成的;
基于所述当前的着色器管线布局对图像进行渲染。
2.根据权利要求1所述的图像渲染方法,其特征在于,还包括:
通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成所述预设的描述符集合布局。
3.根据权利要求2所述的图像渲染方法,其特征在于,所述通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后覆盖,生成所述预设的描述符集合布局,包括:
获取预设的树状结构的多个叶节点中的多个着色器的每一模块对应的资源,并确定每一叶节点中的各资源的更新频率;
基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源;
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局。
4.根据权利要求3所述的图像渲染方法,其特征在于,所述基于每一层级对应的合并频率以及每一叶节点中的各资源的更新频率,对多个叶节点中的着色器的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并,得到根节点的资源,包括:
将叶节点作为子节点,基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中;
将父节点作为新的子节点,并重复执行基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中的步骤,直至得到所述根节点的资源。
5.根据权利要求4所述的图像渲染方法,其特征在于,所述合并频率为与所述子节点对应的父节点的更新频率;每一子节点的更新频率大于对应的父节点的更新频率。
6.根据权利要求4所述的图像渲染方法,其特征在于,所述基于与所述子节点对应的合并频率以及所述子节点中资源的更新频率,将所述子节点的资源合并到对应的父节点中,包括:
确定子节点中更新频率小于或等于所述合并频率的第一资源,将至少一个子节点的第一资源合并到对应的父节点中;
确定子节点中更新频率大于所述合并频率的第二资源,确定所述第二资源的最大数量,将所述最大数量更新至所述父节点中。
7.根据权利要求3所述的图像渲染方法,其特征在于,所述按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局,包括:
将根节点作为父节点,将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源;
将子节点作为新的父节点,并重复执行将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源的步骤,直至得到所述叶节点的资源,得到所述描述符集合布局。
8.根据权利要求7所述的图像渲染方法,其特征在于,所述将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源,包括:
若所述父节点包含的资源的更新频率均小于对应的所述子节点的更新频率,则将所述父节点的资源向对应的子节点传播,并覆盖子节点的资源。
9.根据权利要求3所述的图像渲染方法,其特征在于,所述按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,生成所述描述符集合布局,包括:
按照从所述树状结构的根节点到叶节点的方向,通过将根节点的资源逐层级进行覆盖,得到所述树状结构各个节点的更新资源;
基于预设的描述符索引对各个节点的更新资源进行排序,得到所述描述符集合布局。
10.根据权利要求9所述的图像渲染方法,其特征在于,所述描述符索引包括资源的更新频率、参数绑定的类型、描述符的类型、着色器的阶段中的至少一种。
11.一种图像渲染装置,其特征在于,包括:
接收模块,用于接收图像渲染指令;
第一生成模块,用于响应于所述图像渲染指令,基于预设的描述符集合布局,按照频率从低到高的顺序,依次创建对应的描述符集合,并绑定到当前渲染管线,生成当前的着色器管线布局;
其中,所述描述符集合布局为树状结构;所述树状结构的每一叶节点中包括至少一个着色器;所述描述符集合布局是基于至少一个着色器的每一模块的资源生成的;
渲染模块,用于基于所述当前的着色器管线布局对图像进行渲染。
12.根据权利要求11所述的图像渲染装置,其特征在于,还包括第二生成模块,用于通过对多个叶节点中的着色器每一模块的资源按照从所述树状结构的叶节点到根节点的方向逐层级进行合并后,覆盖生成所述描述符集合布局。
13.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-10任一项所述图像渲染方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的图像渲染方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述图像渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124669.2A CN115311399A (zh) | 2022-09-15 | 2022-09-15 | 图像渲染方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124669.2A CN115311399A (zh) | 2022-09-15 | 2022-09-15 | 图像渲染方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115311399A true CN115311399A (zh) | 2022-11-08 |
Family
ID=83866830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211124669.2A Pending CN115311399A (zh) | 2022-09-15 | 2022-09-15 | 图像渲染方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115311399A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215592A (zh) * | 2023-11-07 | 2023-12-12 | 芯瞳半导体技术(山东)有限公司 | 渲染程序生成方法、装置、电子设备和存储介质 |
-
2022
- 2022-09-15 CN CN202211124669.2A patent/CN115311399A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215592A (zh) * | 2023-11-07 | 2023-12-12 | 芯瞳半导体技术(山东)有限公司 | 渲染程序生成方法、装置、电子设备和存储介质 |
CN117215592B (zh) * | 2023-11-07 | 2024-02-20 | 芯瞳半导体技术(山东)有限公司 | 渲染程序生成方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020119485A1 (zh) | 一种页面显示方法、装置、设备及存储介质 | |
CN110109659A (zh) | 一种实现前端应用脚手架的系统和服务器 | |
CN109766097A (zh) | Ui生成方法、装置、电子设备及计算机可读存储介质 | |
CN108279882B (zh) | 框架生成方法、装置、设备及计算机可读介质 | |
CN111467806A (zh) | 游戏场景中资源生成方法、装置、介质及电子设备 | |
CN112906206B (zh) | 数字孪生模型构建方法和装置 | |
CN110244957A (zh) | 一种资源数据更新方法、装置及系统 | |
CN111143039A (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN115311399A (zh) | 图像渲染方法、装置、电子设备以及存储介质 | |
CN111666100A (zh) | 软件框架生成方法、装置、电子设备及存储介质 | |
CN110334103A (zh) | 推荐服务的更新方法、提供装置、访问装置和推荐系统 | |
TWI706343B (zh) | 樣本回放資料存取方法、裝置及電腦設備 | |
CN115098082A (zh) | 基于Jenkins插件的流水线脚本生成方法、系统、设备及介质 | |
CN116775174A (zh) | 一种基于用户界面框架的处理方法、装置、设备及介质 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN112948593A (zh) | 知识图谱的生成方法、装置、设备和介质 | |
CN112148461A (zh) | 应用的调度方法、装置 | |
CN111581932A (zh) | 一种数据驱动的大数据分析方法、系统、装置、存储介质及终端 | |
CN111552715A (zh) | 用户查询方法和装置 | |
CN111737784A (zh) | 基于数字化三维的zxmp s385子架的板卡选型配置方法及设备 | |
CN113127430A (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
CN112445817A (zh) | 查询指令的执行方法、装置、电子设备及计算机可读介质 | |
CN112346812B (zh) | 页面的布局方法、装置 | |
CN114528043B (zh) | 文件加载方法、装置、设备及计算机可读存储介质 | |
US11636111B1 (en) | Extraction of relationship graphs from relational databases |
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 |