一种虚拟发光体的渲染方法及相关设备

文档序号:192782 发布日期:2021-11-02 浏览:23次 >En<

阅读说明:本技术 一种虚拟发光体的渲染方法及相关设备 (Rendering method of virtual luminous body and related equipment ) 是由 刘立 周明付 于 2021-08-05 设计创作,主要内容包括:本申请实施例提供了一种虚拟发光体的渲染方法及相关设备,涉及计算机技术领域。该方法包括:获取预设渲染模型上各顶点法线的向量信息;获取虚拟发光体的入射光线向量信息;基于各顶点法线的向量信息与入射光线向量信息,确定虚拟发光体的图形核心信息;基于图形核心信息在预设渲染模型上渲染虚拟发光体。本申请方案的实施可以有效提高渲染虚拟发光体的效率。(The embodiment of the application provides a rendering method of a virtual illuminant and related equipment, and relates to the technical field of computers. The method comprises the following steps: acquiring vector information of each vertex normal on a preset rendering model; acquiring incident light vector information of the virtual luminous body; determining graphic core information of the virtual luminous body based on the vector information of the normal lines of all the vertexes and the incident ray vector information; rendering the virtual illuminant on a preset rendering model based on the graphic core information. The implementation of this application scheme can effectively improve the efficiency of rendering virtual luminous body.)

一种虚拟发光体的渲染方法及相关设备

技术领域

本申请涉及计算机技术领域,具体而言,本申请涉及一种虚拟发光体的渲染方法及相关设备。

背景技术

在一些场景体验的程序或网页中,如3D游戏程序或网页,一般构造有一个视觉上接近真实世界的虚拟环境,使得用户在使用该程序时可以获得真切的体验感。其中,虚拟环境一般由多种元素组合而成,如天空、陆地、海洋等。在渲染虚拟天空时,还涉及到多种叠加的元素,如天空背景、太阳、月亮、星星、云层等。

在现有技术中,针对虚拟天空中太阳、月亮等发光体进行渲染时,一般是基于由人工预先绘制或拍摄的与发光体有关的素材在产品中进行渲染获得。该方法的实施对前期绘制或拍摄的要求非常高;同时渲染所得的虚拟发光体属于静态元素,难以配合动态环境进行调整,后期维护的成本较高,且用户体验感较差。

发明内容

本申请提供的技术方案旨在至少能解决上述的技术缺陷之一。其中,技术方案如下:

在本申请的第一方面,提供了一种虚拟发光体的渲染方法,包括:

获取预设渲染模型上各顶点法线的向量信息;

获取虚拟发光体的入射光线向量信息;

基于所述各顶点法线的向量信息与入射光线向量信息,确定虚拟发光体的图形核心信息;

基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体。

结合第一方面,本申请在第一方面的第一种实施方式中,所述基于所述各顶点法线的向量与入射光线向量信息,确定虚拟发光体的图形核心信息,包括:

基于所述各顶点法线的向量信息确定各像素点法线的向量信息;

针对每一像素点,对该像素点法线的向量信息与入射光线向量信息进行点乘计算,得到虚拟发光体点值;

将超过预设阈值的所述虚拟发光体点值设置为预设数值,将该预设数值对应像素点所在位置确定为虚拟发光体的图形核心位置。

结合第一方面的第一种实施方式,本申请在第一方面的第二种实施方式中,所述将超过预设阈值的所述虚拟发光体点值设置为预设数值,包括:

通过区间限定函数调整所述虚拟发光体点值的数值范围;

将超过预设阈值的调整后的所述虚拟发光体点值设置为预设数值。

结合第一方面的第一种实施方式,本申请在第一方面的第三种实施方式中,还包括:

获取虚拟发光体的预设光晕色值;

基于所述虚拟发光体点值与预设光晕色值,确定虚拟发光体的光晕信息;

所述基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体,包括:基于所述图形核心信息与光晕信息在所述预设渲染模型上渲染包括光晕的虚拟发光体。

结合第一方面的第三种实施方式,本申请在第一方面的第四种实施方式中,所述基于所述虚拟发光体点值与预设光晕信息,确定虚拟发光体的光晕信息,包括:

将执行n次方运算后的所述虚拟发光体点值与所述预设光晕色值相乘,得到各个像素点对应的虚拟发光体的光晕信息;

其中,n的数值越大,虚拟发光体的光晕范围越大。

结合第一方面、第一方面的第一种实施方式、第二中实施方式中的任一项,本申请在第一方面的第五种实施方式中,所述基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体,包括:

基于预设着色色值处理所述图形核心信息在预设渲染模型上对应的区域,获得着色后的渲染区域;

获取预设纹理图,并在所述渲染区域上渲染所述预设纹理图,获得带有纹理效果的虚拟发光体;

其中,在所述渲染区域上渲染所述预设纹理图,获得带有纹理效果的虚拟发光体,包括:

将所述预设纹理图在所述预设渲染模型上进行渲染,生成具有纹理效果的虚拟天空画面;

在所述虚拟天空画面上针对所述渲染区域进行底色剔除操作,生成具有纹理效果的虚拟发光体;

其中,将所述预设纹理图在所述预设渲染模型上进行渲染,生成具有纹理效果的虚拟天空画面,还包括:

基于预设时间增幅与预设渲染模型上各像素点的坐标信息,对所述虚拟天空画面进行偏移处理,生成具有移动效果的虚拟天空画面。

结合第一方面的第五种实施方式,本申请在第一方面的第六种实施方式中,所述获取预设纹理图,包括以下任一项:

获取预存储的二维灰度纹理图作为预设纹理图;

采用分形布朗运动算法,基于预设渲染模型的顶点UV坐标信息和顶点法线坐标信息中的至少一种,构建预设纹理图。

在本申请的第二方面,提供了一种虚拟发光体的渲染装置,包括:

第一获取模块,用于获取预设渲染模型上各顶点法线的向量信息;

第二获取模块,用于获取虚拟发光体的入射光线向量信息;

确定模块,用于基于所述各顶点法线的向量信息与入射光线向量信息,确定虚拟发光体的图形核心信息;

生成模块,用于基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体。

在本申请的第三方面,提供了一种电子设备,电子设备包括:

一个或多个处理器;

存储器;

一个或多个计算机程序,其中一个或多个计算机程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行第一方面提供的虚拟发光体的渲染方法。

在本申请的第四方面,提供了一种计算机可读存储介质,计算机存储介质用于存储计算机指令,当计算机指令在计算机上运行时,使得计算机可以执行第一方面提供的虚拟发光体的渲染方法。

本申请提供的技术方案带来的有益效果是:

在本申请中,通过获取到的预设渲染模型上各顶点法线的向量信息,以及虚拟发光体的入射光线向量信息,确定出虚拟发光体的图形核心信息,进而基于该图形核心信息在预设渲染模型上渲染虚拟发光体;本申请方案的实施相较于现有技术而言,其无需任何人工预处理的素材,且可以随着动态环境的调整,基于相应的入射光线向量信息调整图形核心信息,进而调整在预设渲染模型上渲染所得虚拟发光体的位置,实现虚拟发光体在虚拟天空中的动态变化效果,有利于提高用户体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种虚拟发光体的渲染方法的流程图;

图2为本申请实施例提供的一种预设渲染模型的示意图;

图3为本申请实施例提供的一种虚拟发光体入射光线与预设渲染模型之间的位置关系示意图;

图4为本申请实施例提供的一种顶点与像素点位置的示意图;

图5为本申请实施例提供的一种虚拟发光体的渲染方法的运行环境示意图;

图6为本申请实施例提供的一种虚拟发光体的渲染装置的结构示意图;

图7为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在相关技术中,针对虚拟天空中太阳、月亮等发光体进行渲染时,一般是基于由人工(如美工人员)预先绘制或拍摄的与发光体有关的素材在产品中进行渲染获得。该方法的实施对前期绘制或拍摄的要求非常高;同时渲染所得的虚拟发光体属于静态元素(渲染得到虚拟发光体的效果是固定的,无法通过调整参数控制相应的展示效果),难以配合动态环境进行调整,后期维护的成本较高,且用户体验感较差。

为解决上述至少一个问题,本申请提供一种虚拟发光体的渲染方法及相关设备。下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

本申请实施例中提供了一种虚拟发光体的渲染方法,如图1所示,图1示出了本申请实施例提供的一种虚拟发光体的渲染方法的流程示意图,其中,该方法可以由任一电子设备执行,如可以是用户终端或服务器,用户终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。客户端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,但本申请并不局限于此。具体地,该方法包括下述步骤S101-S104:

步骤S101:获取预设渲染模型上各顶点法线的向量信息。

具体地,预设渲染模型可以用于构建虚拟环境中与虚拟天空相关的各种元素。虚拟环境可以是指各类程序(如小程序、安装在终端上的应用程序)在终端上运行时或通过终端网页浏览在线网页时显示的虚拟环境;该虚拟环境可以是模仿真实世界设计而成,也可以是虚构而成的环境;适应于不同网络、应用或策划的需求,虚拟环境可以是二维的,也可以是三维的。其中,预设渲染模型可以是由呈球形、方形或任意不规则形状的网状结构形成;该模型可以包括半球体模型(如图2所示),由至少两条在维度方向(如图2所示的横向)上布设的第一线条和至少两条在经度方向(如图2所示的纵向)上布设的第二线条构成;顶点包括第一线条和第二线条的交汇点。

其中,顶点法线可以是顶点对应的法线;在本申请实施例中,由于一个顶点可能涉及多个面(如图2所示,可能存在一个顶点涉及四个面的情况,也可能存在一个顶点涉及两个面的情况,或者处于最顶端的顶点可能涉及N个面的情况,N=第二线条数量*2),因此一个顶点可能对应多条适应不同面的法线,为提高本申请实施例运算的精准度,顶点法线具体可以指代一个顶点所对应多条法线的均值法线,如多条法线分别对应有各自的向量,顶点法线的向量取多条法线向量的均值。

其中,顶点法线向量信息可以包括表征方向和长度的信息。

可选地,预设渲染模型以及在该模型上各顶点法线的向量信息可以是在执行本申请实施例之前预构建的,可以用于构建各种与虚拟天空相关的元素(如太阳、月亮、云层等元素);另,预设渲染模型以及在该模型上各顶点法线的向量信息也可以是在执行本申请实施例的起始阶段适应虚拟发光体构建的。本申请对此不做限定。

步骤S102:获取虚拟发光体的入射光线向量信息。

具体地,虚拟发光体可以是指在虚拟天空中发光的物体元素,例如真实生活环境中太阳、月亮、星星等在视觉上具有发光效果的物体相应构造的元素。

其中,如图3所示,虚拟发光体的入射光线可以是指虚拟发光体相对预设渲染模型而言的入射光线,该入射光线一般是由天光、平行光、太阳光等形成,其具有的属性信息可以包括:方向信息、颜色信息和强度信息;可以理解的是,入射光线没有对应的位置信息。

步骤S103:基于各顶点法线的向量信息与入射光线向量信息,确定虚拟发光体的图形核心信息。

具体地,图形核心信息可以是表征虚拟发光体在预设渲染模型上所在的区域。其中,图形核心信息可以包括虚拟发光体在预设渲染模型上的中心位置,也可以包括基于该中心位置扩展的中心区域;即虚拟发光体在预设渲染模型上所呈现的并非仅是一个小点,而是基于这个小点所扩展的一个区域。其中,图形核心信息是由预设渲染模型上提供的各顶点法线的向量信息结合虚拟发光体对应的入射光线向量信息所确定,将在后续实施例中具体说明如何基于各顶点法线和入射光线分别对应的向量信息求图图形核心信息。

步骤S104:基于图形核心信息在预设渲染模型上渲染虚拟发光体。

具体地,基于图形核心信息可以知悉虚拟发光体在预设渲染模型上的位置,此时可以考虑将图形核心信息所对应的区域基于虚拟发光体的属性进行确定相应的颜色进行渲染;如虚拟发光体对应呈现为太阳时,可以确定该区域颜色为白色进行渲染;即可以根据实际情况的需要,调整该区域所需渲染的颜色,如对应落日时,可以将该区域渲染成赤红色、橙红色等。可选地,可以通过调整该区域的RGB色值(颜色参数)调整在预设渲染模型上渲染所得的虚拟发光体的呈现效果。

下面结合图2-3针对与预设渲染模型相关的内容进行说明。

在一实施例中,步骤S101中获取预设渲染模型上各顶点法线的向量信息,包括以下步骤A1-A2:

步骤A1:获取在虚拟环境中用于构建虚拟天空画面的预设渲染模型,预设渲染模型上各个顶点的顶点坐标信息。

具体地,由于预设渲染模型为立体模型,因此在预设渲染模型上各个顶点的顶点坐标信息包括三维坐标信息(x,y,z)。在基于预设渲染模型设立坐标原点时,可以基于球体模型的顶端位置点或核心位置点设立,也可以在其他任意位置设立,本申请实施例对此不作限定。其中,各个顶点的顶点坐标信息包括网格中所有第一线条和第二线条的交汇点对应的三维坐标信息。

步骤A2:基于顶点坐标信息与各个顶点对应的法线,确定各个顶点法线的向量信息。

具体地,各个顶点对应的法线可能包括多条,如一个顶点涉及四个面(如图2所示,一个面可能对应四个顶点,也可能对应三个顶点)时,该顶点可能对应有四条法线,则可以基于该顶点的坐标信息和所有对应的法线,求取该顶点法线的向量信息(可以是单位向量);最终确定出的顶点法线的向量信息可以为某一顶点所对应多条法线的均值向量信息。

下面针对确定虚拟发光体的图形核心信息的具体过程进行说明。

在一实施例中,步骤S103中基于所述各顶点法线的向量与入射光线向量信息,确定虚拟发光体的图形核心信息,包括以下步骤B1-B3:

步骤B1:基于所述各顶点法线的向量信息确定各像素点法线的向量信息。

具体地,如图4所示,通过步骤S101得到顶点A的顶点法线的向量信息与顶点B的顶点法线的向量信息后,求取顶点A和顶点B之间某一像素点C的像素点法线的向量信息时,可以基于下述公式(1)进行:

其中,公式(1)可以表征线性插值的计算过程,NC为像素点C对应的像素点法线的向量信息,NA为顶点A对应的顶点法线的向量信息,NB为顶点B对应的顶点法线的向量信息。

步骤B2:针对每一像素点,对该像素点法线的向量信息与入射光线向量信息进行点乘计算,得到虚拟发光体点值。

具体地,在进行虚拟发光体渲染时,可能涉及到多个像素点,因此本申请实施例中针对预设渲染模型上各个像素点进行计算,其计算过程可以表达如下公式(2)所示:

sundot=dot(sundir,normal)

......公式(2)

其中,公式(2)中,sundir为入射光线的向量信息,normal为像素点法线的向量信息,sundot为进行点乘计算得到的虚拟发光体点值,此时虚拟发光体点值为一具体的浮点型数值(float)。

可选地,本申请实施例中,针对像素点法向的向量信息和入射光线向量信息进行计算时,还可以采用叉乘等计算方式,本申请实施例对此不作限定。

步骤B3:将超过预设阈值的所述虚拟发光体点值设置为预设数值,将该预设数值对应像素点所在位置确定为虚拟发光体的图形核心位置。

具体地,可以将属于同一预设数值的虚拟发光体点值对应的像素点所在的位置确定为虚拟发光体的图形核心位置;一般而言,该区域进行渲染后成圆形布设。

在一可行的实施例中,考虑到降低计算复杂度,与后续步骤确定图形核心信息的准确性,步骤B3中将超过预设阈值的所述虚拟发光体点值设置为预设数值,可以包括以下步骤B31-B32:

步骤B31:通过区间限定函数调整所述虚拟发光体点值的数值范围;

具体地,采用区间限定函数clamp将sundot值进行重置,调整其数值在0到1的区间范围之内。

步骤B32:将超过预设阈值的调整后的所述虚拟发光体点值设置为预设数值。

具体地,当将预设渲染模型上对应的各个像素点确定出的虚拟发光体点值进行重置后,可以将超过预设阈值的点值设置为同一预设数值;例如,当重置虚拟发光体点值在0-1之间时,可以将大于等于0.9995的所有虚拟发光体点值设置为1,则将存在多个数值为1的虚拟发光体点值。此时可以将虚拟发光体点值为1对应的像素点所在位置均确定为虚拟发光体对应的图形核心位置(通过图形核心信息进行表征,具体为像素点的坐标值)。

可以理解的是,当入射光线的方向与像素点法线方向一致(平行光)时,虚拟发光体点值为1;当入射光线的方向与像素点法线法向的夹角越大时,虚拟发光体点值越小,且最终趋向于0。另外,预设阈值的设置可以调整虚拟发光体的核心大小。可选地,还可以传入额外的颜色参数,改变图形核心信息所表征的虚拟发光体的颜色。

下面针对渲染虚拟发光体对应光晕的具体过程进行说明。

在一实施例中,为了提升虚拟发光体在整个虚拟环境中呈现的视觉效果,本申请提供的虚拟发光体的渲染方法还包括以下步骤C1-C2:

步骤C1:获取虚拟发光体的预设光晕色值。

其中,预设光晕色值sunoutcolor可以通过RGB色值进行设定,当采用的预设光晕色值与图形核心信息中所表征的颜色数值相同时,可以呈现从虚拟发光体的中心向外过渡(颜色逐渐变浅);当采用的预设光晕色值与图形核心信息中所表征的颜色数值不同时,可以明显区分虚拟发光体中核心与光晕,呈现出类似动漫的展示效果。

步骤C2:基于所述虚拟发光体点值与预设光晕色值,确定虚拟发光体的光晕信息。

具体地,可以基于虚拟发光体点值确定虚拟发光体的光晕范围,结合预设光晕色值可以呈现一种颜色渐变过渡的光晕视觉效果。

其中,光晕信息可以包括表征光晕对应的位置信息(坐标信息,体现为光晕的范围)与各个位置对应的光晕色值。

结合上述实施例,步骤S104中基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体,包括以下步骤D1:

在一实施例中,步骤C2中基于所述虚拟发光体点值与预设光晕色值,确定虚拟发光体的光晕信息,包括以下步骤C21:

步骤C21:将执行n次方运算后的所述虚拟发光体点值与所述预设光晕色值相乘,得到各个像素点对应的虚拟发光体的光晕色值;其中,n的数值越大,虚拟发光体的光晕范围越大。

具体地,由于虚拟发光体点值被重置在0-1的区间范围内,因此,当n值越大时,对应所得到的光晕范围越小;当n值越小时,对应所得到的光晕范围越大。举例说明,假设n=64,则0.9的64次方也已经趋向于0。

步骤D1:基于所述图形核心信息与光晕信息在所述预设渲染模型上渲染包括光晕的虚拟发光体。

具体地,可以结合图形核心信息所表征的虚拟发光体的核心所在位置与颜色色值,以及光晕信息所表征的虚拟发光体的光晕所在位置与颜色色值在预设渲染模型上进行虚拟发光体的渲染。

可以理解的是,上述渲染虚拟发光体对应光晕的过程可以用于渲染虚拟天空画面中的太阳,也即太阳作为一种虚拟发光体,本申请为提高其沉浸式的用户体验,使得效果呈现更为逼真,在渲染得到太阳核的基础上,进一步渲染太阳光晕。

在一可行的实施例中,虚拟发光体可以是月亮也可以太阳,由于月亮与太阳的区别在于是否存在光晕,因此,本申请实施例可以结合时间参数,设定在不同的时间段分别渲染太阳和月亮。如以24小时为例,设定在6:00-18:00对应的时间段内,渲染带有光晕的虚拟发光体(太阳);设定在18:01-05:59对应的时间段内,渲染不具有光晕效果的虚拟发光体(月亮)。

可选地,还可以在同一时间段内同时渲染月亮和太阳,此时,可以通过调整入射光线向量信息,分别确定月亮与太阳在预设渲染模型上对应的区域。如将入射光线向量信息A确定太阳对应的图形核心信息A1,将入射光线向量信息B确定月亮对应的图形核心信息B1,在此基础上,基于图形核心信息A1和B1,分别在预设渲染模型上渲染太阳和月亮,形成在同一虚拟天空画面中同时出现月亮和太阳的效果。

下面针对虚拟发光体为月亮的情况提供一种具体的渲染方法。

在一实施例中,步骤S104中基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体,包括以下步骤E1-E2:

步骤E1:基于预设着色色值处理所述图形核心信息在预设渲染模型上对应的区域,获得着色后的渲染区域。

具体地,预设着色色值可以是一个RGB色值,该色值体现为月亮的颜色,如可以采用白色RGB(255,255,255)作为预设着色色值,将图形核心信息在预设渲染模型上对应的区域着色为纯白的一个渲染区域(在一些实施例中,还可以采用其他预设着色色值,本申请实施例对此不作限定)。其中,图形核心信息在预设渲染模型上对应的区域可以通过上述步骤S103相关的处理步骤进行确定。

步骤E2:获取预设纹理图,并在所述渲染区域上渲染所述预设纹理图,获得带有纹理效果的虚拟发光体。

具体地,预设纹理图可以是一个二维带有纹理效果的灰度图,其可以是由美工人员预先绘制的,也可以通过计算机设备实时执行绘制程序生成的。其中,带有纹理效果的虚拟发光体可以理解为在已经着色的渲染区域上叠加纹理效果,如已经着色的渲染区域可以体现为纯色的月亮底色,在该基础上叠加纹理效果后,形成具有环形山效果的月亮;环形山(crater)是指碗状凹坑结构的坑,可以理解的是在自然环境中,月球表面布满各种大小的凹坑,一般称为月坑,通过人眼进行观察时,可以看到具有环形山的月亮;也即本申请中环形山的效果通过预设纹理图进行处理。

可选地,步骤E2中获取预设纹理图包括以下步骤E21-E22中的任一项:

步骤E21:获取预存储的二维灰度纹理图作为预设纹理图。

具体地,二维灰度纹理图可以存储在数据库中,该图也可以是在渲染程序的同时缓存的数据。其中,预存储的二维灰度纹理图可以包括多幅,在一次渲染的过程中可以随机获取任意一副图作为预设纹理图进行处理。

步骤E22:采用分形布朗运动算法,基于预设渲染模型的顶点UV坐标信息和顶点法线坐标信息中的至少一种,构建预设纹理图。

具体地,分形布朗运动(Fractal Brown Motion,FBM)是一种描述布朗运动的数学模型,可以用于描述自然界中山脉、云层、地形地貌以及模拟星球表面等不规则的形状。在本申请中,采用分形布朗运动算法去生成噪声图以形成具有随机环形山地形的纹理图,在噪声图的生成中,本申请采用顶点UV坐标信息或者顶点法线坐标信息作为噪声图中的随机参数,以动态生成纹理图;其中,UV可以是指纹理贴图坐标,可以定义图片上每个点的位置信息,这些UV坐标点与预设渲染模型是相互联系的,UV可以理解为将图像上每一点精确对应到模型的表面。

可选地,步骤E2中在所述渲染区域上渲染所述预设纹理图,获得带有纹理效果的虚拟发光体,包括以下步骤F1-F2:

步骤F1:将所述预设纹理图在所述预设渲染模型上进行渲染,生成具有纹理效果的虚拟天空画面。

具体地,将预设纹理图在预设渲染模型上进行渲染可以理解为将预设纹理图贴图处理在模型上,其可以理解为一个二维到三维过程的转换;其中,具有纹理效果的虚拟天空画面的呈现可以理解为云层画面,也即可以通过预设纹理图在预设渲染模型上的处理得到云层效果。

可选地,在本申请中为了更好地提高渲染效果,提供一种云层动态变化的处理方案,具体地,步骤F1中将所述预设纹理图在所述预设渲染模型上进行渲染,生成具有纹理效果的虚拟天空画面,还包括步骤F12:

步骤F12:基于预设时间增幅与预设渲染模型上各像素点的坐标信息,对所述虚拟天空画面进行偏移处理,生成具有移动效果的虚拟天空画面。

具体地,为使得本申请生成的云层具有动态效果,可以结合时间参数进行处理,如随着时间的不断更新,形成一种虚拟天空画面发生移动的效果。其中,预设时间增幅可以是指间距多少时间进行偏移处理,如可以是1秒、0.1秒等。其中,基于各像素点的坐标信息对虚拟天空画面进行偏移处理可以是比如在设定时间内向各个方向偏移,如虚拟天空画面整体向左偏移,则像素点坐标信息中的X轴坐标值逐渐递减;如虚拟天空画面整体向右偏移,则像素点坐标信息中的X轴坐标值逐渐递增。

步骤F2:在所述虚拟天空画面上针对所述渲染区域进行底色剔除操作,生成具有纹理效果的虚拟发光体。

具体地,可以将虚拟天空画面上渲染区域所在的纹理进行保留,删除其他区域的纹理,进而将渲染区域的着色和纹理进行处理,形成在整个天空画面上仅保留具有纹理效果的虚拟发光体(月亮)。可选地,还可以直接将渲染区域的着色和纹理进行处理,形成在整个天空画面上包括云层以及具有纹理效果的虚拟发光体(月亮)。其中,对渲染区域的着色和纹理进行处理的操作包括在已经着色的渲染区域上,仅保留预设纹理图上的纹理,剔除预设纹理图上除纹理以外的其他区域像素点。

本申请的实施无需人工预先处理的素材,可以直接基于算法、代码逻辑进行处理,其中,入射光线向量信息、图形核心信息中的颜色色值、预设光晕色值、预设阈值等,均为可调整参数,通过动态调整各项参数,可以实现动态变化的虚拟发光体的效果,从视觉效果上提高用户体验。

下面针对本申请提供的虚拟发光体的渲染方法的具体运行过程进行说明。

在一实施例中,如图5所示,本申请实施例在运行环境中可能涉及到终端400、网络300、服务器200和数据库500。本申请实施例提供的方法执行主体可以是终端400,也可以是服务器200。

具体地,预设渲染模型和虚拟发光体的入射光线向量信息可以是存储在数据库500中的数据,在进行虚拟发光体的渲染时,可以由终端400通过网络300向服务器200发起渲染请求,由服务器200向数据库500获取相关的信息后进行处理,最终渲染得到虚拟发光体后,将相关数据通过网络300下发至终端200进行展示。该方法的处理通过应用云计算的计算力,可以有效降低用户终端的运行压力。其中,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。其中,数据库500可视为电子化的文件柜,即存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

具体地,本申请实施例提供的方法还可以由终端400执行,其中预设渲染模型和入射光线向量信息可以是存储在终端400的存储器中,也可以是存储在数据库500中。

本申请实施例提供了一种虚拟发光体的渲染装置,如图6所示,该虚拟发光体的渲染装置600可以包括:第一获取模块601、第二获取模块602、确定模块603、渲染模块604。

其中,第一获取模块601,用于获取预设渲染模型上各顶点法线的向量信息;第二获取模块602,用于获取虚拟发光体的入射光线向量信息;确定模块603,用于基于所述各顶点法线的向量信息与入射光线向量信息,确定虚拟发光体的图形核心信息;生成模块604,用于基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体。

在一实施例中,确定模块603在执行所述基于所述各顶点法线的向量与入射光线向量信息,确定虚拟发光体的图形核心信息的步骤时,还用于执行以下步骤:

基于所述各顶点法线的向量信息确定各像素点法线的向量信息;

针对每一像素点,对该像素点法线的向量信息与入射光线向量信息进行点乘计算,得到虚拟发光体点值;

将超过预设阈值的所述虚拟发光体点值设置为预设数值,将该预设数值对应像素点所在位置确定为虚拟发光体的图形核心位置。

在一实施例中,确定模块603用于执行所述将超过预设阈值的所述虚拟发光体点值设置为预设数值的步骤时,还用于执行以下步骤:

通过区间限定函数调整所述虚拟发光体点值的数值范围;

将超过预设阈值的调整后的所述虚拟发光体点值设置为预设数值。

在一实施例中,第二获取模块603还用于执行以下步骤:

获取虚拟发光体的预设光晕色值;

基于所述虚拟发光体点值与预设光晕色值,确定虚拟发光体的光晕信息;

其中,渲染模块604执行所述基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体的步骤时,还用于执行以下步骤:基于所述图形核心信息与光晕信息在所述预设渲染模型上渲染包括光晕的虚拟发光体。

在一实施例中,第二获取模块602用于执行所述基于所述虚拟发光体点值与预设光晕信息,确定虚拟发光体的光晕信息的步骤时,还用于执行以下步骤:

将执行n次方运算后的所述虚拟发光体点值与所述预设光晕色值相乘,得到各个像素点对应的虚拟发光体的光晕信息;

其中,n的数值越大,虚拟发光体的光晕范围越大。

在一实施例中,第一获取模块601用于执行所述获取预设渲染模型上各顶点法线的向量值的步骤时,还用于执行以下步骤:

获取在虚拟环境中用于构建虚拟发光体的预设渲染模型,以及所述预设渲染模型上各个顶点的顶点坐标信息;

基于所述顶点坐标信息与各个顶点对应的法线,确定各个顶点法线的向量信息。

在一实施例中,所述预设渲染模型由至少两条在维度方向上布设的第一线条和至少两条在经度方向上布设的第二线条构成;所述顶点包括所述第一线条和第二线条的交汇点。

在一实施例中,渲染模块604用于执行基于所述图形核心信息在所述预设渲染模型上渲染虚拟发光体时,具体用于:

基于预设着色色值处理所述图形核心信息在预设渲染模型上对应的区域,获得着色后的渲染区域;

获取预设纹理图,并在所述渲染区域上渲染所述预设纹理图,获得带有纹理效果的虚拟发光体;

其中,在所述渲染区域上渲染所述预设纹理图,获得带有纹理效果的虚拟发光体,包括:

将所述预设纹理图在所述预设渲染模型上进行渲染,生成具有纹理效果的虚拟天空画面;

在所述虚拟天空画面上针对所述渲染区域进行底色剔除操作,生成具有纹理效果的虚拟发光体;

其中,将所述预设纹理图在所述预设渲染模型上进行渲染,生成具有纹理效果的虚拟天空画面,还包括:

基于预设时间增幅与预设渲染模型上各像素点的坐标信息,对所述虚拟天空画面进行偏移处理,生成具有移动效果的虚拟天空画面。

在一实施例中,渲染模块604用于执行获取预设纹理图时,具体用于执行以下任一项:

获取预存储的二维灰度纹理图作为预设纹理图;

采用分形布朗运动算法,基于预设渲染模型的顶点UV坐标信息和顶点法线坐标信息中的至少一种,构建预设纹理图。

本申请实施例的装置可执行本申请的实施例所提供的方法,其实现原理相类似,本申请各实施例中的装置中的各模块所执行的动作是与本申请各实施例中的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应的方法中的描述,此处不再赘述。

本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:在本申请中,通过获取到的预设渲染模型上各顶点法线的向量信息,以及虚拟发光体的入射光线向量信息,确定出虚拟发光体的图形核心信息,进而基于该图形核心信息在预设渲染模型上渲染虚拟发光体;本申请方案的实施相较于现有技术而言,其无需任何人工预处理的素材,且可以随着动态环境的调整,基于相应的入射光线向量信息调整图形核心信息,进而调整在预设渲染模型上渲染所得虚拟发光体的位置,实现虚拟发光体在虚拟天空中的动态变化效果,有利于提高用户体验。

在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备700包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。可选地,电子设备700还可以包括收发器704,收发器704可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器704不限于一个,该电子设备700的结构并不构成对本申请实施例的限定。

处理器701可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。

总线702可包括一通路,在上述组件之间传送信息。总线702可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线702可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器703可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

存储器703用于存储执行本申请方案的应用程序代码(计算机程序),并由处理器701来控制执行。处理器701用于执行存储器703中存储的应用程序代码,以实现前述方法实施例所示的内容。

其中,电子设备包括但不限于:智能手机、平板电脑、笔记本电脑、智能音箱、智能手表、车载设备等。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的虚拟发光体的渲染方法。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:实现虚拟家居产品布局场景的方法及虚拟现实系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!