一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种对象渲染方法、装置及着色器与流程

2021-11-05 23:19:00 来源:中国专利 TAG:


1.本技术属于计算机技术领域,尤其涉及一种对象渲染方法、装置及着色器。


背景技术:

2.高尔夫游戏有一系列主题的高尔夫球,在游戏过程中或游戏对象上架展览时,需对高尔夫球进行渲染展示。
3.传统的解决方案,利用游戏引擎,如unity 3d游戏引擎对高尔夫球按实时光方式进行光照及计算处理,并基于光照计算结果对高尔夫球进行渲染展示,然而,该方式使用繁多的灯光组件并通过复杂的计算过程来实现对高尔夫球的光照效果渲染,导致性能上有一定的消耗,且无法满足定制光照方案的需求。


技术实现要素:

4.有鉴于此,本技术提供了一种对象渲染方法、装置及着色器,用于通过一种基于非实时光照的对象渲染方案,来至少节省由引擎按实时光照方式进行对象渲染带来的性能消耗。
5.具体技术方案如下:
6.一种对象渲染方法,所述方法包括:
7.获取待渲染的对象的显示特征信息及虚拟光源的光照信息;
8.根据所述显示特征信息及所述光照信息,确定所述对象的直接光照颜色、漫反射光照量和在高光光照区域的高光光照量;
9.根据所述直接光照颜色、所述漫反射光照量和所述高光光照量,确定所述对象的光照结果;
10.基于所述光照结果,对所述对象进行光照效果渲染。
11.可选的,所述获取待渲染的对象的显示特征信息及虚拟光源的光照信息,包括:
12.获取所述对象的主纹理贴图的颜色、漫反射光颜色、漫反射光强度、高光强度、高光颜色及主纹理贴图透明度;
13.获取所述虚拟光源的灯光颜色及光照方向。
14.可选的,所述根据所述显示特征信息及所述光照信息,确定所述对象的直接光照颜色、漫反射光照量和在高光光照区域的高光光照量,包括:
15.根据所述对象的主纹理贴图的颜色及虚拟光源的灯光颜色,确定所述对象的直接光照颜色;
16.根据所述虚拟光源的光照方向与所述对象的漫反射光颜色、漫反射光强度,确定所述对象的正反两面的漫反射光照量;
17.确定所述对象的高光光照区域,并根据所述对象的高光强度、高光颜色及主纹理贴图透明度确定所述对象在所述高光光照区域的高光光照量;
18.所述根据所述直接光照颜色、所述漫反射光照量和所述高光光照量,确定所述对
象的光照结果,包括:
19.叠加所述直接光照颜色、所述漫反射光照量和所述高光光照量,得到所述对象的光照结果。
20.可选的,所述根据所述对象的主纹理贴图的颜色及虚拟光源的灯光颜色,确定所述对象的直接光照颜色,包括:
21.计算所述对象的主纹理贴图上不同像素的颜色值与虚拟光源的颜色值的乘积,得到所述对象的主纹理贴图上不同像素的直接光照颜色。
22.可选的,所述根据所述虚拟光源的光照方向与所述对象的漫反射光颜色、漫反射光强度,确定所述对象的正反两面的漫反射光照量,包括:
23.计算所述对象的正反两面不同位置在世界空间下的法线方向和所述虚拟光源的光照方向的点积;
24.将不同点积的点积结果与所述对象的漫反射光颜色、漫反射光强度相乘,得到所述对象的正反两面的漫反射光照量。
25.可选的,所述确定所述对象的高光光照区域,包括:
26.根据视角方向与所述虚拟光源的光照方向,确定半角向量,通过所述半角向量表征所述对象的高光光照区域;
27.所述根据所述对象的高光强度、高光颜色及主纹理贴图透明度确定所述对象在所述高光光照区域的高光光照量,包括:
28.将所述高光强度、所述高光颜色、所述主纹理贴图透明度和半角向量与所对应法线方向的点积结果相乘,得到所述高光光照量。
29.可选的,在根据所述直接光照颜色、所述漫反射光照量及所述高光光照量,确定所述对象的光照结果之前,还包括:
30.根据所述对象的主纹理贴图上不同像素的颜色与所述对象的自发光颜色,确定所述对象上不同像素点的自发光光照量。
31.所述根据所述直接光照颜色、所述漫反射光照量及所述高光光照量,确定所述对象的光照结果,包括:
32.叠加所述直接光照颜色、所述漫反射光照量、所述高光光照量和所述自发光光照量,得到所述对象的光照结果。
33.可选的,所述基于所述光照结果,对所述对象进行光照效果渲染,包括:
34.确定所述对象的当前状态;所述当前状态为半透明状态或非透明状态;
35.利用与所述当前状态匹配的目标渲染通道,并基于所述光照结果,对所述对象进行光照效果渲染;
36.其中,对象的不同状态对应不同的渲染通道,不同的渲染通道分别基于不同的透明度对对象进行光照效果渲染。
37.一种对象渲染装置,包括:
38.获取模块,用于获取待渲染的对象的显示特征信息及虚拟光源的光照信息;
39.第一确定模块,用于根据所述显示特征信息及所述光照信息,确定所述对象的直接光照颜色、漫反射光照量和在高光光照区域的高光光照量;
40.第二确定模块,用于根据所述直接光照颜色、所述漫反射光照量和所述高光光照
量,确定所述对象的光照结果;
41.渲染模块,用于基于所述光照结果,对所述对象进行光照效果渲染。
42.一种着色器,所述着色器中实现有计算机指令集,所述计算机指令集被处理器执行时实现如上任一项所述的对象渲染方法。
43.根据以上方案可知,本技术实施例提供的对象渲染方法、装置及着色器,在对对象进行光照效果渲染时,通过传入虚拟光源的光照信息如光照方向、颜色等,来替代实时光方式,并将光照分为直接光照、漫反射和高光反射这几个部分,来模拟真实光照情况,在此基础上,计算对象的上述各个部分的光照情况,并综合各部分的光照情况得到对象的最终光照结果,从而,本技术提出了一简化的光照模型,基于该简化的光照模型对对象进行非实时光照下的光照效果渲染,与现有技术通过在游戏场景中放置复杂灯光组件,并由游戏引擎按实时光方式对对象进行复杂光照计算及渲染展示的方案相比,可大幅降低由引擎实时光照处理带来的性能消耗,且可满足定制光照方案的需求。
附图说明
44.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
45.图1是本技术实施例提供的对象渲染方法的一流程示意图;
46.图2是本技术实施例提供的计算对象的直接光照、漫反射和高光反射这几个部分的光照情况的处理流程图;
47.图3和图4分别是本技术实施例提供的半透明渲染通道与非透明渲染通道下高尔夫球的光照渲染效果图;
48.图5是本技术实施例提供的对象渲染方法的另一流程示意图;
49.图6是本技术实施例提供的对象渲染装置的结构示意图。
具体实施方式
50.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
51.在unity3d游戏引擎中,灯光组件包括方向光、点光源、区域光等类型。传统的实时光照渲染方式为:向游戏场景中放置上述灯光组件实现对游戏对象如高尔夫球的实时光照,由unity(实时内容开发平台)引擎基于上述各种类型灯光组件的实时光照信息进行统一的光照计算处理并渲染。该实时光方式会使用较为复杂的计算,性能上有一定的消耗,且无法满足定制光照方案的需求。
52.为解决上述问题,本技术实施例公开一种对象渲染方法、装置及着色器。通过以非实时光照形式构建一种简化的光照模型,来降低由引擎实时光照计算带来的性能消耗。需要说明的是,此处的“非实时”体现在区别于unity内置的基于实时光的计算方式,而非指在
进行光照计算及光照效果渲染时“处理时效”方面的非实时性。
53.本技术实施例公开的对象渲染方法的处理流程如图1所示,至少包括:
54.步骤101、获取待渲染的对象的显示特征信息及虚拟光源的光照信息。
55.待渲染的“对象”,可以是指但不限于电子游戏等场景中高尔夫球、足球、乒乓球等球体的虚拟模型,本技术将主要以高尔夫球为例,进行方案说明。
56.本实施例中,虚拟光源并非真实的灯光组件,不会对游戏等场景中的待渲染对象产生实时光,即,通过引入虚拟光源的光照信息而非基于实时光方式,来对对象进行光照计算。且本实施例中的虚拟光源可以根据对象自身的颜色(如白色的高尔夫球、橙色的乒乓球等)智能动态调整其灯光颜色信息,以形成对对象的凸显效果。
57.本步骤101,所获取的待渲染对象的显示特征信息,包括但不限于对象的主纹理贴图的颜色、漫反射光颜色、漫反射光强度、高光强度、高光颜色及主纹理贴图透明度。所获取的虚拟光源的光照信息,包括但不限于虚拟光源的灯光颜色及光照方向。
58.步骤102、根据获取的对象的显示特征信息及虚拟光源的光照信息,确定对象的直接光照颜色、漫反射光照量和在高光光照区域的高光光照量。
59.将光照分为直接光照、漫反射和高光反射这几个部分,来模拟真实光照情况。参见图2,计算对象的直接光照、漫反射和高光反射这几个部分的光照情况的处理过程可实现为:
60.步骤201、根据对象的主纹理贴图的颜色及虚拟光源的灯光颜色,确定对象的直接光照颜色。
61.本实施例通过计算对象的主纹理贴图上不同像素的颜色值与虚拟光源的灯光颜色值的乘积,得到对象的主纹理贴图上不同像素的直接光照颜色。实施中,可在对象的主纹理贴图上进行像素采样,并将各采样像素的颜色值与虚拟光源的颜色值进行乘积运算,运算结果即作为对象的直接光照颜色。
62.具体的,在物理原理上,人眼感知到的物体的颜色,取决于照射到物体上的光线经过物体反射之后,入眼部分的光线对人眼结构的刺激。比如,看到绿色的叶子,是因为绿叶对太阳光/其他光源的绿色波段的光进行了反射,而对其他颜色波段的光进行了吸收,反射到人眼的光为绿色波段的光。基于此原理,本技术通过将主纹理贴图的颜色值与虚拟光源的灯光颜色值进行乘积来模拟该反射过程,并将模拟该反射过程计算得到的直接光照颜色作为对象的主光照量,主光照量能用于表征光源照射到对象(如,球体)之后对象的主要颜色信息。
63.步骤202、根据虚拟光源的光照方向与对象的漫反射光颜色、漫反射光强度,确定对象的正反两面的漫反射光照量。
64.具体的,可计算对象的正反两面不同位置在世界空间下的法线方向和虚拟光源的光照方向的点积,并将点积结果与对象的漫反射光颜色、漫反射光强度相乘,得到对象的正反两面的漫反射光照量。
65.其中,法线方向和虚拟光源的光照方向的点积,本质是确定上述两个方向的夹角是否超过了90
°
,如果超过,点积的结果则为负值,否则则为正值,本实施例通过点积结果的正负,来表示相对于人眼/摄像机拍照的位置,光照的方向是否背光,如果光照方向在对象(如球体虚拟模型)相对于人眼/摄像机的位置的背面,则这两个向量的夹角会超过90
°
。另
外,点积结果除了包含正负信息(以表征方向),还包含数值信息,本实施例通过将其包含的数值信息参与运算,来衡量正反两面的漫反射光照量的大小。
66.步骤203、确定对象的高光光照区域,并根据对象的高光强度、高光颜色及主纹理贴图透明度确定对象在高光光照区域的高光光照量。
67.本实施例具体根据视角方向与虚拟光源的光照方向,确定半角向量。其中,半角向量指光照方向和视角方向的角平分线,即两向量相加结果取单位向量。
68.本实施例中,半角向量的计算是用来计算高光光照区域,即通过半角向量来表征对象的高光光照区域。
69.在此基础上,进一步将对象的高光强度、高光颜色、主纹理贴图透明度和半角向量与法线方向的点积结果相乘,得到对象的高光光照量。
70.步骤103、根据确定出的直接光照颜色、漫反射光照量和高光光照量,确定对象的光照结果。
71.最终,通过叠加计算所得的直接光照颜色、漫反射光照量、高光光照量,得到对象的光照结果。
72.本实施例基于上述各个步骤的计算方式,通过传入虚拟光源的光照方向和颜色信息等,实现了一个简化的光照模型,该模型为一区分于引擎实时光方式的非实时光照模型,实施中,可将该模型应用在shader(著色器)中实现定制化的光照计算方案。
73.步骤104、基于对象的光照结果,对对象进行光照效果渲染。
74.高尔夫等球体游戏有一系列主题的高尔夫球,申请人发现,在游戏中,高尔夫球等球体渲染有两个特点:
75.1)需要能够实现果岭击球未拉球时、和被遮挡时的半透明状态,ui展示和3d场景中的非透明态展示;
76.2)光照方面,要求高尔夫球在不同的视角下(如,ui展示、运动、旋转过程中的各种视角)能有很好的光照效果并且能支持调参,同时要求节省由引擎实时光照计算带来的性能消耗。
77.基于此,本技术实施例在通过上述的非实时光照模型,支持对象在不同视角下有很好的光照效果并且支持调参的基础上,进一步针对对象的半透明与非透明这两种状态,提供双渲染通道(双pass)的渲染方案,其中,一个通道负责对半透明状态的对象(如高尔夫球)进行光照效果渲染,另一通道负责对非透明状态的对象进行光照效果渲染。
78.从而,在通过光照模型计算出对象的光照结果后,本实施例进一步判定对象的当前状态为半透明还是非透明,并利用与对象当前状态匹配的目标渲染通道,基于计算出的光照结果,对对象进行光照效果渲染。其中,对象的不同状态对应不同的渲染通道,不同的渲染通道分别基于不同的透明度对对象进行光照效果渲染。
79.参见图3与图4,分别为本技术实施例提供的半透明渲染通道与非透明渲染通道下高尔夫球的光照渲染效果。
80.实施中,具体可根据对象所处的场景信息(如,是否被遮挡、是否处于果岭击球未拉球场景,是否处于ui展示场景等等),和/或对象自身的运动状态信息(如,处于静止状态,还是移动、旋转状态等),来确定对象应具备的半透明或非透明状态。对于半透明状态的渲染通道,其在对对象进行渲染时,所采用的透明度高于非透明状态的渲染通道采用的透明
度。
81.由以上方案可知,本技术实施例提供的对象渲染方法,在对对象进行光照效果渲染时,通过传入虚拟光源的光照信息如光照方向、颜色等,来替代实时光方式,并将光照分为直接光照、漫反射和高光反射这几个部分,来模拟真实光照情况,在此基础上,计算对象的上述各个部分的光照情况,并综合各部分的光照情况得到对象的最终光照结果,从而,本技术提出了一简化的光照模型,基于该简化的光照模型对对象进行非实时光照下的光照效果渲染,与现有技术通过在游戏场景中放置复杂灯光组件,并由游戏引擎按实时光方式对对象进行复杂光照计算及渲染展示的方案相比,可大幅降低由引擎实时光照处理带来的性能消耗,且可满足定制光照方案的需求。
82.在一实施例中,参见图5提供的对象渲染方法的处理流程,本技术公开的对象渲染方法在步骤105之前还可以包括:
83.步骤501、根据对象的主纹理贴图上不同像素的颜色与对象的自发光颜色,确定对象上不同像素点的自发光光照量。
84.本实施例中,针对某些场景主题,为对象配置自发光效果,如圣诞主题下,为高尔夫球配置荧光效果、或火焰效果等,针对该情况,在对对象进行光照效果渲染时,同时结合引入其自发光光照量。
85.其中,具体可根据对象的主纹理贴图上不同像素的颜色(如,各采样像素的颜色)与对象的自发光颜色,来计算对象上不同像素点的自发光光照量。
86.在此基础上,如图4所示,上述的步骤103可进一步实现为:
87.步骤103’、叠加对象的直接光照颜色、漫反射光照量、高光光照量和自发光光照量,得到对象的光照结果。
88.即,在对象光照结果的计算中,进一步引入对象的自发光光照量。
89.对应于上述的对象渲染方法,本技术实施例还公开一种对象渲染装置,该装置的组成结构如图6所示,具体包括:
90.获取模块601,用于获取待渲染的对象的显示特征信息及虚拟光源的光照信息;
91.第一确定模块602,用于根据所述显示特征信息及所述光照信息,确定所述对象的直接光照颜色、漫反射光照量和在高光光照区域的高光光照量;
92.第二确定模块603,用于根据所述直接光照颜色、所述漫反射光照量和所述高光光照量,确定所述对象的光照结果;
93.渲染模块604,用于基于所述光照结果,对所述对象进行光照效果渲染。
94.在一实施方式中,获取模块601,具体用于:
95.获取所述对象的主纹理贴图的颜色、漫反射光颜色、漫反射光强度、高光强度、高光颜色及主纹理贴图透明度;
96.获取所述虚拟光源的灯光颜色及光照方向。
97.在一实施方式中,第一确定模块602,具体用于:
98.根据所述对象的主纹理贴图的颜色及虚拟光源的灯光颜色,确定所述对象的直接光照颜色;
99.根据所述虚拟光源的光照方向与所述对象的漫反射光颜色、漫反射光强度,确定所述对象的正反两面的漫反射光照量;
100.确定所述对象的高光光照区域,并根据所述对象的高光强度、高光颜色及主纹理贴图透明度确定所述对象在所述高光光照区域的高光光照量;
101.第二确定模块603,具体用于:
102.叠加所述直接光照颜色、所述漫反射光照量和所述高光光照量,得到所述对象的光照结果。
103.在一实施方式中,第一确定模块602,在根据所述对象的主纹理贴图的颜色及虚拟光源的灯光颜色,确定所述对象的直接光照颜色时,具体用于:
104.计算所述对象的主纹理贴图上不同像素的颜色值与虚拟光源的颜色值的乘积,得到所述对象的主纹理贴图上不同像素的直接光照颜色。
105.在一实施方式中,第一确定模块602,在根据所述虚拟光源的光照方向与所述对象的漫反射光颜色、漫反射光强度,确定所述对象的正反两面的漫反射光照量时,具体用于:
106.计算所述对象的正反两面不同位置在世界空间下的法线方向和所述虚拟光源的光照方向的点积;
107.将不同点积的点积结果与所述对象的漫反射光颜色、漫反射光强度相乘,得到所述对象的正反两面的漫反射光照量。
108.在一实施方式中,第一确定模块602,在确定所述对象的高光光照区域时,具体用于:根据视角方向与所述虚拟光源的光照方向,确定半角向量,通过所述半角向量表征所述对象的高光光照区域;
109.第一确定模块602,在根据所述对象的高光强度、高光颜色及主纹理贴图透明度确定所述对象在所述高光光照区域的高光光照量时,具体用于:
110.将所述高光强度、所述高光颜色、所述主纹理贴图透明度和半角向量与所对应法线方向的点积结果相乘,得到所述高光光照量。
111.在一实施方式中,第一确定模块602,还用于:
112.根据所述对象的主纹理贴图上不同像素的颜色与所述对象的自发光颜色,确定所述对象上不同像素点的自发光光照量。
113.第二确定模块603,具体用于:叠加所述直接光照颜色、所述漫反射光照量、所述高光光照量和所述自发光光照量,得到所述对象的光照结果。
114.在一实施方式中,渲染模块604,具体用于:
115.确定所述对象的当前状态;所述当前状态为半透明状态或非透明状态;
116.利用与所述当前状态匹配的目标渲染通道,并基于所述光照结果,对所述对象进行光照效果渲染;
117.其中,对象的不同状态对应不同的渲染通道,不同的渲染通道分别基于不同的透明度对对象进行光照效果渲染。
118.对于本技术实施例公开的对象渲染装置而言,由于其与上文方法实施例公开的对象渲染方法相对应,所以描述的比较简单,相关相似之处请参见上文相应方法实施例的说明即可,此处不再详述。
119.另外,本技术实施例还公开一种着色器,着色器中实现有计算机指令集,且该计算机指令集被处理器执行时实现如上任一方法实施例公开的对象渲染方法。
120.实际应用中,可通过插件等形式,将本技术实施例的着色器应用于游戏等场景中,
以对游戏等场景中的对象进行光照效果渲染。
121.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
122.为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
123.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
124.最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
125.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献