顶点坐标生成方法技术

技术编号:39901782 阅读:5 留言:0更新日期:2023-12-30 13:16
本公开提供了一种顶点坐标生成方法

【技术实现步骤摘要】
顶点坐标生成方法、装置、电子设备及计算机存储介质


[0001]本公开涉及计算机图形学
,尤其涉及一种顶点坐标生成方法

装置

电子设备及计算机存储介质

[0002]
技术介绍

[0003]在图形渲染过程中,顶点坐标是图形管线的一个重要数据源

通常,顶点坐标是由用户直接定义,或者是在顶点着色器源码中定义

将顶点坐标存储在图形处理器(
Graphics Processing Unit

GPU
)的顶点缓冲区中,以在图形管线的顶点着色器阶段将顶点坐标作为输入执行渲染

[0004]对于通过顶点着色器源码生成对应的顶点坐标,顶点坐标是在顶点着色器阶段才生成再存入顶点缓冲区

因此,若有接口(如
vkCmdDraw
函数)在顶点着色器阶段之前需要使用顶点坐标,则会由于无法从顶点缓冲区获取到顶点坐标导致程序运行失败

[0005]
技术实现思路

[0006]本公开提供了一种顶点坐标生成方法

装置

电子设备及计算机存储介质,该方法在顶点着色器阶段之前,将生成的顶点坐标存储至顶点缓冲区以供其他接口使用

[0007]第一方面,本公开提供了一种顶点坐标生成方法,该方法包括:获取目标源码对应的多组序列,目标源码为顶点着色器源码中用于在顶点着色器阶段生成待绘制图形的顶点坐标的源码,每组序列包括输入序列和对应的中间表示
NIR
指令序列,每组序列对应一个顶点坐标;基于多组序列,确定待绘制图形的顶点坐标;将待绘制图形的顶点坐标存储至图形处理器
GPU
的顶点缓冲区,以使在顶点着色器阶段之前,顶点缓冲区有可用的顶点坐标

[0008]第二方面,本公开提供了一种顶点坐标生成装置,该装置包括:获取部分,确定部分和存储部分;获取部分,用于获取目标源码对应的多组序列,目标源码为顶点着色器源码中用于在顶点着色器阶段生成待绘制图形的顶点坐标的源码,每组序列包括输入序列和对应的中间表示
NIR
指令序列,每组序列对应一个顶点坐标;确定部分,用于基于多组序列,确定待绘制图形的顶点坐标;存储部分,用于将待绘制图形的顶点坐标存储至图形处理器
GPU
的顶点缓冲区,以使在顶点着色器阶段之前,顶点缓冲区有可用的顶点坐标

[0009]第三方面,本公开提供了一种电子设备,该电子设备包括处理器

存储器及存储在该存储器上并可在该处理器上运行的程序或指令,该程序或指令被该处理器执行时实现如第一方面所述的顶点坐标生成方法的步骤

[0010]第四方面,本公开提供了一种计算机可读存储介质,该计算机可读存储介质上存储程序或指令,该程序或指令被处理器执行时实现如第一方面所述的顶点坐标生成方法的步骤

[0011]第五方面,本公开提供了一种计算机程序产品,其中,该计算机程序产品包括计算
机程序或指令,当该计算机程序产品在处理器上运行时,使得处理器执行该计算机程序或指令,实现如第一方面所述的顶点坐标生成方法的步骤

[0012]第六方面,本公开提供了一种芯片,该芯片包括处理器和通信接口,该通信接口和该处理器耦合,该处理器用于运行程序或指令,实现如第一方面所述的顶点坐标生成方法

[0013]本公开提供了一种顶点坐标生成方法,包括:获取目标源码对应的多组序列,目标源码为顶点着色器源码中用于在顶点着色器阶段生成待绘制图形的顶点坐标的源码,每组序列包括输入序列和对应的中间表示
NIR
指令序列,每组序列对应一个顶点坐标;基于多组序列,确定待绘制图形的顶点坐标;将待绘制图形的顶点坐标存储至图形处理器
GPU
的顶点缓冲区,以使在顶点着色器阶段之前,顶点缓冲区有可用的顶点坐标

如此,可以在渲染管线创建之后的任一阶段使用顶点缓冲区中的顶点坐标,从而更便于图形渲染,提升图形渲染的效率

[0014]附图说明
[0015]图1为本公开提供的一种应用场景示意图;图2为本公开提供的一种图形管线的结构示意图;图3为本公开提供的顶点坐标生成方法的流程示意图之一;图4为本公开提供的顶点坐标生成方法的流程示意图之二;图5为本公开提供的顶点坐标生成方法的流程示意图之三;图6为本公开提供的顶点坐标生成方法的流程示意图之四;图7为本公开提供的一种顶点坐标生成装置的结构框图;图8为本公开提供的一种电子设备的硬件结构示意图

[0016]具体实施方式
[0017]下面将结合本公开中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例

基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围

[0018]本申请的说明书中的术语“第一”“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序

应该理解这样使用的数据在适当情况下可以互换,以便本公开能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个

此外,说明书中“和
/
或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系

[0019]首先,图1为本公开示出的一种应用场景示意图

如图1所示,当中央处理器(
Central Processing Unit

CPU

101
需要渲染对象时,会将渲染对象依赖的渲染数据(如:着色器参数

纹理数据

顶点数据等)存储至主存
102
中,再通过绑定主存
102
与显存
107
,从而使得显存
107
能够获取到主存
102
中的渲染数据;
CPU 101
通过应用程序
103

Vulkan 104
发送渲染命令,
Vulkan 104
即为上层应用程序
103
与底层
GPU106
的桥梁,显卡驱动
105
用于
将从
Vulkan 104
接收到的渲染命令转化为
GPU 106
可执行的指令,
GPU106
用于从显存
107
中提取渲染数据以执行从显卡驱动
105
接收的指令,
G本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种顶点坐标生成方法,其特征在于,所述方法包括:获取目标源码对应的多组序列,所述目标源码为顶点着色器源码中用于在顶点着色器阶段生成待绘制图形的顶点坐标的源码,每组序列包括输入序列和对应的中间表示
NIR
指令序列,每组序列对应一个顶点坐标;基于所述多组序列,确定所述待绘制图形的顶点坐标;将所述待绘制图形的顶点坐标存储至图形处理器
GPU
的顶点缓冲区,以使在顶点着色器阶段之前,所述顶点缓冲区有可用的顶点坐标
。2.
根据权利要求1所述的方法,其特征在于,所述每组序列包括多个子输入序列和对应的子指令序列,每个子输入序列和对应的子指令序列对应一个顶点的目标坐标,所述目标坐标为横坐标

纵坐标或竖坐标;所述基于所述多组
NIR
指令序列和输入序列,确定所述待绘制图形的顶点坐标,包括:将每个所述子输入序列作为目标输入序列,对应的所述子指令序列作为目标指令序列,执行下述步骤
S1
,直至所述目标指令序列为空,得到一个顶点的目标坐标;步骤
S1
包括:在所述目标指令序列不为空的情况下,对所述目标输入序列中位于前两位的输入,执行所述目标指令序列位于第一位的指令对应的运算,得到运算结果;删除所述目标输入序列中前两位输入,并将所述运算结果添加到删除后的目标输入序列的第一位,得到更新后的目标输入序列;删除所述目标指令序列中第一位的指令,得到更新后的目标指令序列;将所述更新后的目标输入序列作为所述目标输入序列,所述更新后的目标指令序列作为目标指令序列
。3.
根据权利要求1所述的方法,其特征在于,所述将所述待绘制图形的顶点坐标存储至图形处理器
GPU
的顶点缓冲区之后,所述方法还包括:绑定所述顶点缓冲区与
CPU
中的目标缓冲区,以便于在
CPU
中能够通过所述目标缓冲区获取所述顶点缓冲区中的顶点坐标
。4.
根据权利要求1所述的方法,其特征在于,所述获取目标源码对应的多组序列之前,所述方法还包括:检测
CPU
中的目标缓冲区是否为空,所述目标缓冲区对应所述顶点缓冲区;所述获取目标源码对应的多组序列,包括:在所述目标缓冲区为空的情况下,获取目标源码对应的多组序列
。5.
根据权利要求1至4任一项所述的方法,其特征在于,所述
NIR
指令序列中指令对应的运算包括:加,减,乘,除,左移,右移,取余,大于...

【专利技术属性】
技术研发人员:王恒
申请(专利权)人:芯瞳半导体技术山东有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1