CN116363293A - 模型渲染方法、装置、计算机设备及计算机可读存储介质 - Google Patents

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

Info

Publication number
CN116363293A
CN116363293A CN202310120010.8A CN202310120010A CN116363293A CN 116363293 A CN116363293 A CN 116363293A CN 202310120010 A CN202310120010 A CN 202310120010A CN 116363293 A CN116363293 A CN 116363293A
Authority
CN
China
Prior art keywords
vector
camera
aurora
coordinate system
world
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
Application number
CN202310120010.8A
Other languages
English (en)
Inventor
陈天成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202310120010.8A priority Critical patent/CN116363293A/zh
Publication of CN116363293A publication Critical patent/CN116363293A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供一种模型渲染方法、装置、计算机设备及计算机可读存储介质,方法包括:获取目标模型,以及目标模型所处的世界坐标系;其中,世界坐标系是根据目标模型对应所在的屏幕空间坐标转换得到的;根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图;基于极光纹理贴图,渲染显示目标模型。采用本申请,能够在节省3D极光动画制作内存消耗的同时,提升动画稳定性,优化画面质量。

Description

模型渲染方法、装置、计算机设备及计算机可读存储介质
技术领域
本申请涉及游戏技术领域,具体涉及一种模型渲染方法、装置、计算机设备及计算机可读存储介质。
背景技术
极光是一种绚丽多彩的等离子体现象,游戏中为了表现出极光效果,提升游戏场景的真实性,通常会对极光现象按时序变化的动态效果进行模拟计算。
目前,对3D动态极光效果的模拟通常有如下几种方案:一种是制作视觉特效素材(Visual effects,VFX),并在网格模型(Mesh model)上添加特殊的具有顶点动画功能的半透明染色器材质,从而达到3D动态极光效果;另一种是使用与计算体积云类似的光线行进(ray marching)技术,根据3D噪声图(noise)在屏幕空间上绘制出具有3D动态效果的极光。然而,第一种方式不仅会因模型数量多而导致内存吃紧,还会因半透明的材质计算复杂度高而导致算力性能吃紧,影响最终的显示效果。第二种方式同样存在算力性能吃紧,且较难应用于移动端机器的问题,不仅无法满足用户在移动端的需求,也会影响显示效果。
因此,现有的3D极光动画制作方法存在着因内存消耗较高,而导致画面效果不稳定的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种模型渲染方法、装置、计算机设备及计算机可读存储介质,用以提升3D动态极光画面的效果质量。
第一方面,本申请提供一种模型渲染方法,包括:
获取目标模型,以及目标模型所处的世界坐标系;其中,世界坐标系是根据目标模型对应所在的屏幕空间坐标转换得到的;
根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图;
基于极光纹理贴图,渲染显示目标模型。
第二方面,本申请提供一种模型渲染装置,包括:
模型获取模块,用于获取目标模型,以及目标模型所处的世界坐标系;其中,世界坐标系是根据目标模型对应所在的屏幕空间坐标转换得到的;
贴图获取模块,用于根据世界坐标系的水平面坐标值,获取极光纹理贴图;
模型渲染模块,用于基于极光纹理贴图,渲染显示目标模型。
第三方面,本申请还提供一种计算机设备,包括:
一个或多个处理器;
存储器;以及一个或多个应用程序,其中的一个或多个应用程序被存储于存储器中,并配置为由处理器执行以实现上述的模型渲染方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行上述模型渲染方法中的步骤。
第五方面,本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面提供的方法。
上述模型渲染方法、装置、计算机设备及计算机可读存储介质,终端通过获取目标模型,以及根据目标模型对应所在的屏幕空间坐标转换得到的世界坐标系,即可根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图,最终基于极光纹理贴图,渲染显示目标模型,得到画面效果更加稳定的3D极光动画,同时节省动画制作的内存消耗,满足用户对游戏场景的精细化需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的模型渲染方法的应用场景图;
图2是本申请实施例中的模型渲染方法的流程示意图;
图3是本申请实施例中的单层极光图像的效果示意图;
图4是本申请实施例中的单层极光图像的叠加示意图
图5是本申请实施例中的极光纹理贴图的效果示意图;
图6是本申请实施例中的模型渲染装置的结构示意图;
图7是本申请实施例中的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,术语“例如”一词用来表示“用作例子、例证或说明”。本申请中被描述为“例如”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本发明,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本发明。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本发明的描述变得晦涩。因此,本发明并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
参阅图1,该模型渲染方法可基于云交互系统来实现与执行,其中,云交互系统包括终端设备102和服务器104。终端设备102可以是既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器。终端设备102具体可以是台式终端或移动终端,终端设备102具体还可以是手机、平板电脑、笔记本电脑中的一种。服务器104可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,其包括但不限于计算机、网络主机、单个网络服务器、边缘服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。此外,终端设备102与服务器104之间通过网络建立通信连接,网络具体可以是广域网、局域网、城域网中的任意一种。
在本申请一些实施例中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,模型渲染方法的储存与运行是在云游戏服务器上完成的,终端设备的作用在于数据的接收、发送以及游戏画面的呈现,举例而言,终端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作终端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回终端设备,最后,通过终端设备进行解码并输出游戏画面。
在本申请一些实施例中,终端设备可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
游戏场景(或称为虚拟场景)是应用程序在终端或服务器上运行时显示(或提供)的虚拟场景。可选地,该虚拟场景是对真实世界的仿真环境,或者是半仿真半虚构的虚拟环境,或者是纯虚构的虚拟环境。虚拟场景是二维虚拟场景和三维虚拟场景中的任意一种,虚拟环境可以为天空、陆地、海洋等,其中,该陆地包括沙漠、城市等环境元素。其中,虚拟场景为用户控制等虚拟对象完整游戏逻辑的场景,例如,对于沙盒类3D射击游戏中,虚拟场景为用于供玩家控制虚拟对象进行对战的3D游戏世界,实例性的虚拟场景可以包括:山川、平地、河流、湖泊、海洋、沙漠、天空、植物、建筑、车辆中的至少一种元素;例如,对于2D卡牌类游戏中,虚拟场景为供展示释放卡牌或是展示卡牌对应的虚拟对象的场景,实例性的虚拟场景可以包括:擂台场、决战场、或是其他可以显示卡牌对战状态的“场”元素或是其他元素;对于2D或是3D的多人在线战术竞技游戏,虚拟场景为供虚拟对象进行对战的2D或3D地形场景,实例性的虚拟场景可以包括:峡谷风格的山脉、线路、河流、教室、桌椅、讲台等元素。
游戏界面是指通过图形用户界面提供或显示的应用程序对应的界面,该界面中包括供玩家进行交互的UI界面和游戏画面。在可选的实施方式中,该UI界面中可以包括游戏控件(如,技能控件、移动控件、功能控件等)、指示标识(如,方向指示标识、角色指示标识等)、信息展示区(如,击杀人数、比赛时间等),或是游戏设置控件(如,系统设置、商店、金币等)。在可选的实施方式中,游戏画面为终端设备显示虚拟场景所对应的显示画面,游戏画面中可以包括在虚拟场景中进行执行游戏逻辑的游戏角色、NPC角色、AI角色等虚拟对象。
需要说明的是,本申请实施例描述的游戏场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着异常新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
参阅图2,本申请实施例提供了一种模型渲染方法,下述实施例将以该方法应用于上述图1中的终端102来举例说明,该方法包括步骤S201至S203,具体如下:
S201,获取目标模型,以及目标模型所处的世界坐标系;其中,世界坐标系是根据目标模型对应所在的屏幕空间坐标转换得到的。
其中,目标模型可以是任何材质、形状的网络模型,而网格模型通常是采用一系列大小和形状接近的多边形(通常是三角形)近似表示三维物体的模型。例如,立方体、球体、柱状体等。
其中,屏幕空间坐标可以是整个显示屏幕的二维坐标系,它的原点位于屏幕左上角,根据不同引擎设计,原点也可设置位于其他角落,如左下角。
其中,世界坐标系可以是整个待渲染场景的三维坐标系,它的原点可位于场景的中心。
具体实现中,为了节省3D极光动画制作的内存消耗,进而提升3D极光画面效果的稳定性,本申请实施例提出可先获取一个目标模型,并基于该目标模型创建出后续可作为3D极光动画制作基础的世界坐标系,以便在该世界坐标系下制作出具有3D极光效果的染色器材质,即极光纹理贴图,进而将该极光纹理贴图应用于前序步骤获取的目标模型上,以使终端102对其进行渲染,得到可显示的3D动态极光效果动画。
例如,可在ue4游戏引擎中创建unlit类型的目标模型,unlit类型代表“无光照/自发光”,其达到的效果是“达到火光或光照效果,摄像机能拍摄到其高自发光值,但不会对场景投射任何灯光或阴影”。
在一个实施例中,本步骤包括:获取目标模型;其中,目标模型为可覆盖待渲染场景的三维网络模型;获取目标模型对应所在的屏幕空间坐标,以及待渲染场景中摄像机的转动数值;基于摄像机的转动数值,对屏幕空间坐标进行转换,以生成可随摄像机的视线向量变化而变化的世界空间坐标,作为世界坐标系。
具体实现中,终端102可在ue4引擎中设置一个球体模型,并将其放大N倍放置于待渲染场景中间,用于罩住整个游戏场景,或是其他类型的场景,而“N”的数值可设为“1000”。当然,本领域技术人员还可利用其他游戏引擎实现本申请实施例提出的模型渲染方法,引擎类型和型号本申请实施例不作具体限定。
进一步地,终端102在获取目标模型之后,可基于该目标模型所在的屏幕空间坐标,并结合摄像机方向向量搭建世界坐标系。如通过“ViewSize”节点提供的屏幕长宽数值,对屏幕空间坐标(屏幕空间UV)的数值进行修改,并为其增加“depth参数”使之成为三维参数,进而结合摄像机方向向量创建三维空间下的世界坐标系。
具体而言,结合摄像机方向向量创建三维空间下的世界坐标系,可分为两步实现:第一步是获取加入了摄像机竖直方向上角度变化后的三维空间坐标,第二步是获取加入了摄像机水平方向上角度变化后的三维空间坐标,如此即可得到随摄像机的视线向量变化而变化的世界坐标系,以下将分别进行详细说明。
在一个实施例中,获取目标模型对应所在的屏幕空间坐标,以及待渲染场景中摄像机的转动数值,包括:获取目标模型对应所在显示屏幕的屏高像素数量和屏宽像素数量;确定屏高像素数量作为屏幕空间坐标的竖直向量,并确定屏宽像素数量作为屏幕空间坐标的水平向量,组合得到屏幕空间坐标;获取摄像机在第一方向上的第一转动角度,并获取摄像机在第二方向与第三方向所处平面上的第二转动角度,得到转动数值;其中,第一方向为深度方向,第二方向为竖直方向,第三方向为水平方向,第一方向、第二方向以及第三方向之间相互垂直。
其中,屏高像素数量和屏宽像素数量可通过查询屏幕窗口分辨率得到,例如,终端102显示屏幕的屏幕窗口分辨率为“1920*1080”,则屏宽像素数量为“1080”,屏高像素数量为“1920”。
具体实现中,终端102可通过“ViewSize”节点提供的屏高像素数量和屏宽像素数量,对屏幕空间UV(viewportUV)数值进行修改,如将原本二维屏幕空间UV中的“U”视为水平方向(X轴,其正方向为右,负方向为左),“V”视为竖直方向(Y轴,其正方向为下,负方向为上),并将屏高像素数量和屏宽像素数量对应存入二维数组[x,y],即可得到二维坐标体系的屏幕空间坐标。
进一步地,终端102可利用摄像机向量(将“Viewspace”下的常数向量[0,0,1]利用“TransformVector”节点转换成摄像机向量),分别对三维常量[0,0,1]、[-1,0,0]、[0,1,0]进行点乘(这三个向量分别代表世界空间下的X轴,Y轴以及Z轴),再将点乘得到的结果进行反三角函数计算(Arccosine),即可算出摄像机在水平方向与竖直方向转动的角度,分别作为第一转动角度和第二转动角度。
在一个实施例中,基于摄像机的转动数值,对屏幕空间坐标进行转换,以生成可随摄像机的视线向量变化而变化的世界空间坐标,作为世界坐标系,包括:基于屏幕空间坐标的竖直向量、水平向量,以及预设垂直于显示屏幕朝里方向的深度向量,生成初始的世界空间坐标;基于预设的旋转矩阵函数,分析竖直向量、深度向量以及第一转动角度,以对初始的世界空间坐标进行转换,得到第一世界空间坐标;基于预设的旋转矩阵函数,分析第一世界空间坐标中的水平向量、深度向量,以及第二转动角度,以对第一世界空间坐标进行转换,得到世界坐标系。
其中,预设垂直于所述显示屏幕朝里方向的深度向量可表示为“depth”,其正方向为垂直于X、Y轴组成的平面,并和摄像机视线方向相同的方向,负方向则应是与之相反的方向,且其数值默认为“1”。需要说明的是,改变“depth”的数值会影响最终渲染结果的视野。
具体实现中,上述实施例已详细说明如何确定屏幕空间坐标,本实施例则提出可引入一个float类型的参数“depth”作为深度信息,并确定其正方向和负方向,即可在竖直向量(对应数值为屏高像素数量)、水平向量(对应数值为屏宽像素数量)的配合下,作为深度向量对应存入三维数组[x,y,z],形成初始的世界空间坐标。
进一步地,针对初始的世界空间坐标,可通过“normalize”节点将其归一化以便于后续计算。其中,在转换x值需要将其减去“0.5”,使其值域从[0,1]变成[-0.5,0.5],然后将其乘上“ViewSize”节点提供的屏宽像素数量,再除以屏高像素数量所得的长宽比,使x值的值域与后续计算中的y值成固定比例关系。而转换y值时,需要将其先传入“1-x”节点(该节点的作用就是将输入值放入“y=1-x”的函数中计算后传出结果)然后再减去“0.5”,其原因是因为屏幕空间坐标的V值是从上往下增加(屏幕最上方为0,底部为1),而我们需要将其反转过来由下往上增加,并且让值域变为[-0.5,0.5]。
更进一步地,创建好初始的世界空间坐标之后,可将摄像机在世界空间坐标下转动的数值,通过计算转换成的屏幕空间数值,并带入初始的世界空间坐标中进行计算,即可生成随摄像机视线向量改变而变化的世界坐标系。具体而言,可将初始的世界空间坐标的yz平面,以及竖直方向的变量参数放入旋转矩阵中计算,即可得到旋转后的y轴、z轴,再将水平方向的变量参数和刚刚旋转y轴、z轴后的世界空间坐标系的xz平面,放入旋转矩阵中计算出旋转后的x轴、z轴,即可得到最终由X、Y、Z确定的世界坐标系。
在一个实施例中,获取摄像机在第一方向上的第一转动角度,包括:获取摄像机的摄像机向量;将摄像机向量与预设的第一常数向量进行点乘,得到摄像机向量在第一方向上的第一投影长度;对第一投影长度进行反三角函数分析,得到第一转动角度。
其中,第一常数向量可以是“三维向量[0,0,1]”。
具体实现中,终端102可将摄像机向量与三维向量[0,0,1]进行点乘,即可得到摄像机向量在世界空间下竖直方向(即世界空间下的z轴)上的投影长度,作为第一投影长度。然后,将其联入“Arccosine”节点中,得到摄像机在竖直方向上旋转的“弧度1”,作为第一转动角度。如此,即可接着将初始的世界空间坐标[x,y,z]中的“y”与“z”抽出单独组成二维向量(可代表“y”和“z”组成的平面),以及第一转动角度“弧度1”传入旋转矩阵函数节点,最终得到的二维向量即加入了摄像机竖直方向上角度变化后的“yz”平面,将该二维向量替换掉初始的世界空间坐标[x,y,z]中的“y”、“z”值,即得到第一世界空间坐标。
在一个实施例中,获取摄像机在第二方向与第三方向所处平面上的第二转动角度,包括:获取摄像机的摄像机向量;将摄像机向量与预设的第二常数向量进行点乘,得到摄像机向量在第三方向的负方向上的第二投影长度;对第二投影长度进行反三角函数分析,得到转动角度;将摄像机向量与预设的第三常数向量进行点乘,以对转动角度的正负进行取舍处理,得到第二转动角度。
其中,第二常数向量可以是“三维向量[-1,0,0]”,第三常数向量可以是“三维向量[0,1,0]”。
具体实现中,终端102可将摄像机向量乘上三维向量[1,1,0],即只保留“x”轴与“y”轴信息,归一化后直接与第二常数向量[-1,0,0]进行点乘,以获取摄像机向量在“x”轴与“y”轴所组成平面上的正左方向上[-1,0,0]的投影,作为第二投影长度。然后,使用反三角函数计算出与正左向量的弧度差,进而通过“Arccosine”节点计算出“弧度2”。
然而,仅仅计算出摄像机在“xy”平面上的旋转角度是不够的,因为该步骤计算出的“弧度2”是一个绝对值,所以还需进一步确定其正负,故还需将摄像机向量与第三常数向量[0,1,0]进行点乘,来确认其弧度的正负。具体而言,若该值为正数,则保留“弧度2”的值;若该值为负数,则应该取负的“弧度2”的值。若该值为“0”,则需要保留“弧度2”的值。因此,终端102可将“弧度2”联入sign函数得到的数记作“A”,并将“A”先加一再减去“A”的绝对值,结果记作“B”(“B”即“弧度2”的正负值)。最后,将“弧度2”乘上“B”得到“弧度3”。
最后,接着将第一步替换完的三维数组[x,y,z]中的x与z抽出单独组成二维向量(可代表x和z组成的平面)和弧度3一起传入旋转矩阵函数节点,最终得到的二维向量即加入了摄像机水平方向上角度变化后的“xz”平面,将该二维向量替换掉第一世界空间坐标[x,y,z]中的“x”与“z”值,即得到世界坐标系。
S202,根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图。
其中,世界坐标系中的水平面可以是“x”轴和“z”轴组成的平面。
具体实现中,终端102可基于上述实施例创建的世界坐标系,获取不同高度(y轴下)的“xz”平面,并将这些“xz”平面作为UV传入2D极光图像生成函数中,即可得到多层极光图像,再根据高度值赋予不同颜色,最后将多层极光图像根据数值叠加在一起计算出最终的极光颜色,即可得到极光纹理贴图。
在一个实施例中,本步骤包括:获取世界坐标系中水平面的平面坐标值;其中,水平面为第一方向和第三方向所形成的平面,第一方向为深度方向,第三方向为水平方向,第一方向和第三方向相互垂直;基于预设的极光噪声函数,分析平面坐标值,得到多层极光图像;根据世界坐标系中第二方向的方向数值,将预设的极光颜色逐层叠加至多层极光图像中,得到极光纹理贴图;其中,第二方向为竖直方向,第二方向与第一方向、第三方向相互垂直。
具体实现中,本申请实施例提出可预先编写一个单层的极光噪声函数,并向其传入水平面的UV参数,经过函数分析即可输出如图3所示的单层极光图像。然后,循环分析不同高度的单层极光图像,即可得到如图4所示的多层极光图像。最后,根据高度值赋予不同颜色,并通过“Smoothstep”节点将极光的颜色数值调整到正常范围,即可得到如图5所示的极光纹理贴图。
S203,基于极光纹理贴图,渲染显示目标模型。
具体实现中,终端102基于极光纹理贴图渲染显示目标模型的过程中,因为ue4引擎的默认球体模型是单面模型,故可将极光纹理贴图改为双面渲染模式,渲染出效果更佳的3D动态极光动画。
可以理解的是,本申请实施例中的极光纹理贴图是基于屏幕空间作为计算的,故无需获取网格模型中顶点上存储的信息,可以节省大量内存资源。同时,因为极光是根据三角噪声函数完全程序化生成的,所以避免了基于贴图纹理信息算法导致的重复性缺点,换言之,采用本申请实施例生成的极光可以做到完全不同的同时,显示屏幕上出现的极光数量可以大大增加。此外,因为本申请未对任何图像纹理资源进行采样,故完全不依赖于任何贴图资源,节省了带宽的消耗,也规避了特效素材极光重叠时的重绘问题。更甚之,因为本申请不同于使用体积云的渲染方式,本申请是在屏幕空间坐标上模拟计算世界空间的“xz”平面,并在不同高度的“xz”平面上绘制平面图像,如此只要绘制次数合理,对机器性能要求就不会高,所以本申请在移动端的运行十分流场。
上述实施例中的模型渲染方法,终端通过获取目标模型,以及根据目标模型对应所在的屏幕空间坐标转换得到的世界坐标系,即可根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图,最终基于极光纹理贴图,渲染显示目标模型,得到画面效果更加稳定的3D极光动画,同时节省动画制作的内存消耗,满足用户对游戏场景的精细化需求。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
为了更好实施本申请实施例提供的模型渲染方法,在本申请实施例所提出的模型渲染方法的基础之上,本申请实施例中还提供了一种模型渲染装置,如图6所示,该模型渲染装置600包括:
模型获取模块610,用于获取目标模型,以及目标模型所处的世界坐标系;其中,世界坐标系是根据目标模型对应所在的屏幕空间坐标转换得到的;
贴图获取模块620,用于根据世界坐标系的水平面坐标值,获取极光纹理贴图;
模型渲染模块630,用于基于极光纹理贴图,渲染显示目标模型。
在一个实施例中,模型获取模块610还用于获取目标模型;其中,目标模型为可覆盖待渲染场景的三维网络模型;获取目标模型对应所在的屏幕空间坐标,以及待渲染场景中摄像机的转动数值;基于摄像机的转动数值,对屏幕空间坐标进行转换,以生成可随摄像机的视线向量变化而变化的世界空间坐标,作为世界坐标系。
在一个实施例中,模型获取模块610还用于获取目标模型对应所在显示屏幕的屏高像素数量和屏宽像素数量;确定屏高像素数量作为屏幕空间坐标的竖直向量,并确定屏宽像素数量作为屏幕空间坐标的水平向量,组合得到屏幕空间坐标;获取摄像机在第一方向上的第一转动角度,并获取摄像机在第二方向与第三方向所处平面上的第二转动角度,得到转动数值;其中,第一方向为深度方向,第二方向为竖直方向,第三方向为水平方向,第一方向、第二方向以及第三方向之间相互垂直。
在一个实施例中,模型获取模块610还用于基于屏幕空间坐标的竖直向量、水平向量,以及预设垂直于显示屏幕朝里方向的深度向量,生成初始的世界空间坐标;基于预设的旋转矩阵函数,分析竖直向量、深度向量以及第一转动角度,以对初始的世界空间坐标进行转换,得到第一世界空间坐标;基于预设的旋转矩阵函数,分析第一世界空间坐标中的水平向量、深度向量,以及第二转动角度,以对第一世界空间坐标进行转换,得到世界坐标系。
在一个实施例中,模型获取模块610还用于获取摄像机的摄像机向量;将摄像机向量与预设的第一常数向量进行点乘,得到摄像机向量在第一方向上的第一投影长度;对第一投影长度进行反三角函数分析,得到第一转动角度。
在一个实施例中,模型获取模块610还用于获取摄像机的摄像机向量;将摄像机向量与预设的第二常数向量进行点乘,得到摄像机向量在第三方向的负方向上的第二投影长度;对第二投影长度进行反三角函数分析,得到转动角度;将摄像机向量与预设的第三常数向量进行点乘,以对转动角度的正负进行取舍处理,得到第二转动角度。
在一个实施例中,模型渲染模块630还用于获取世界坐标系中水平面的平面坐标值;其中,水平面为第一方向和第三方向所形成的平面,第一方向为深度方向,第三方向为水平方向,第一方向和第三方向相互垂直;基于预设的极光噪声函数,分析平面坐标值,得到多层极光图像;根据世界坐标系中第二方向的方向数值,将预设的极光颜色逐层叠加至多层极光图像中,得到极光纹理贴图;其中,第二方向为竖直方向,第二方向与第一方向、第三方向相互垂直。
上述实施例中,终端通过获取目标模型,以及根据目标模型对应所在的屏幕空间坐标转换得到的世界坐标系,即可根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图,最终基于极光纹理贴图,渲染显示目标模型,得到画面效果更加稳定的3D极光动画,同时节省动画制作的内存消耗,满足用户对游戏场景的精细化需求。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种模型渲染方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取目标模型,以及目标模型所处的世界坐标系;其中,世界坐标系是根据目标模型对应所在的屏幕空间坐标转换得到的;
根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图;
基于极光纹理贴图,渲染显示目标模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取目标模型;其中,目标模型为可覆盖待渲染场景的三维网络模型;获取目标模型对应所在的屏幕空间坐标,以及待渲染场景中摄像机的转动数值;基于摄像机的转动数值,对屏幕空间坐标进行转换,以生成可随摄像机的视线向量变化而变化的世界空间坐标,作为世界坐标系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取目标模型对应所在显示屏幕的屏高像素数量和屏宽像素数量;确定屏高像素数量作为屏幕空间坐标的竖直向量,并确定屏宽像素数量作为屏幕空间坐标的水平向量,组合得到屏幕空间坐标;获取摄像机在第一方向上的第一转动角度,并获取摄像机在第二方向与第三方向所处平面上的第二转动角度,得到转动数值;其中,第一方向为深度方向,第二方向为竖直方向,第三方向为水平方向,第一方向、第二方向以及第三方向之间相互垂直。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于屏幕空间坐标的竖直向量、水平向量,以及预设垂直于显示屏幕朝里方向的深度向量,生成初始的世界空间坐标;基于预设的旋转矩阵函数,分析竖直向量、深度向量以及第一转动角度,以对初始的世界空间坐标进行转换,得到第一世界空间坐标;基于预设的旋转矩阵函数,分析第一世界空间坐标中的水平向量、深度向量,以及第二转动角度,以对第一世界空间坐标进行转换,得到世界坐标系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取摄像机的摄像机向量;将摄像机向量与预设的第一常数向量进行点乘,得到摄像机向量在第一方向上的第一投影长度;对第一投影长度进行反三角函数分析,得到第一转动角度。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取摄像机的摄像机向量;将摄像机向量与预设的第二常数向量进行点乘,得到摄像机向量在第三方向的负方向上的第二投影长度;对第二投影长度进行反三角函数分析,得到转动角度;将摄像机向量与预设的第三常数向量进行点乘,以对转动角度的正负进行取舍处理,得到第二转动角度。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取世界坐标系中水平面的平面坐标值;其中,水平面为第一方向和第三方向所形成的平面,第一方向为深度方向,第三方向为水平方向,第一方向和第三方向相互垂直;基于预设的极光噪声函数,分析平面坐标值,得到多层极光图像;根据世界坐标系中第二方向的方向数值,将预设的极光颜色逐层叠加至多层极光图像中,得到极光纹理贴图;其中,第二方向为竖直方向,第二方向与第一方向、第三方向相互垂直。
上述实施例中,终端通过获取目标模型,以及根据目标模型对应所在的屏幕空间坐标转换得到的世界坐标系,即可根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图,最终基于极光纹理贴图,渲染显示目标模型,得到画面效果更加稳定的3D极光动画,同时节省动画制作的内存消耗,满足用户对游戏场景的精细化需求。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取目标模型,以及目标模型所处的世界坐标系;其中,世界坐标系是根据目标模型对应所在的屏幕空间坐标转换得到的;
根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图;
基于极光纹理贴图,渲染显示目标模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取目标模型;其中,目标模型为可覆盖待渲染场景的三维网络模型;获取目标模型对应所在的屏幕空间坐标,以及待渲染场景中摄像机的转动数值;基于摄像机的转动数值,对屏幕空间坐标进行转换,以生成可随摄像机的视线向量变化而变化的世界空间坐标,作为世界坐标系。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取目标模型对应所在显示屏幕的屏高像素数量和屏宽像素数量;确定屏高像素数量作为屏幕空间坐标的竖直向量,并确定屏宽像素数量作为屏幕空间坐标的水平向量,组合得到屏幕空间坐标;获取摄像机在第一方向上的第一转动角度,并获取摄像机在第二方向与第三方向所处平面上的第二转动角度,得到转动数值;其中,第一方向为深度方向,第二方向为竖直方向,第三方向为水平方向,第一方向、第二方向以及第三方向之间相互垂直。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于屏幕空间坐标的竖直向量、水平向量,以及预设垂直于显示屏幕朝里方向的深度向量,生成初始的世界空间坐标;基于预设的旋转矩阵函数,分析竖直向量、深度向量以及第一转动角度,以对初始的世界空间坐标进行转换,得到第一世界空间坐标;基于预设的旋转矩阵函数,分析第一世界空间坐标中的水平向量、深度向量,以及第二转动角度,以对第一世界空间坐标进行转换,得到世界坐标系。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取摄像机的摄像机向量;将摄像机向量与预设的第一常数向量进行点乘,得到摄像机向量在第一方向上的第一投影长度;对第一投影长度进行反三角函数分析,得到第一转动角度。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取摄像机的摄像机向量;将摄像机向量与预设的第二常数向量进行点乘,得到摄像机向量在第三方向的负方向上的第二投影长度;对第二投影长度进行反三角函数分析,得到转动角度;将摄像机向量与预设的第三常数向量进行点乘,以对转动角度的正负进行取舍处理,得到第二转动角度。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取世界坐标系中水平面的平面坐标值;其中,水平面为第一方向和第三方向所形成的平面,第一方向为深度方向,第三方向为水平方向,第一方向和第三方向相互垂直;基于预设的极光噪声函数,分析平面坐标值,得到多层极光图像;根据世界坐标系中第二方向的方向数值,将预设的极光颜色逐层叠加至多层极光图像中,得到极光纹理贴图;其中,第二方向为竖直方向,第二方向与第一方向、第三方向相互垂直。
上述实施例中,终端通过获取目标模型,以及根据目标模型对应所在的屏幕空间坐标转换得到的世界坐标系,即可根据世界坐标系中水平面的平面坐标值,获取极光纹理贴图,最终基于极光纹理贴图,渲染显示目标模型,得到画面效果更加稳定的3D极光动画,同时节省动画制作的内存消耗,满足用户对游戏场景的精细化需求。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本申请实施例所提供的一种模型渲染方法、装置、计算机设备及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种模型渲染方法,其特征在于,包括:
获取目标模型,以及所述目标模型所处的世界坐标系;其中,所述世界坐标系是根据所述目标模型对应所在的屏幕空间坐标转换得到的;
根据所述世界坐标系中水平面的平面坐标值,获取极光纹理贴图;
基于所述极光纹理贴图,渲染显示所述目标模型。
2.如权利要求1所述的方法,其特征在于,所述获取目标模型,以及所述目标模型所处的世界坐标系,包括:
获取目标模型;其中,所述目标模型为可覆盖待渲染场景的三维网络模型;
获取所述目标模型对应所在的屏幕空间坐标,以及所述待渲染场景中摄像机的转动数值;
基于所述摄像机的转动数值,对所述屏幕空间坐标进行转换,以生成可随所述摄像机的视线向量变化而变化的世界空间坐标,作为所述世界坐标系。
3.如权利要求2所述的方法,其特征在于,所述获取所述目标模型对应所在的屏幕空间坐标,以及所述待渲染场景中摄像机的转动数值,包括:
获取所述目标模型对应所在显示屏幕的屏高像素数量和屏宽像素数量;
确定所述屏高像素数量作为所述屏幕空间坐标的竖直向量,并确定所述屏宽像素数量作为所述屏幕空间坐标的水平向量,组合得到所述屏幕空间坐标;
获取所述摄像机在第一方向上的第一转动角度,并获取所述摄像机在第二方向与第三方向所处平面上的第二转动角度,得到所述转动数值;其中,所述第一方向为深度方向,所述第二方向为竖直方向,所述第三方向为水平方向,所述第一方向、所述第二方向以及所述第三方向之间相互垂直。
4.如权利要求3所述的方法,其特征在于,所述基于所述摄像机的转动数值,对所述屏幕空间坐标进行转换,以生成可随所述摄像机的视线向量变化而变化的世界空间坐标,作为所述世界坐标系,包括:
基于所述屏幕空间坐标的竖直向量、水平向量,以及预设垂直于所述显示屏幕朝里方向的深度向量,生成初始的世界空间坐标;
基于预设的旋转矩阵函数,分析所述竖直向量、所述深度向量以及所述第一转动角度,以对所述初始的世界空间坐标进行转换,得到第一世界空间坐标;
基于预设的旋转矩阵函数,分析所述第一世界空间坐标中的水平向量、深度向量,以及所述第二转动角度,以对所述第一世界空间坐标进行转换,得到所述世界坐标系。
5.如权利要求3或4所述的方法,其特征在于,所述获取所述摄像机在第一方向上的第一转动角度,包括:
获取所述摄像机的摄像机向量;
将所述摄像机向量与预设的第一常数向量进行点乘,得到所述摄像机向量在所述第一方向上的第一投影长度;
对所述第一投影长度进行反三角函数分析,得到所述第一转动角度。
6.如权利要求3或4所述的方法,其特征在于,所述获取所述摄像机在第二方向与第三方向所处平面上的第二转动角度,包括:
获取所述摄像机的摄像机向量;
将所述摄像机向量与预设的第二常数向量进行点乘,得到所述摄像机向量在所述第三方向的负方向上的第二投影长度;
对所述第二投影长度进行反三角函数分析,得到转动角度;
将所述摄像机向量与预设的第三常数向量进行点乘,以对所述转动角度的正负进行取舍处理,得到所述第二转动角度。
7.如权利要求1所述的方法,其特征在于,所述根据所述世界坐标系中水平面的平面坐标值,获取极光纹理贴图,包括:
获取所述世界坐标系中水平面的平面坐标值;其中,所述水平面为第一方向和第三方向所形成的平面,所述第一方向为深度方向,所述第三方向为水平方向,所述第一方向和所述第三方向相互垂直;
基于预设的极光噪声函数,分析所述平面坐标值,得到多层极光图像;
根据所述世界坐标系中第二方向的方向数值,将预设的极光颜色逐层叠加至所述多层极光图像中,得到所述极光纹理贴图;其中,所述第二方向为竖直方向,所述第二方向与所述第一方向、所述第三方向相互垂直。
8.一种模型渲染装置,其特征在于,包括:
模型获取模块,用于获取目标模型,以及所述目标模型所处的世界坐标系;其中,所述世界坐标系是根据所述目标模型对应所在的屏幕空间坐标转换得到的;
贴图获取模块,用于根据所述世界坐标系的水平面坐标值,获取极光纹理贴图;
模型渲染模块,用于基于所述极光纹理贴图,渲染显示所述目标模型。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器;以及一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至7中任一项所述的模型渲染方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至7中任一项所述模型渲染方法中的步骤。
CN202310120010.8A 2023-02-08 2023-02-08 模型渲染方法、装置、计算机设备及计算机可读存储介质 Pending CN116363293A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310120010.8A CN116363293A (zh) 2023-02-08 2023-02-08 模型渲染方法、装置、计算机设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310120010.8A CN116363293A (zh) 2023-02-08 2023-02-08 模型渲染方法、装置、计算机设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN116363293A true CN116363293A (zh) 2023-06-30

Family

ID=86930792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310120010.8A Pending CN116363293A (zh) 2023-02-08 2023-02-08 模型渲染方法、装置、计算机设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116363293A (zh)

Similar Documents

Publication Publication Date Title
CN107358649B (zh) 地形文件的处理方法和装置
US6664958B1 (en) Z-texturing
CN113674389B (zh) 场景渲染方法、装置、电子设备及存储介质
CN105528207A (zh) 一种虚拟现实系统及其中显示安卓应用图像的方法和装置
WO2023231537A1 (zh) 地形图像渲染方法、装置、设备及计算机可读存储介质及计算机程序产品
CN115082607B (zh) 虚拟角色头发渲染方法、装置、电子设备和存储介质
US20230053462A1 (en) Image rendering method and apparatus, device, medium, and computer program product
CN114119818A (zh) 场景模型的渲染方法、装置及设备
CN117390322A (zh) 虚拟空间构建方法、装置、电子设备及非易失性存储介质
CN112734896A (zh) 环境遮蔽渲染方法、装置、存储介质及电子设备
CN117557703A (zh) 渲染的优化方法、电子设备和计算机可读存储介质
CN116402931A (zh) 体积渲染方法、装置、计算机设备和计算机可读存储介质
CN115512025A (zh) 模型渲染性能的检测方法、装置、电子设备及存储介质
CN118397160A (zh) 一种用于油田站场逆向建站系统的自主化三维渲染引擎
CN116310013A (zh) 动画渲染方法、装置、计算机设备及计算机可读存储介质
CN109658495B (zh) 环境光遮蔽效果的渲染方法、装置及电子设备
CN101511034A (zh) 面向Skyline的真三维立体显示方法
CN116363293A (zh) 模型渲染方法、装置、计算机设备及计算机可读存储介质
CN113192173B (zh) 三维场景的图像处理方法、装置及电子设备
CN116958390A (zh) 一种图像渲染方法、装置、设备、存储介质及程序产品
CN115501590A (zh) 显示方法、装置、电子设备和存储介质
CN114399580A (zh) 一种图像渲染方法、装置、设备、存储介质及程序产品
CN113487708B (zh) 基于图形学的流动动画实现方法、存储介质及终端设备
CN115861507A (zh) 模型渲染方法、装置、计算机设备及计算机可读存储介质
CN118436984A (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