本发明涉及嵌入式设备的显示渲染领域,尤其是指一种图形三维旋转和透视方法及系统。
背景技术:
1、三维渲染是计算机图形学领域的重要技术,用于创建逼真的三维图形或动画。它涉及将三维场景的数学表示转化为二维图形,以在屏幕上显示或打印出来。
2、gpu在三维渲染中扮演了至关重要的角色,它们的并行计算能力、图形管线、着色器程序和图形api使其成为实现高性能、逼真和交互式三维渲染的关键组成部分。因此,gpu技术一直在不断演进,以满足越来越高的图形渲染需求。
3、在三维渲染中,三维变换通常是通过矩阵运算来实现的,其中旋转矩阵被用来变换三维物体的方向。三维渲染通常采用4x4矩阵,但要支持4x4矩阵,需要3d gpu的支持,3dgpu一般比较复杂昂贵。对于嵌入式领域,三维渲染需要的计算资源还是很多,往往只能采用2d gpu进行二维渲染。通常二维渲染矩阵是3x3矩阵,但3x3矩阵以及对应的点缺少了z轴方向的数据。
4、需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、为此,本发明所要解决的技术问题在于克服现有技术中三维渲染通常采用4x4矩阵,但要支持4x4矩阵,需要3d gpu的支持,3d gpu一般比较复杂昂贵。对于嵌入式领域,三维渲染需要的计算资源还是很多,往往只能采用2d gpu进行二维渲染。通常二维渲染矩阵是3x3矩阵,但3x3矩阵以及对应的点缺少了z轴方向的数据。
2、为解决上述技术问题,本发明的第一方面提供了一种图形三维旋转和透视方法,所述方法包括:
3、获取二维图形;
4、对所述二维图形进行旋转,生成旋转矩阵、平面旋转角度和三维旋转角度;
5、根据所述三维旋转角度生成错切-透视矩阵;
6、根据所述三维旋转角度生成缩放矩阵;
7、根据所述平面旋转角度生成逆旋转矩阵;
8、根据所述旋转矩阵、所述错切-透视矩阵、所述缩放矩阵和所述逆旋转矩阵生成旋转透视矩阵;
9、gpu根据所述旋转透视矩阵绘制每个点,以生成目标三维图形。
10、在本发明的一个实施例中,对所述二维图形进行旋转,生成旋转矩阵、平面旋转角度和三维旋转角度:
11、将所述二维图形绕y轴向z轴旋转,生成第一夹角;
12、将所述二维图形绕x轴向z轴旋转,生成第二夹角;
13、根据所述第一夹角和所述第二夹角生成所述平面旋转角度和所述三维旋转角度;
14、根据平面旋转角度生成所述旋转矩阵。
15、在本发明的一个实施例中,根据所述三维旋转角度生成缩放矩阵的步骤包括:
16、根据所述三维旋转角度计算缩放量;
17、根据所述缩放量和所述三维旋转角度生成缩放矩阵。
18、在本发明的一个实施例中,所述缩放矩阵的计算公式如下:
19、
20、其中,abs(cosθ)为缩放量。
21、在本发明的一个实施例中,根据所述平面旋转角度生成逆旋转矩阵的步骤包括:
22、根据所述平面旋转角度生成逆平面旋转角度;
23、根据逆平面旋转角度生成逆旋转矩阵。
24、在本发明的一个实施例中,所述平面旋转角度的计算公式如下:
25、a=arctan(yrad/xrad)
26、其中,yrad为第一夹角,xrad为第二夹角。
27、在本发明的一个实施例中,所述错切-透视矩阵的计算公式如下:
28、
29、其中,θ为三维旋转角度。
30、本发明的第二方面提供了一种图形三维旋转和透视系统,应用于上述第一方面中任意一项提出的一种方法,所述系统包括:旋转模块、错切透视模块、逆向缩放模块、逆旋转模块和旋转透视模块;
31、所述旋转模块被配置为:获取二维图形;对所述二维图形进行旋转,生成旋转矩阵、平面旋转角度和三维旋转角度;
32、所述错切透视模块被配置为:根据所述三维旋转角度生成错切-透视矩阵;
33、所述逆向缩放模块被配置为:根据所述三维旋转角度生成缩放矩阵;
34、所述逆旋转模块被配置为:根据所述平面旋转角度生成逆旋转矩阵
35、所述旋转透视模块被配置为:根据所述旋转矩阵、所述错切-透视矩阵、所述缩放矩阵和所述逆旋转矩阵生成旋转透视矩阵;gpu根据所述旋转透视矩阵绘制每个点,以生成目标三维图形。
36、本发明的第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面或第一方面中任一种可能的实施方式中所述的方法。
37、本发明的第四方面提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第一方面中任一种可能的实施方式中所述的方法。
38、本发明的上述技术方案相比现有技术具有以下优点:
39、本发明所述的一种图形三维旋转和透视方法及系统,通过错切-透视矩阵对旋转后的二维图形进行错切和透视,再对其进行逆向缩放和逆旋转,以达到实现低成本gpu渲染的目的,且更高效。
1.一种图形三维旋转和透视方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种图形三维旋转和透视方法,其特征在于,对所述二维图形进行旋转,生成旋转矩阵、平面旋转角度和三维旋转角度的步骤包括:
3.根据权利要求1所述的一种图形三维旋转和透视方法,其特征在于,根据所述三维旋转角度生成缩放矩阵的步骤包括:
4.根据权利要求1所述的一种图形三维旋转和透视方法,其特征在于,所述缩放矩阵的计算公式如下:
5.根据权利要求1所述的一种图形三维旋转和透视方法,其特征在于,根据所述平面旋转角度生成逆旋转矩阵的步骤包括:
6.根据权利要求2所述的一种图形三维旋转和透视方法,其特征在于,所述平面旋转角度的计算公式如下:
7.根据权利要求1所述的一种图形三维旋转和透视的方法,其特征在于,所述错切-透视矩阵的计算公式如下:
8.一种图形三维旋转和透视系统,其特征在于,应用于上述权利要求1至7任一项所述的一种图形三维旋转和透视方法,所述系统包括:旋转模块、错切透视模块、逆向缩放模块、逆旋转模块和旋转透视模块;
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述一种图形三维旋转和透视方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述一种图形三维旋转和透视方法的步骤。