模型渲染方法、装置、计算机设备及计算机可读存储介质与流程

文档序号:33631899发布日期:2023-03-28 23:15阅读:27来源:国知局
模型渲染方法、装置、计算机设备及计算机可读存储介质与流程

1.本技术涉及游戏技术领域,具体涉及一种模型渲染方法、装置、计算机设备及计算机可读存储介质。


背景技术:

2.在游戏领域中,游戏场景所需特效一般会使用特效片而非实体模型制作。例如,利用特效片使某个贴图能够悬浮在物体前方,但在贴图转动过程中,其总是会与物品产生遮挡和穿插,进而影响画面效果。
3.对此,billboard公告板作为一种特效优化技术,已广泛应用于3d游戏中用于控制贴图方向,使其始终以一定角度对着镜头,避免遮挡和穿插。然而,即便使用billboard公告板对贴图面片做坐标变换,以使贴图面片的正面法线方向始终朝着摄像机镜头,在美术上也会表现出错误效果,即贴图面片未紧贴后面的物体模型。
4.因此,现有的特效制作方法存在着因制作方式不合理,导致特效画面效果不佳的技术问题。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种模型渲染方法、装置、计算机设备及计算机可读存储介质,用以提升游戏画面的特效质量。
6.第一方面,本技术提供一种模型渲染方法,包括:
7.获取目标模型按预设速度旋转变化时的转动坐标信息;
8.基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图;
9.基于目标纹理贴图,以渲染显示目标模型。
10.第二方面,本技术提供一种模型渲染装置,包括:
11.坐标获取模块,用于获取目标模型按预设速度旋转变化时的转动坐标信息;
12.纹理采样模块,用于基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图;
13.模型渲染模块,用于基于目标纹理贴图,以渲染显示目标模型。模型渲染模块。
14.第三方面,本技术还提供一种计算机设备,包括:
15.一个或多个处理器;
16.存储器;以及一个或多个应用程序,其中的一个或多个应用程序被存储于存储器中,并配置为由处理器执行以实现上述的模型渲染方法。
17.第四方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行上述模型渲染方法中的步骤。
18.第五方面,本技术实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机
设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面提供的方法。
19.上述模型渲染方法、装置、计算机设备及计算机可读存储介质,通过获取目标模型按预设速度旋转变化时的转动坐标信息,即可基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图,最后基于目标纹理贴图,渲染显示目标模型,实现对目标模型的转动效果渲染。由此,通过顶点着色器来分析获取模型渲染所需数据,以取代对传统特效片的低质采用,避免了可能出现的穿插问题,提升了游戏画面的特效质量,即有效提高了动画效果。
附图说明
20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例中模型渲染方法的应用场景图;
22.图2是本技术实施例中模型渲染方法的流程示意图;
23.图3是本技术实施例中模型渲染方法的应用场景界面示意图;
24.图4是本技术实施例中模型渲染方法的尺寸变化示意图;
25.图5是本技术实施例中模型渲染装置的结构示意图;
26.图6是本技术实施例中计算机设备的结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.在本技术的描述中,术语“例如”一词用来表示“用作例子、例证或说明”。本技术中被描述为“例如”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本发明,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本发明。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本发明的描述变得晦涩。因此,本发明并非旨在限于所示的实施例,而是与符合本技术所公开的原理和特征的最广范围相一致。
29.在本技术一些实施例中,本技术实施例提供的模型渲染方法可以运行于服务器,服务器中预置有gpu(graphic processing unit,图形处理器)渲染管线;所谓渲染管线,就是cpu(central processing unit,中央处理器)传送给gpu一堆数据(顶点、纹理等),经过一系列处理,最后渲染得出来一副二维或三维图像。其中,gpu渲染管线在可编程阶段一般分为顶点着色器和片元着色器;顶点着色器可以对每个顶点进行诸如变换和变形在内的很多操作,提供了修改/创建/忽略顶点相关属性的功能,这些顶点属性包括颜色、法线、纹理
坐标和位置;片元着色器的主要作用是进行像素的处理,让复杂的着色方程在每一个像素上执行;本技术实施例提供的模型渲染方法可通过顶点着色器和片元着色器实现,具体将在下文详细说明。
30.参阅图1,该模型渲染方法可基于云交互系统来实现与执行,其中,云交互系统包括终端设备102和服务器104。终端设备102可以是既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备。终端设备102具体可以是台式终端或移动终端,终端设备102具体还可以是手机、平板电脑、笔记本电脑中的一种。服务器104可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,其包括但不限于计算机、网络主机、单个网络服务器、边缘服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(cloud computing)的大量计算机或网络服务器构成。此外,终端设备102与服务器104之间通过网络建立通信连接,网络具体可以是广域网、局域网、城域网中的任意一种。
31.在本技术一些实施例中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,模型渲染方法的储存与运行是在云游戏服务器上完成的,终端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,终端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作终端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回终端设备,最后,通过终端设备进行解码并输出游戏画面。
32.在本技术一些实施例中,终端设备可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
33.游戏场景(或称为虚拟场景)是应用程序在终端或服务器上运行时显示(或提供)的虚拟场景。可选地,该虚拟场景是对真实世界的仿真环境,或者是半仿真半虚构的虚拟环境,或者是纯虚构的虚拟环境。虚拟场景是二维虚拟场景和三维虚拟场景中的任意一种,虚拟环境可以为天空、陆地、海洋等,其中,该陆地包括沙漠、城市等环境元素。其中,虚拟场景为用户控制等虚拟对象完整游戏逻辑的场景,例如,对于沙盒类3d射击游戏中,虚拟场景为用于供玩家控制虚拟对象进行对战的3d游戏世界,实例性的虚拟场景可以包括:山川、平地、河流、湖泊、海洋、沙漠、天空、植物、建筑、车辆中的至少一种元素;例如,对于2d卡牌类游戏中,虚拟场景为供展示释放卡牌或是展示卡牌对应的虚拟对象的场景,实例性的虚拟场景可以包括:擂台场、决战场、或是其他可以显示卡牌对战状态的“场”元素或是其他元素;对于2d或是3d的多人在线战术竞技游戏,虚拟场景为供虚拟对象进行对战的2d或3d地形场景,实例性的虚拟场景可以包括:峡谷风格的山脉、线路、河流、教室、桌椅、讲台等元
素。
34.游戏界面是指通过图形用户界面提供或显示的应用程序对应的界面,该界面中包括供玩家进行交互的ui界面和游戏画面。在可选的实施方式中,该ui界面中可以包括游戏控件(如,技能控件、移动控件、功能控件等)、指示标识(如,方向指示标识、角色指示标识等)、信息展示区(如,比赛时间等),或是游戏设置控件(如,系统设置、商店、金币等)。在可选的实施方式中,游戏画面为终端设备显示虚拟场景所对应的显示画面,游戏画面中可以包括在虚拟场景中进行执行游戏逻辑的游戏角色、npc角色、ai角色等虚拟对象。
35.需要说明的是,本技术实施例描述的游戏场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着异常新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
36.参阅图2,本技术实施例提供了一种模型渲染方法,下述实施例将以该方法应用于上述图1中的服务器104来举例说明,该方法包括步骤s201至s203,具体如下:
37.s201,获取目标模型按预设速度旋转变化时的转动坐标信息。
38.其中,目标模型可以是任何材质、形状的三维或二维模型,例如,可参阅图3,图3中示出的目标模型为太阳形状的模型。
39.其中,转动坐标信息包括公转坐标信息和/或自转坐标信息,公转坐标信息和自转坐标信息的获取步骤将在下文详细说明。
40.具体实现中,公转坐标信息和自转坐标信息应为由“uv.xy”影响的因变量,两者便可表示为“sun_uv”,又或者公转坐标信息表示为“sun_uv1"”,自转坐标信息表示为“sun_uv2"”。顶点着色器针对公转坐标信息和自转坐标信息的计算方式,将在下文分别进行详细说明。
41.在一个实施例中,预设速度包括预设公转速度和预设自转速度,本步骤s202包括:获取目标模型的初始坐标信息;基于预设的偏移数值,对初始坐标信息进行中心偏移处理,得到中心偏移坐标;其中,中心偏移坐标包括偏移横坐标和偏移纵坐标;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设公转速度旋转变化的坐标,得到目标模型的公转坐标信息,作为转动坐标信息;和/或基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设自转速度旋转变化的坐标,得到目标模型的自转坐标信息,作为转动坐标信息。
42.其中,预设公转速度可表示为“roundrotate”,预设公转速度的取值范围可以是大于“0”的任何值,即整个浮点类型大于“0”的值域[0,+3.4*10^38],预设公转速度的值越大意味着目标模型在公转时转的越快。
[0043]
其中,预设自转速度可表示为“selfrotate”,预设自转速度的取值范围为浮点类型任何值。当然,在实际使用时为了使用方便限制取值在[-3,3],负值为逆时针旋转,正值为顺时针旋转,预设自转速度的绝对值越大意味着目标模型在自转时转的越快。
[0044]
其中,偏移数值可预设为“float2(0.5,0.5)”。
[0045]
其中,矩阵是描述线性变换的一种数学工具,线性变换指的是使用一次函数从一个空间变换到另外一个空间。在二维空间中,旋转可以用一个单一的角“θ”定义。作为约定,正角表示顺时针旋转,负角表示逆时针旋转。把笛卡尔坐标的列向量关于原点逆时针旋转的矩阵是:
[0046][0047]
具体实现中,由于使用billboard公告板已无法满足部分游戏场景所需的模型变化画面效果,因此本技术提出用顶点着色器进行相应顶点计算,并利用片元着色器进行纹理采样渲染,以提升画面效果质量。具体而言,针对于目标模型的动画渲染效果可基于游戏场景需求而设,例如,在如图3所示的游戏场景中,针对于太阳模型的动画渲染效果可以是:太阳模型需同时体现出可公转和自转的动画效果,且不遮挡周围模型,也不会出现侧面的面片问题。当然,针对该目标模型的动画渲染效果还可以是单独的公转动画效果,或是单独的自转动画效果,但本技术实施例将以公转和自转叠加的效果进行详细说明,而独立的公转动画效果或自转动画效果均可从下文所述公转自转叠加效果的实现方案中提取得到。
[0048]
进一步地,无论需实现单独的公转动画效果还是自转动画效果,抑或是公转自转叠加效果,首先需获取目标模型的初始坐标信息。其中,本技术实施例涉及的坐标,均指纹理坐标系中的uv坐标,纹理坐标系的原点在左下角,向右为u(x)轴正方向,向上为v(y)轴正方向,总长度是1,即纹理图片的四个角的坐标分别是:(0,0)、(1,0)、(0,1)、(1,1),分别对应左下、右下、左上、右上四个顶点。初始坐标信息即为目标模型开始旋转(公转和/或自转)前的静置坐标,如原点(0,0)。
[0049]
更进一步地,目标模型的初始坐标信息可表示为“uv.xy”,即服务器104的顶点着色器可先读取到目标模型分别在u轴和v轴上的数值,然后定义为“uv.xy”,以便于后续利用该自变量定义进行顶点计算。
[0050]
更进一步地,当旋转矩阵与纹理坐标相乘,可得到:
[0051][0052]
分析上述公式可得:u

=ucosθ-usinθ,v

=vsinθ+vcosθ。由于目标模型的初始坐标信息在纹理坐标原点(0,0)上,而(0.5,0.5)位于纹理坐标系中心,因此在顶点着色器计算目标模型的公转坐标信息和自转坐标信息之前,均需对其初始坐标信息进行偏移处理,若否,就会以原点(0,0)作为旋转中心,进而造成效果出错。其中,若公转坐标信息表示为“sun_uv1"”,自转坐标信息表示为“sun_uv2"”,则公式“sun_uv1=uv.xy-float2(0.5,0.5)”即表示对初始坐标信息进行了中心偏移处理,得到获取公转坐标信息所需的中心偏移坐标“sun_uv1”;公式“sun_uv2=uv.xy-float2(0.5,0.5)”即表示对初始坐标信息进行了中心偏移处理,得到获取自转坐标信息所需的中心偏移坐标“sun_uv2”。此时,可理解的是,“sun_uv1”与“sun_uv2”相等。
[0053]
再进一步地,服务器104中的顶点服务器对初始坐标信息进行中心偏移处理,得到中心偏移坐标之后,顶点服务器可利用旋转矩阵分析中心偏移坐标,即分析中心偏移坐标的偏移横坐标“sun_uv1.x”和偏移纵坐标“sun_uv1.y”,以获取公转坐标信息“sun_uv1"”;同时,还可分析中心偏移坐标的偏移横坐标“sun_uv2.x”和偏移纵坐标“sun_uv2.y”,以获取自转坐标信息“sun_uv2"”,具体将在下文分别详细说明。
[0054]
在一个实施例中,基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设公转速度旋转变化的坐标,得到目标模型的公转坐标信息,作为转动坐标信息,包括:获取模型显示时刻,以计算模型显示时刻与预设公转速度之积,得到模型公转角度;基于预设的旋
转矩阵,获取偏移横坐标和偏移纵坐标按模型公转角度旋转变化的坐标,得到初始公转坐标;根据初始公转坐标,获取目标模型随尺寸变化的坐标,得到公转坐标信息,作为转动坐标信息。
[0055]
其中,模型显示时刻可表示为“frametime”,其可以是服务器104所属计算机设备的实时时间,也可以是预先设定的绝对时刻,又或者是其他设备如终端102的某个时刻,例如,“frametime”为“2022年1月1日零时零分”。
[0056]
其中,初始公转坐标可表示为“sun_uv1'”。
[0057]
具体实现中,服务器104中的顶点着色器要获取公转坐标信息“sun_uv1"”,首先需获取中心偏移坐标“sun_uv1”,以便进一步提取到对应的偏移横坐标“sun_uv1.x”和偏移纵坐标“sun_uv1.y”。然后,获取模型显示时刻“frametime”,以利用“frametime”和预设公转速度“roundrotate”之积“roundrotate*frametime”,确定模型公转角度“θ”,即“θ=roundrotate*frametime”,进而利用旋转矩阵计算获取初始公转坐标“sun_uv1'”,计算公式如下:
[0058]
sun_uv1'=float2(sun_uv1.x*cos(θ)-sun_uv1.y*sin(θ),sun_uv1.x*sin(θ)+sun_uv1.y*cos(θ))
[0059]
进一步地,顶点着色器分析得到初始公转坐标“sun_uv1'”之后,可对初始公转坐标“sun_uv1'”进行后续处理,以获取目标模型随尺寸变化的公转坐标信息“sun_uv1"”,具体将在下文详细说明。
[0060]
在一个实施例中,根据初始公转坐标,获取目标模型随尺寸变化的坐标,得到公转坐标信息,作为转动坐标信息,包括:获取目标模型的初始尺寸信息;根据初始尺寸信息,获取目标模型随尺寸变化的缩放值和偏移值;根据缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0061]
其中,目标模型的初始尺寸信息可表示为“sunsize”,缩放值可表示为“sun_position_tilling”,偏移值可表示为“sun_position_offest”。
[0062]
具体实现中,服务器104中的顶点着色器为进一步获取随尺寸变化的公转坐标信息“sun_uv1"”,需先获取与模型尺寸变化关联的缩放值和偏移值,而缩放值和偏移值与目标模型的初始尺寸信息有直接性关联。因此,顶点着色器可先获取目标模型的初始尺寸信息“sunsize”,然后基于预设的分析策略,分析出缩放值“sun_position_tilling”和偏移值“sun_position_offest”,以利用缩放值和偏移值计算得到公转坐标信息“sun_uv1"”,具体实施步骤将在下文分别进行详细说明。
[0063]
在一个实施例中,根据初始尺寸信息,获取目标模型随尺寸变化的缩放值和偏移值,包括:获取目标模型的初始尺寸信息,并获取模型显示时刻;根据预设的消失速度信息、初始尺寸信息以及模型显示时刻,计算出目标模型随时间变化的目标尺寸信息;根据目标尺寸信息,获取缩放值和偏移值。
[0064]
其中,消失速度信息可表示为“fadespeed”,取值范围是“[0.001,5]”,默认可取“0.1”。
[0065]
其中,目标尺寸信息可表示为“sun_size”。
[0066]
具体实现中,服务器104中的顶点服务器在获取缩放值与偏移值之前,首先需获取目标模型的目标尺寸信息“sun_size”,目标尺寸信息“sun_size”的获取方式可参考下述公
式:
[0067]
sun_size=clamp(sunsize

fadespeed*fmod(frametime,(sunsize/fadespeed)),0.0,sunsize)
[0068]
其中,clamp(x,a,b)的意思是将“x”限制在“a”和“b”之间,当“x<a”时,“x=a”;当“a<x<b”时,“x=x”;当“x>b”时,“x=b”。由此,上述公式中即是将目标模型的尺寸限制在“0.0”与初始尺寸信息“sunsize”之间,防止计算出错导致出现负数,所以目标模型的值域就是“[0,sunsize]”,而大小变化是由于取模运算“fmod”造成的,其大小周期变换如图4所示,消失速度信息“fadespeed”体现在函数的斜率上,用于控制函数周期。
[0069]
进一步地,在上述公式中,由于初始尺寸信息“sunsize”、消失速度信息“fadespeed”、模型显示时刻“frametime”均为已知信息,“fmod(frametime,(sunsize/fadespeed))”等同于frametime-floor(frametime/(sunsize/fadespeed))*(sunsize/fadespeed),floor为向下取整计算。例如,fmod(5,3)=2。因此,目标尺寸信息“sun_size”可有效分析得到。
[0070]
更进一步地,顶点着色器在分析得到目标尺寸信息“sun_size”之后,缩放值“sun_position_tilling”和偏移值“sun_position_offest”可通过如下公式计算得到:
[0071]
sun_position_tilling=1/sun_size
[0072]
sun_position_offest=(1/sun_size-1)*(-0.5)
[0073]
需要说明的是,本实施例的实施目的是为获取一个随时间变化以及循环的模型尺寸数值,进而实现目标模型从大变小、消失、再从大变小的动画效果。
[0074]
在一个实施例中,根据缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息,包括:基于偏移数值,对初始公转坐标进行偏移复位处理,得到第一偏移复位坐标;根据第一偏移复位坐标、缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0075]
其中,偏移数值可预设为“float2(0.5,0.5)”,公转半径信息可表示为“roundradius”。
[0076]
具体实现中,服务器104中的顶点着色器在分析获取公转坐标信息之前,首先需对初始公转坐标进行偏移复位处理,因为在前序步骤中为进行准确分析而实施了坐标偏移,但实际上想要的美术效果并不是进行了偏移之后的效果,只是因为数学计算需要这么做,因此本实施例中需要进行偏移恢复:sun_uv1'+=float2(0.5,0.5),即sun_uv1'=sun_uv1'+float2(0.5,0.5)。可以理解的是,此时第一偏移复位坐标的变量表示同初始公转坐标一致。
[0077]
进一步地,顶点着色器分析得到第一偏移复位坐标之后,可基于如下公式,计算出目标模型随尺寸变化的公转坐标信息“sun_uv1"”:
[0078]
sun_uv1"=(sun_uv1'+float2(roundradius))*sun_position_tilling+sun_position_offest
[0079]
在一个实施例中,基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设自转速度旋转变化的坐标,得到目标模型的自转坐标信息,作为转动坐标信息,包括:获取模型显示时刻,以计算模型显示时刻与预设自转速度之积,得到模型自转角度;基于预设的旋
转矩阵,获取偏移横坐标和偏移纵坐标按模型自转角度旋转变化的坐标,得到自转坐标信息,作为转动坐标信息。
[0080]
其中,模型显示时刻可表示为“frametime”,预设自转速度可表示为“selfrotate”,模型自转角度可表示为“δ”。
[0081]
具体实现中,服务器104中的顶点着色器要获取自传坐标信息“sun_uv2"”,首先需获取中心偏移坐标“sun_uv2”,以便进一步提取到对应的偏移横坐标“sun_uv2.x”和偏移纵坐标“sun_uv2.y”。然后,获取模型显示时刻“frametime”,以利用“frametime”和预设自传速度“selfrotate”之积“selfrotate*frametime”,确定模型自转角度“δ”,即“δ=selfrotate*frametime”,进而利用旋转矩阵计算获取自转坐标信息“sun_uv2"”,计算公式如下:
[0082]
sun_uv2"=float2(sun_uv2.x*cos(δ)-sun_uv2.y*sin(δ),sun_uv2.x*sin(δ)+sun_uv2.y*cos(δ))
[0083]
在一个实施例中,在基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按模型自转角度旋转变化的坐标,得到自转坐标信息,作为转动坐标信息之后,还包括:基于偏移数值,对自转坐标信息进行偏移复位处理,得到第二偏移复位坐标。
[0084]
其中,偏移数值仍可被预设为“float2(0.5,0.5)”。
[0085]
具体实现中,同上述实施例说明的偏移恢复原理,上一实施例基于坐标偏移处理分析得到自传坐标信息之后,仍需对坐标进行偏移复位处理,即可采用如下公式恢复目标模型的纹理坐标位置:
[0086]
sun_uv2"+=float2(0.5,0.5),即sun_uv2"=sun_uv2"+float2(0.5,0.5)
[0087]
s202,基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图。
[0088]
具体实现中,服务器104中的顶点着色器根据初始坐标信息,分析得到目标模型的公转坐标信息和/或自转坐标信息之后,即可将上述信息传输至片元着色器,以使片元着色器利用转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,即使用纹理坐标检索纹理颜色,以便渲染出可于终端设备102上显示带有公转和/或自传效果的目标模型。
[0089]
此外,为避免上述多个步骤因数值计算导致负值或超过1,进而影响模型渲染效果,本技术实施例提出将上述实施例涉及的坐标均通过函数限制在一个安全范围,即通过设置如下公式添加至顶点着色器的执行程序中,防止超出纹理坐标范围:sun_uv_round=clamp(sun_uv,0,1),即将所有纹理坐标限制在“[0,1]”之间,“sun_uv_round”即可表示为后续模型渲染所需的任何纹理坐标。
[0090]
s203,基于目标纹理贴图,以渲染显示目标模型。
[0091]
具体实现中,服务器104中的顶点着色器获取到转动坐标信息,并基于转动坐标信息采样目标模型的预设纹理贴图,得到采样后的目标纹理贴图,即可使片元着色器渲染出目标模型的公转效果,和/或自传效果,甚至于尺寸变化效果之后,又或者是目标模型的闪烁效果。
[0092]
在一个实施例中,本步骤包括:获取闪烁时刻信息;获取目标纹理贴图与闪烁时刻信息之积,得到纹理闪烁时刻;基于转动坐标信息、目标纹理贴图以及纹理闪烁时刻,以渲
染显示目标模型;其中,转动坐标信息包括公转坐标信息和/或自转坐标信息。
[0093]
具体实现中,片元着色器用于对目标模型进行纹理采样,以获取模型纹理信息进行模型渲染,而模型渲染的前提条件是获取公转坐标信息和/或自传坐标信息等数据,因此片元着色器可通过片元缓冲结构体(一般定义为v2f结构体)获取到上述数据,表示为“input.sun_uv_round”,进而对目标模型进行纹理采样:
[0094]
sun_color=sample_texture(tex0,input.sun_uv_round)
[0095]
其中,“tex0”表示为目标模型的贴图,如图3所示的太阳贴图,基于上述分析,片元着色器即可得到目标纹理贴图“sun_color”,进而获取目标纹理贴图与闪烁时刻信息之积:“sun_color*sun_light_twink”,得到纹理闪烁时刻,即可实现在终端设备102上显示出目标模型在自转的同时公转,且慢慢变小直至消失,且转的时候有亮光闪烁的效果。
[0096]
在一个实施例中,获取闪烁时刻信息,包括:获取模型显示时刻;通过预设的闪烁周期函数,分析预设的闪烁速度信息、贴图亮度信息以及模型显示时刻,得到闪烁时刻信息。
[0097]
其中,闪烁速度信息可表示为“sunblink”,贴图亮度信息可表示为“sunlight”。
[0098]
具体实现中,服务器104中的顶点着色器分别分析得到目标模型的公转坐标信息和/或自传坐标信息,可使片元着色器渲染出目标模型的公转效果和/或自传效果,甚至于尺寸变化效果之后,还可分析出目标模型的闪烁时刻信息,以便渲染出目标模型的闪烁效果。
[0099]
具体而言,顶点着色器可按如下公式计算出闪烁时刻信息“sun_light_twink”:
[0100]
sun_light_twink=(sin(frametime/sunblink)+1)*sunlight
[0101]
上述实施例中,服务器通过获取目标模型按预设速度旋转变化时的转动坐标信息,即可基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图,最后基于目标纹理贴图,渲染显示目标模型,实现了对目标模型的转动效果渲染。由此,通过顶点着色器来分析获取模型渲染所需数据,以取代对传统特效片的低质采用,避免了可能出现的穿插问题,提升了游戏画面的特效质量,即有效提高了动画效果。
[0102]
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0103]
为了更好实施本技术实施例提供的模型渲染方法,在本技术实施例所提出的模型渲染方法的基础之上,本技术实施例中还提供了一种模型渲染装置,如图5所示,该模型渲染装置500包括:
[0104]
坐标获取模块510,用于获取目标模型按预设速度旋转变化时的转动坐标信息;
[0105]
纹理采样模块520,用于基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图;
[0106]
模型渲染模块530,用于基于目标纹理贴图,以渲染显示目标模型。模型渲染模块。
[0107]
在一个实施例中,预设速度包括预设公转速度和/或预设自转速度,坐标获取模块510还用于获取目标模型的初始坐标信息;基于预设的偏移数值,对初始坐标信息进行中心偏移处理,得到中心偏移坐标;其中,中心偏移坐标包括偏移横坐标和偏移纵坐标;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设公转速度旋转变化的坐标,得到目标模型的公转坐标信息,作为转动坐标信息;和/或基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设自转速度旋转变化的坐标,得到目标模型的自转坐标信息,作为转动坐标信息。
[0108]
在一个实施例中,坐标获取模块510还用于获取模型显示时刻,以计算模型显示时刻与预设公转速度之积,得到模型公转角度;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按模型公转角度旋转变化的坐标,得到初始公转坐标;根据初始公转坐标,获取目标模型随尺寸变化的坐标,得到公转坐标信息,作为转动坐标信息。
[0109]
在一个实施例中,坐标获取模块510还用于获取目标模型的初始尺寸信息;根据初始尺寸信息,获取目标模型随尺寸变化的缩放值和偏移值;根据缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0110]
在一个实施例中,坐标获取模块510还用于获取目标模型的初始尺寸信息,并获取模型显示时刻;根据预设的消失速度信息、初始尺寸信息以及模型显示时刻,计算出目标模型随时间变化的目标尺寸信息;根据目标尺寸信息,获取缩放值和偏移值。
[0111]
在一个实施例中,坐标获取模块510还用于基于偏移数值,对初始公转坐标进行偏移复位处理,得到第一偏移复位坐标;根据第一偏移复位坐标、缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0112]
在一个实施例中,坐标获取模块510还用于获取模型显示时刻,以计算模型显示时刻与预设自转速度之积,得到模型自转角度;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按模型自转角度旋转变化的坐标,得到自转坐标信息,作为转动坐标信息。
[0113]
在一个实施例中,坐标获取模块510还用于基于偏移数值,对自转坐标信息进行偏移复位处理,得到第二偏移复位坐标。
[0114]
在一个实施例中,模型渲染模块530还用于获取闪烁时刻信息;获取目标纹理贴图与闪烁时刻信息之积,得到纹理闪烁时刻;基于转动坐标信息、目标纹理贴图以及纹理闪烁时刻,以渲染显示目标模型;其中,转动坐标信息包括公转坐标信息和/或自转坐标信息。
[0115]
在一个实施例中,模型渲染模块530还用于获取模型显示时刻;通过预设的闪烁周期函数,分析预设的闪烁速度信息、贴图亮度信息以及模型显示时刻,得到闪烁时刻信息。
[0116]
上述实施例中,通过顶点着色器来分析获取模型渲染所需数据,以取代对传统特效片的低质采用,避免了可能出现的穿插问题,提升了游戏画面的特效质量,即有效提高了动画效果。
[0117]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该
内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储纹理坐标数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种模型渲染方法。
[0118]
本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0119]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0120]
获取目标模型按预设速度旋转变化时的转动坐标信息;
[0121]
基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图;
[0122]
基于目标纹理贴图,以渲染显示目标模型。
[0123]
在一个实施例中,预设速度包括预设公转速度和预设自转速度,处理器执行计算机程序时还实现以下步骤:
[0124]
获取目标模型的初始坐标信息;基于预设的偏移数值,对初始坐标信息进行中心偏移处理,得到中心偏移坐标;其中,中心偏移坐标包括偏移横坐标和偏移纵坐标;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设公转速度旋转变化的坐标,得到目标模型的公转坐标信息,作为转动坐标信息;和/或基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设自转速度旋转变化的坐标,得到目标模型的自转坐标信息,作为转动坐标信息。
[0125]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0126]
获取模型显示时刻,以计算模型显示时刻与预设公转速度之积,得到模型公转角度;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按模型公转角度旋转变化的坐标,得到初始公转坐标;根据初始公转坐标,获取目标模型随尺寸变化的坐标,得到公转坐标信息,作为转动坐标信息。
[0127]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0128]
获取目标模型的初始尺寸信息;根据初始尺寸信息,获取目标模型随尺寸变化的缩放值和偏移值;根据缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0129]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0130]
获取目标模型的初始尺寸信息,并获取模型显示时刻;根据预设的消失速度信息、初始尺寸信息以及模型显示时刻,计算出目标模型随时间变化的目标尺寸信息;根据目标尺寸信息,获取缩放值和偏移值。
[0131]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0132]
基于偏移数值,对初始公转坐标进行偏移复位处理,得到第一偏移复位坐标;根据第一偏移复位坐标、缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0133]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0134]
获取模型显示时刻,以计算模型显示时刻与预设自转速度之积,得到模型自转角
度;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按模型自转角度旋转变化的坐标,得到自转坐标信息,作为转动坐标信息。
[0135]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0136]
基于偏移数值,对自转坐标信息进行偏移复位处理,得到第二偏移复位坐标。
[0137]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0138]
获取闪烁时刻信息;获取目标纹理贴图与闪烁时刻信息之积,得到纹理闪烁时刻;基于转动坐标信息、目标纹理贴图以及纹理闪烁时刻,以渲染显示目标模型;其中,转动坐标信息包括公转坐标信息和/或自转坐标信息。
[0139]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0140]
获取模型显示时刻;通过预设的闪烁周期函数,分析预设的闪烁速度信息、贴图亮度信息以及模型显示时刻,得到闪烁时刻信息。
[0141]
上述实施例中,通过顶点着色器来分析获取模型渲染所需数据,以取代对传统特效片的低质采用,避免了可能出现的穿插问题,提升了游戏画面的特效质量,即有效提高了动画效果。
[0142]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0143]
获取目标模型按预设速度旋转变化时的转动坐标信息;
[0144]
基于转动坐标信息以及目标模型的预设纹理贴图,对预设纹理贴图进行纹理采样,得到采样后的目标纹理贴图;
[0145]
基于目标纹理贴图,以渲染显示目标模型。
[0146]
在一个实施例中,预设速度包括预设公转速度和预设自转速度,计算机程序被处理器执行时还实现以下步骤:
[0147]
获取目标模型的初始坐标信息;基于预设的偏移数值,对初始坐标信息进行中心偏移处理,得到中心偏移坐标;其中,中心偏移坐标包括偏移横坐标和偏移纵坐标;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设公转速度旋转变化的坐标,得到目标模型的公转坐标信息,作为转动坐标信息;和/或基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按预设自转速度旋转变化的坐标,得到目标模型的自转坐标信息,作为转动坐标信息。
[0148]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0149]
获取模型显示时刻,以计算模型显示时刻与预设公转速度之积,得到模型公转角度;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按模型公转角度旋转变化的坐标,得到初始公转坐标;根据初始公转坐标,获取目标模型随尺寸变化的坐标,得到公转坐标信息,作为转动坐标信息。
[0150]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0151]
获取目标模型的初始尺寸信息;根据初始尺寸信息,获取目标模型随尺寸变化的缩放值和偏移值;根据缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0152]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0153]
获取目标模型的初始尺寸信息,并获取模型显示时刻;根据预设的消失速度信息、
初始尺寸信息以及模型显示时刻,计算出目标模型随时间变化的目标尺寸信息;根据目标尺寸信息,获取缩放值和偏移值。
[0154]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0155]
基于偏移数值,对初始公转坐标进行偏移复位处理,得到第一偏移复位坐标;根据第一偏移复位坐标、缩放值、偏移值以及预设的公转半径信息,解析初始公转坐标,得到目标模型随尺寸变化的公转坐标信息,作为转动坐标信息。
[0156]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0157]
获取模型显示时刻,以计算模型显示时刻与预设自转速度之积,得到模型自转角度;基于预设的旋转矩阵,获取偏移横坐标和偏移纵坐标按模型自转角度旋转变化的坐标,得到自转坐标信息,作为转动坐标信息。
[0158]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0159]
基于偏移数值,对自转坐标信息进行偏移复位处理,得到第二偏移复位坐标。
[0160]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0161]
获取闪烁时刻信息;获取目标纹理贴图与闪烁时刻信息之积,得到纹理闪烁时刻;基于转动坐标信息、目标纹理贴图以及纹理闪烁时刻,以渲染显示目标模型;其中,转动坐标信息包括公转坐标信息和/或自转坐标信息。
[0162]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0163]
获取模型显示时刻;通过预设的闪烁周期函数,分析预设的闪烁速度信息、贴图亮度信息以及模型显示时刻,得到闪烁时刻信息。
[0164]
上述实施例中,通过顶点着色器来分析获取模型渲染所需数据,以取代对传统特效片的低质采用,避免了可能出现的穿插问题,提升了游戏画面的特效质量,即有效提高了动画效果。
[0165]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0166]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0167]
以上对本技术实施例所提供的一种模型渲染方法、装置、计算机设备及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1