一种渲染方法、装置、存储介质及计算机设备与流程

文档序号:23619361发布日期:2021-01-12 10:29阅读:131来源:国知局
一种渲染方法、装置、存储介质及计算机设备与流程

本申请涉及图像处理领域,尤其涉及电子游戏领域,具体涉及一种渲染方法、装置、存储介质及计算机设备。



背景技术:

在计算机图像处理领域,光线追踪是一种通过在像素平面中以像素点为单位跟踪光的路径并模拟其与虚拟对象相遇的效果来生成图像的渲染技术。与扫描线渲染方法相比,光线追踪能够产生高度的视觉真实感,广泛应用于计算机生成的静止图像以及电影和电视视觉效果中。

随着移动互联网的飞速发展,很多游戏都能够在智能移动终端中运行。玩家们对游戏的视觉效果的追求也越来越高,他们希望在游戏中也能体验到影视的视觉效果。为了满足玩家们这一追求,很多游戏商尝试在游戏中使用光线追踪技术。

然而,光线追踪的一个突出特点是计算量的开销巨大。在智能移动终端这样的轻量级设备中使用光线追踪技术,意味着较高的延时,这可能会给玩家带来不好的体验,例如,画面的卡顿。



技术实现要素:

本申请实施例提供一种渲染方法、装置、存储介质及计算机设备,可以将渲染限制在生成的虚拟体积之内,从而降低计算量的开销。

本申请实施例提供了一种渲染方法,包括:

确定显示屏上任意一个像素位置相对于视点位置的方向构成的方向向量d;

根据点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)和方向向量d,确定虚拟体积的边界,所述点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z)为用于确定预设三维模型边界的点,所述预设三维模型为生成所述虚拟体积的载体;

判断所述预设三维模型内的点b是否位于所述虚拟体积的边界确定的范围之内;若点b位于所述虚拟体积的边界确定的范围之内,则以所述预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算所述虚拟体积内光线追踪的结果;

根据所述光线追踪的结果,在所述虚拟体积进行渲染以在所述显示屏上显示图像。

可选的,所述根据点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z)和方向向量d,确定待生成虚拟体积的边界,包括:计算所述方向向量d的反向延长线上任意一点bbound的像素偏移量tbound;比较所述像素偏移量tbound在局部空间坐标系三个轴向上的值;若所述像素偏移量tbound在所述局部空间坐标系三个轴向上能够取得最小值tmin,则将所述点bbound确定为所述虚拟体积的边界上与所述视点位置距离最近的点;若所述像素偏移量tbound在所述局部空间坐标系三个轴向上能够取得最大值tmax,则将所述点bbound确定为所述虚拟体积的边界上与所述视点位置距离最远的点。

可选的,所述判断所述预设三维模型内的点b是否位于所述虚拟体积的边界确定的范围之内,包括:计算所述预设三维模型内的点b的像素偏移量tb;比较所述像素偏移量tb与所述tmin和所述tmax的大小;若所述像素偏移量tb∈[tmin,tmax],则确定所述点b位于所述虚拟体积的边界确定的范围之内。

可选的,所述以所述预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算所述虚拟体积内光线追踪的结,包括:归一化向量p0p1或向量p1p0的长度,得到归一化值|p10|,所述向量p0p1是从所述点p0(p0x,p0y,p0z)指向所述点p1(p1x,p1y,p1z)的向量,所述向量p1p0是从所述点p1(p1x,p1y,p1z)指向所述点p0(p0x,p0y,p0z)的向量;以垂直于所述向量p0p1或向量p1p0的平面切割所述虚拟体积时与所述虚拟体积的边界相交,将相交线上任意一点q(qx,qy,qz)的二维坐标值(qx,qy)映射为纹理坐标系uvw的u方向和v方向的坐标值;将所述点q(qx,qy,qz)的坐标值qz映射为在纹理坐标系uvw的w方向上的数值,所述qz∈[0,|p10|]。

可选的,所述方法还包括:剔除所述采用光线追踪生成所述虚拟体积时的无效部分体积。

可选的,所述预设三维模型为立方体模型。

可选的,所述点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)分别为所述立方体模型上任意两个相对平面的中心点。

本申请实施例还提供一种渲染装置,包括:

第一确定模块,用于确定显示屏上任意一个像素位置相对于视点位置的方向构成的方向向量d;

第二确定模块,用于根据点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)和方向向量d,确定虚拟体积的边界,所述点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z)为用于确定预设三维模型边界的点,所述预设三维模型为生成所述虚拟体积的载体;

判断模块,用于判断所述预设三维模型内的点b是否位于所述虚拟体积的边界确定的范围之内;

体积生成模块,用于若点b位于所述虚拟体积的边界确定的范围之内,则以所述预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算所述虚拟体积内光线追踪的结果;

渲染模块,用于根据所述光线追踪的结果,在所述虚拟体积进行渲染以在所述显示屏上显示图像。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的虚拟体积生成方法中的步骤。

本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的虚拟体积生成方法中的步骤。

从上述本申请实施例提供的技术方案可知,在判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算虚拟体积内光线追踪的结果即生成虚拟体积,后续在进行光线追踪等渲染时,渲染局限于虚拟体积内部进行。因此,相比于现有技术的全局光线追踪,本申请的技术方案显著降低了计算量,应用于智能移动终端等轻量级设备时,不仅使游戏的画面逼真,而且实时性可以得到较好的保障(例如,画面流畅等)。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的虚拟体积生成装置的系统示意图。

图2为本申请实施例提供的虚拟体积生成方法的流程示意图。

图3为本申请实施例提供的方向向量d的示意图。

图4为本申请实施例提供的预设三维模型为立方体模型的示意图。

图5为本申请实施例提供的使用uv方向的平面采样空心柱状的虚拟体积后得到的圆环图片示意图。

图6为本申请实施例提供的沿着向量p0p1或向量p1p0的方向具有不同颜色的空心柱状的虚拟体积示意图。

图7为本申请实施例提供的虚拟体积生成装置的结构示意图。

图8为本申请另一实施例提供的虚拟体积生成装置的结构示意图。

图9为本申请实施例提供的计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种渲染方法、装置、存储介质及计算机设备。具体地,本申请实施例的渲染方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(pc,personalcomputer)、个人数字助理(personaldigitalassistant,pda)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。

例如,当该渲染方法运行于终端时,终端设备存储有游戏应用程序并用于呈现游戏画面中的虚拟场景。终端设备用于通过图形用户界面与用户进行交互,例如通过终端设备下载安装游戏应用程序并运行。该终端设备将图形用户界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端设备的显示屏上,或者,通过全息投影呈现图形用户界面。例如,终端设备可以包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面、响应操作指令以及控制图形用户界面在触控显示屏上的显示。

例如,当该渲染方法运行于服务器时,可以为云游戏。云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏应用程序的运行主体和游戏画面呈现主体是分离的,渲染方法的储存与运行是在云游戏服务器上完成的。而游戏画面呈现是在云游戏的客户端完成的,云游戏客户端主要用于游戏数据的接收、发送以及游戏画面的呈现,例如,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑、个人数字助理等,但是进行游戏数据处理的终端设备为云端的云游戏服务器。在进行游戏时,用户操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏画面。

请参阅图1,图1为本申请实施例提供的渲染装置的系统示意图。该系统可以包括至少一个终端1000,至少一个服务器2000,至少一个数据库3000,以及网络4000。用户持有的终端1000可以通过网络4000连接到不同游戏的服务器。终端1000是具有计算硬件的任何设备,该计算硬件能够支持和执行与游戏对应的软件产品。另外,终端1000具有用于感测和获得用户通过在一个或者多个触控显示屏的多个点执行的触摸或者滑动操作的输入的一个或者多个多触敏屏幕。另外,当系统包括多个终端1000、多个服务器2000、多个网络4000时,不同的终端1000可以通过不同的网络4000、通过不同的服务器2000相互连接。网络4000可以是无线网络或者有线网络,比如无线网络为无线局域网(wlan)、局域网(lan)、蜂窝网络、2g网络、3g网络、4g网络、5g网络等。另外,不同的终端1000之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端或者连接到服务器等。例如,多个用户可以通过不同的终端1000在线从而通过适当网络连接并且相互同步,以支持多玩家游戏。另外,该系统可以包括多个数据库3000,多个数据库3000耦合到不同的服务器2000,并且可以将与游戏环境有关的信息在不同用户在线进行多玩家游戏时连续地存储于数据库3000中。

本申请实施例提供了一种渲染方法,该方法可以由终端或服务器执行。本申请实施例以渲染方法由终端执行为例来进行说明。其中,该终端包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。用户通过触控显示屏对图形用户界面进行操作时,该图形用户界面可以通过响应于接收到的操作指令控制终端本地的内容,也可以通过响应于接收到的操作指令控制对端服务器的内容。例如,用户作用于图形用户界面产生的操作指令包括用于启动游戏应用程序的指令,处理器被配置为在接收到用户提供的启动游戏应用程序的指令之后启动游戏应用程序。此外,处理器被配置为在触控显示屏上渲染和绘制与游戏相关联的图形用户界面。触控显示屏是能够感测屏幕上的多个点同时执行的触摸或者滑动操作的多触敏屏幕。用户在使用手指在图形用户界面上执行触控操作,图形用户界面在检测到触控操作时,控制游戏的图形用户界面中的不同虚拟对象执行与触控操作对应的动作。例如,该游戏可以为休闲游戏、动作游戏、角色扮演游戏、策略游戏、体育游戏、益智游戏等游戏中的任一种。其中,游戏可以包括在图形用户界面上绘制的游戏的虚拟场景。此外,游戏的虚拟场景中可以包括由用户(或玩家)控制的一个或多个虚拟对象,诸如虚拟角色。另外,游戏的虚拟场景中还可以包括一个或多个障碍物,诸如栏杆、沟壑、墙壁等,以限制虚拟对象的移动,例如将一个或多个对象的移动限制到虚拟场景内的特定区域。可选地,游戏的虚拟场景还包括一个或多个元素,诸如技能、分值、角色健康状态、能量等,以向玩家提供帮助、提供虚拟服务、增加与玩家表现相关的分值等。此外,图形用户界面还可以呈现一个或多个指示器,以向玩家提供指示信息。例如,游戏可以包括玩家控制的虚拟对象和一个或多个其他虚拟对象(诸如敌人角色)。在一个实施例中,一个或多个其他虚拟对象由游戏的其他玩家控制。例如,一个或多个其他虚拟对象可以由计算机控制,诸如使用人工智能(ai)算法的机器人,实现人机对战模式。例如,虚拟对象拥有游戏玩家用来实现目标的各种技能或能力。例如虚拟对象拥有可用于从游戏中消除其他对象的一种或多种武器、道具、工具等。这样的技能或能力可由游戏的玩家使用与终端的触控显示屏的多个预设触控操作之一来激活。处理器可以被配置为响应于用户的触控操作产生的操作指令来呈现对应的游戏画面。

请参阅图2,为本申请实施例提供的渲染方法的流程示意图,主要包括步骤s201至步骤s205,详细说明如下:

步骤s201,确定显示屏上任意一个像素位置相对于视点位置的方向构成的方向向量d。

在本申请实施例中,视点位置也即世界空间的观察摄像机或者人眼的位置,视点位置可从游戏引擎(例如,uinty3d引擎)中直接取得,显示屏可以是智能手机等智能移动终端的屏幕等画面输出设备。方向向量d是从显示屏上任意一个像素位置相对于视点位置构成,其方向是指向视点位置。实际上,方向向量d的方向也是在光线追踪时,从光源发出的光线射向场景中的某个点后,从该点反射,途经该像素反射至视点位置的反射光线的方向。按照光路可逆的原理,方向向量d的逆向,也是从该像素出发的一条光线(射线)射向场景中的某个点的方向,光线从该点反射后,回到视点位置,其示意图如附图3所示,从像素指向视点的方向为方向向量d的方向。

步骤s202,根据点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)和方向向量d,确定虚拟体积的边界,其中,点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z)为用于确定预设三维模型边界的点,预设三维模型为生成虚拟体积的载体。

在本申请实施例中,作为生成虚拟体积的载体,预设三维模型可以是开发工具,例如游戏引擎自带的三维模型,也可以是其他方式制作好的三维模型载入游戏引擎等开发工具后,在开发时由这些开发工具提供。为了确定预设三维模型的边界,本申请实施例可以在预设三维模型上定义至少两个点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z),其中,b0x、b0y和b0z对应为点b0在局部空间的坐标,b1x、b1y和b1z对应为点b1在局部空间的坐标。例如,当预设三维模型是一个立方体模型时,利用该立方体对角线上的两个顶点即可确定该立方体模型的边界。需要说明的是,在游戏引擎等开发工具中,三维模型通常用来表达体积。为了表达出一个复杂的体积,通常需要采用三维模型中数量巨大的顶点来记录该需要表达的体积细节的坐标。然而,本申请实施例的虚拟体积却不同于传统方式采用模型来描述的体积,即虚拟体积并无顶点坐标数据,仅通过一些特定的公式计算,在游戏引擎等开发工具中绘制出如同模型类似的体积。正是由于虚拟体积具有上述不同于传统方式的模型表达的体积的特性,虚拟体积通常用于表达一些较为复杂的结构(例如,3d分型)或边界比较模糊的结构(例如,体积雾、体积云等)。

作为本申请一个实施例,根据点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)和方向向量d,确定虚拟体积的边界可通过如下步骤s2021至步骤s2024实现,说明如下:

步骤s2021:计算方向向量d的反向延长线上任意一点bbound的像素偏移量tbound。

在本申请实施例中,方向向量d的反向延长线上任意一点bbound的像素偏移量tbound按照如下公式计算:

其中,和vc分别表示点bbound和视点c在局部空间的坐标,vd表示方向向量d,在计算时,具体可以取分量来计算像素偏移量tbound相应的分量即tbound在局部空间坐标系三个轴向上的值。为了后续描述方便,此处将视点c在局部空间的坐标记录为(cx,cy,cz)即vc={cx,cy,cz},而vd={dx,dy,dz}。

步骤s2022:比较点bbound的像素偏移量tbound在局部空间坐标系三个轴向上的值。

为了描述方便,将点bbound的像素偏移量tbound在局部空间坐标系三个轴向上的值分别使用tx_bound、ty_bound和tz_bound表示。

步骤s2023:若点bbound的像素偏移量tbound在局部空间坐标系三个轴向上能够取得最小值tmin,则将点bbound确定为虚拟体积的边界上与视点位置距离最近的点。

在本申请实施例中,当点b0小于点b1即b0x<b1x、b0y<b1y以及b0z<b1z时,可以按照公式

计算出点b0的像素偏移量然后比较三个方向上分量即的大小,从而得到tmin,其中,上述公式2中,为点b0的坐标,即

具体地,在计算出时,比较的大小,取中的较小值记为在计算出时,比较的大小,取中的较小值(即,若否则,)作为tmin。

若点bbound的像素偏移量tbound在局部空间坐标系三个轴向上的tx_bound、ty_bound和tz_bound,其最小值为tmin,则说明点bbound是虚拟体积的边界上与视点c的位置距离最近的点,即从方向向量d反向出发的光线与虚拟体积相交的交点中距离像素spix(spix为方向向量d的起点也即视点c)位置最近的点。

步骤s2024:若点bbound的像素偏移量tbound在局部空间坐标系三个轴向上能够取得最大值tmax,则将点bbound确定为虚拟体积的边界上与视点位置距离最远的点。

与tmin类似,可以按照公式

计算出点b1的像素偏移量然后比较各个分量的大小,从而得到tmax,其中,上述公式3中,为点b1的坐标,即

具体地,在计算出时,比较的大小,取中的较大值记为在计算出时,比较的大小,取中的较大值(即,若否则,)作为tmax。

若点bbound的像素偏移量tbound在局部空间坐标系三个轴向上的tx_bound、ty_bound和tz_bound中,其最大值为tmax,则说明点bbound是虚拟体积的边界上与视点c的位置距离最远的点,即从方向向量d反向出发的光线与虚拟体积相交的交点中距离像素spix(spix为方向向量d的起点也即视点c)位置最远的点。

当随着构成方向向量d的起点的不同或者视点c的位置的不同,可以计算得到不同组的tmin和tmax,对应就会得到虚拟体积的边界上与视点c的位置的不同组的最近点和最远点,最终确定出虚拟体积的边界。

步骤s203,判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内。

在本申请实施例中,由于要将光线追踪等渲染的操作局限于虚拟体积内部,因此,需要判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内。具体方法是按照公式

计算出预设三维模型内的点b的像素偏移量tb;然后,比较像素偏移量tb与tmin和tmax的大小,即,取像素偏移量tb在三个方向上的分量tx_b、ty_b和tz_b中的最小值(记为txyz_min_b)与tmin比较,以及取像素偏移量tb在三个方向上的分量tx_b、ty_b和tz_b中的最大值(记为txyz_max_b)与tmax比较;若像素偏移量tb∈[tmin,tmax],即txyz_min_b>tmin且txyz_max_b<tmax,则确定点b位于虚拟体积的边界确定的范围之内。

步骤s204,若点b位于虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算虚拟体积内光线追踪的结果。

计算出虚拟体积内光线追踪的结果,相当于生成了虚拟体积。如前所述,预设三维模型可以是立方体模型。当预设三维模型是立方体模型时,点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)可以是该立方体模型上任意两个相对平面的中心点。当确定了点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点后,点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)、点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)构成可以生成虚拟体积的边界。当预设三维模型是立方体模型时,点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)、点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)构成了可以生成虚拟体积的空间。附图4是预设三维模型是立方体模型的示例,点b0、点b1、点p0和点p1在局部空间的坐标分别为点b0(-1,-1,-1)、点b1(1,1,1)、点p0(0,0,-1)和点p1(0,0,1),即,点p0和点p1位于立方体上两个相对平面的中心点。

作为本申请一个实施例,以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算虚拟体积内光线追踪的结果可通过如下步骤s2041至步骤s2043,说明如下:

步骤s2041:归一化向量p0p1或向量p1p0的长度,得到归一化值|p10|,其中,向量p0p1是从点p0(p0x,p0y,p0z)指向点p1(p1x,p1y,p1z)的向量,向量p1p0是从点p1(p1x,p1y,p1z)指向点p0(p0x,p0y,p0z)的向量。

步骤s2042:以垂直于向量p0p1或向量p1p0的平面切割虚拟体积时与虚拟体积的边界相交,将相交线上任意一点q(qx,qy,qz)的二维坐标值(qx,qy)映射为纹理坐标系uvw的u方向和v方向的坐标值。

步骤s2043:将q(qx,qy,qz)的坐标值qz映射为在纹理坐标系uvw的w方向上的数值,其中,qz∈[0,|p10|]。

当重复步骤s2042和步骤s2043,就是以点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为入点和出点迭代计算,生成虚拟体积的过程。附图5即使用uv方向的平面采样生成的虚拟体积(该虚拟体积为空心柱状)后得到的圆环图片,当对w方向上的数值赋以色彩值时,该圆环图片就有了与色彩值对应的颜色,w方向上不同的数值构成了不同颜色的圆环图片,向量p0p1或向量p1p0的长度对应的空间上不同的数值构成了整个虚拟体积的颜色,如附图6所示,是本申请生成一个空心柱状的虚拟体积的实施例,该虚拟体积沿着向量p0p1或向量p1p0的方向具有不同的颜色。

步骤s205:根据光线追踪的结果,在虚拟体积进行渲染以在显示屏上显示图像。

在虚拟体积进行渲染,例如可以是光线追踪等渲染方法,亦可以是其他渲染方法。

上述本申请实施例的方法还包括剔除采用光线追踪生成虚拟体积时的无效部分体积,无效部分体积也即在生成虚拟体积时,作为载体的预设模型上无绘制信息的体积。

从上述附图2示例的渲染方法可知,在判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算所述虚拟体积内光线追踪的结果即生成虚拟体积,后续在进行光线追踪等渲染时,渲染局限于虚拟体积内部进行。因此,相比于现有技术的全局光线追踪,本申请的技术方案显著降低了计算量,应用于智能移动终端等轻量级设备时,不仅使游戏的画面逼真,而且实时性可以得到较好的保障(例如,画面流畅等)。

为便于更好的实施本申请实施例的渲染方法,本申请实施例还提供一种渲染装置。请参阅图7,为本申请实施例提供的渲染装置的结构示意图。该渲染装置可以包括第一确定模块701、第二确定模块702、判断模块703、体积生成模块704和渲染模块705,其中:

第一确定模块701,用于确定显示屏上任意一个像素位置相对于视点位置的方向构成的方向向量d;

第二确定模块702,用于根据点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)和方向向量d,确定虚拟体积的边界,其中,点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z)为用于确定预设三维模型边界的点,预设三维模型为生成虚拟体积的载体;

判断模块703,用于判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内;

体积生成模块704,用于若点b位于所述虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算虚拟体积内光线追踪的结果。

渲染模块705,用于根据光线追踪的结果,在虚拟体积进行渲染以在显示屏上显示图像。

可选的,第二确定模块702具体用于计算方向向量d的反向延长线上任意一点bbound的像素偏移量tbound;比较像素偏移量tbound在局部空间坐标系三个轴向上的值;若像素偏移量tbound在局部空间坐标系三个轴向上能够取得最小值tmin,则将点bbound确定为虚拟体积的边界上与视点位置距离最近的点;若像素偏移量tbound在局部空间坐标系三个轴向上能够取得最大值tmax,则将点bbound确定为虚拟体积的边界上与视点位置距离最远的点。

可选的,判断模块703具体用于计算预设三维模型内的点b的像素偏移量tb;比较像素偏移量tb与tmin和tmax的大小;若像素偏移量tb∈[tmin,tmax],则确定点b位于虚拟体积的边界确定的范围之内。

可选的,体积生成模块704具体用于归一化向量p0p1或向量p1p0的长度,得到归一化值|p10|;以垂直于向量p0p1或向量p1p0的平面切割虚拟体积时与虚拟体积的边界相交,将相交线上任意一点q(qx,qy,qz)的二维坐标值(qx,qy)映射为纹理坐标系uvw的u方向和v方向的坐标值;将点q(qx,qy,qz)的坐标值qz映射为在纹理坐标系uvw的w方向上的数值,其中,向量p0p1是从点p0(p0x,p0y,p0z)指向点p1(p1x,p1y,p1z)的向量,向量p1p0是从点p1(p1x,p1y,p1z)指向点p0(p0x,p0y,p0z)的向量,qz∈[0,|p10|]。

请参阅图8,为本申请实施例提供的渲染装置的另一结构示意图。图8与图7在区别在于:该渲染装置还包括冗余部分删除模块801,用于剔除采用光线追踪生成虚拟体积时的无效部分体积。

可选的,在上述本申请实施例中,预设三维模型可以为立方体模型。

可选的,在上述本申请实施例中,点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)分别为立方体模型上任意两个相对平面的中心点。

上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

本申请实施例提供的渲染装置,在判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算所述虚拟体积内光线追踪的结果即生成虚拟体积,后续在进行光线追踪等渲染时,渲染局限于虚拟体积内部进行。因此,相比于现有技术的全局光线追踪,本申请的技术方案显著降低了计算量,应用于智能移动终端等轻量级设备时,不仅使游戏的画面逼真,而且实时性可以得到较好的保障(例如,画面流畅等)。

相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(pc,personalcomputer)、个人数字助理(personaldigitalassistant,pda)等终端设备。如图9所示,图9为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。

在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:

确定显示屏上任意一个像素位置相对于视点位置的方向构成的方向向量d;根据点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)和方向向量d,确定虚拟体积的边界,其中,点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z)为用于确定预设三维模型边界的点,预设三维模型为生成虚拟体积的载体;判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内;若点b位于虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算虚拟体积内光线追踪的结果;根据光线追踪的结果,在虚拟体积进行渲染以在显示屏上显示图像。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

可选的,如图9所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(lcd,liquidcrystaldisplay)、有机发光二极管(oled,organiclight-emittingdiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。

在本申请实施例中,通过处理器401执行游戏应用程序在触控显示屏403上生成图形用户界面,图形用户界面上的虚拟场景中包含至少一个技能控制区域,技能控制区域中包含至少一个技能控件。该触控显示屏403用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。

射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。

音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。

输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管图9中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

由上可知,本实施例提供的计算机设备,在判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算所述虚拟体积内光线追踪的结果即生成虚拟体积,后续在进行光线追踪等渲染时,渲染局限于虚拟体积内部进行。因此,相比于现有技术的全局光线追踪,本申请的技术方案显著降低了计算量,应用于智能移动终端等轻量级设备时,不仅使游戏的画面逼真,而且实时性可以得到较好的保障(例如,画面流畅等)。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种渲染方法中的步骤。例如,该计算机程序可以执行如下步骤:

确定显示屏上任意一个像素位置相对于视点位置的方向构成的方向向量d;根据点b0(b0x,b0y,b0z)、点b1(b1x,b1y,b1z)和方向向量d,确定虚拟体积的边界,其中,点b0(b0x,b0y,b0z)和点b1(b1x,b1y,b1z)为用于确定预设三维模型边界的点,预设三维模型为生成虚拟体积的载体;判断预设三维模型内的点b是否位于虚拟体积的边界确定的范围之内;若点b位于虚拟体积的边界确定的范围之内,则以预设三维模型上的点p0(p0x,p0y,p0z)和点p1(p1x,p1y,p1z)为光线追踪迭代函数的入点和出点,计算虚拟体积内光线追踪的结果;根据光线追踪的结果,在虚拟体积进行渲染以在显示屏上显示图像。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种渲染方法中的步骤,因此,可以实现本申请实施例所提供的任一种渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种渲染方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1