1.本发明涉及计算机三维动画领域,具体涉及了一种游戏场景积雪渲染方法、装置及介质。
背景技术:2.游戏场景设计中往往有针对各个天气环境搭建不同的场景模型,为了丰富游戏中的天气,气候效果,在下雪天的时候,需要场景上的地表和物件能表现出对应的反馈,这是为了提升游戏画面的表现力和模拟真实性。
3.一般的做法是针对各个环境搭建对应的场景模型,如下雪时额外搭建雪地场景,这种逐个针对开发的方法效率过低,并且无法实现积雪效果的真实物理表现,以及,无法实现真实的扰动效果。
技术实现要素:4.本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了游戏场景积雪渲染方法、装置及介质,以实现项目类型的工作效率,使积雪效果更接近真实物理规律,提供更优的视觉效果展示。
5.本发明的技术方案包括一种游戏积雪场景渲染方法,其特征在于,包括以下步骤:s100,搭建基础场景模型,并划分一个以上的指定区域为积雪区;s200,在所述积雪区添加附加模型,并将该模型的显示状态设置为隐藏;s300,模拟游戏下雪场景,并检测所述基础场景模型表面的朝向角度,所述朝向角度为模型表面与水平面的夹角;s400,根据所述朝向角度设置积雪覆盖面积大小;s500,将所述附加模型的显示状态设置为显示,并设置所述附加模型的厚度。
6.根据所述的游戏积雪场景渲染方法,其中s300包括:s310,检测所述基础场景模型表面的各个三角面;s320,获取各个所述三角面的法线与水平面的夹角,即为所述基础场景模型表面的朝向角度。
7.根据所述的游戏积雪场景渲染方法,其中朝向角度的取值范围为0
°
至90
°
,以及,通过所述朝向角度及着色器为积雪的附加模型执行对应的雪色显示权重分配及动态显示,其中所述朝向角度通过着色器获取积雪的附加模型的点乘像素的法线和世界的上方向可以得到像素法线和世界上方向的夹角的余弦值,根据余弦值计算所述朝向角度。
8.根据所述的游戏积雪场景渲染方法,其中积雪覆盖面积大小与所述朝向角度为正相关,所述朝向角度越大,所述积雪覆盖面积越大。
9.根据所述的游戏积雪场景渲染方法,其中s400还包括:s410,根据各个模型的所述朝向角度,设置对应的积雪覆盖面积大小;s420,根据积雪覆盖面积基于随机规则生成对应的积雪形状。
10.根据所述的游戏积雪场景渲染方法,其中随机规则为在所述积雪生成中增加图层扰动,其中图层扰动通过在着色器中添加噪声图,通过噪声图每个像素的采样数值及显示
权重的乘积生成对应的雪色值,根据噪声图对积雪的附加模型进行对应的扰动显示。
11.根据所述的游戏积雪场景渲染方法,其中s500还包括:s51、设置所述附加模型的显示状态为显示,并根据游戏系统中的下雪时长和/或降雪量大小设置所述附加模型的厚度;s52、在着色器中调节所述附加模型的厚度。
12.本发明的技术方案还包括一种游戏积雪场景渲染的装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现任一所述的方法步骤。
13.本发明的技术方案还包括一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现任一所述的方法步骤。
14.本发明的有益效果为:根据模型面法线的朝向计算积雪的权重,使积雪效果更接近真实物理规律;对通过法线计算出来的积雪权重进行随机扰动,给积雪效果增加了随机性和差异化;通过控制积雪模型网格显示隐藏以及大小,模拟积雪到达一定厚度后的效果。
附图说明
15.下面结合附图和实施例对本发明进一步地说明;
16.图1所示为根据本发明实施方式的总体流程图。
17.图2a,2b所示为根据本发明实施方式的雪色权重示意图。
18.图3所示为根据本发明实施方式的扰动噪声示意图。
19.图4所示为根据本发明实施方式的装置介质图。
具体实施方式
20.本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
21.在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
22.在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。
23.本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
24.术语解释:
25.shader:着色器。
26.图1所示为根据本发明实施方式的总体流程图。其流程包括:s100,搭建基础场景模型,并划分一个以上的指定区域为积雪区;s200,在积雪区添加附加模型,并将该模型的显示状态设置为隐藏;s300,模拟游戏下雪场景,并检测基础场景模型表面的朝向角度,朝向角度为模型表面与水平面的夹角;s400,根据朝向角度设置积雪覆盖面积大小;s500,将附加模型的显示状态设置为显示,并设置附加模型的厚度。其中的s300包括:检测基础场景模型表面的各个三角面;获取各个三角面的法线与水平面的夹角,即为基础场景模型表面
的朝向角度。朝向角度的取值范围为0
°
至90
°
。积雪覆盖面积大小与朝向角度为正相关,朝向角度越大,积雪覆盖面积越大。s400还包括:根据各个模型的朝向角度,设置对应的积雪覆盖面积大小;根据积雪覆盖面积基于随机规则生成对应的积雪形状。随机规则为在积雪生成中增加图层扰动,用于增加积雪分布的不规律性。s500还包括:设置附加模型的显示状态为显示,并根据游戏系统中的下雪时长和/或降雪量大小设置附加模型的厚度;在shader中调节附加模型的厚度。
27.图2a,2b所示为根据本发明实施方式的雪色权重示意图。美术人员使用3d建模工具制作的3d模型中包含了模型网格的顶点信息,顶点的法线信息,顶点的纹理坐标信息等。在图形引擎渲染这些模型的时候,这些信息会被组织进入gpu。通过编写shader代码,在执行时可以获取到这些信息。
28.shader执行有两个主要的阶段:顶点处理阶段,像素处理阶段。而的积雪效果的上色就是在像素阶段执行的。在进入像素处理阶段,gpu会根据一个三角面的三个顶点的法线信息,通过内部的插值运算得到整个三角面上所有像素的法线信息传入到像素处理阶段,从而在像素处理阶段中可以获取到每一个像素的法线方向,参考图2a。
29.法线方向是一个三维矢量,通过点乘像素的法线和世界的上方向可以得到像素法线和世界上方向的夹角的余弦值。根据余弦值可以求得夹角的角度,参考图2b。夹角0度表示像素所在位置平面正朝上,为雪色最重的地方,夹角90度,表示像素所在位置平面为正垂直面,为雪色最淡的地方。所以,可以把夹角从90度到0度转换成一个0到1.0的雪色权重值,(如夹角45度对应权重值0.5)。用权重值去控制雪色在像素上的叠加。
30.对于图2a,gpu根据三角面的3个顶点法线信息(n0,n1,n2),插值计算得到完整的一个三角面上所有像素的法线,如图2a中的像素p法线n;对于图2b,通过对像素法线n和世界正上方向u点乘,得到n和u夹角的余弦值,再通过反三角函数求得n和u的夹角角度θ。
31.参考图3,单纯的雪色叠加效果会过于同质化.比如一大片平整的朝上平面通过法线计算叠加雪色后颜色都是一样的(一大片白),没有厚薄的随机性.此时我们通过给像素shader传入一张噪声图。
32.通过采样这张噪声图,对前面计算得到的雪色进行扰动。比如,对于某像素,根据法线计算的雪色权重是0.7,经过扰动(乘上从噪声图采样的数值,比如0.9),最后雪色权重就是0.7*0.9=0.63。
33.经过噪声图的扰动,同样法线朝向的像素雪色会有差异,对于一大片朝上平面的雪色不会是同一个颜色。通过增加的差异化,使积雪效果更真实。
34.图4所示为根据本发明实施方式的装置示意图。装置包括存储器100及处理器200,其中处理器200存储有计算机程序,计算机程序用于执行:搭建基础场景模型,并划分一个以上的指定区域为积雪区;在积雪区添加附加模型,并将该模型的显示状态设置为隐藏;模拟游戏下雪场景,并检测基础场景模型表面的朝向角度,朝向角度为模型表面与水平面的夹角;根据朝向角度设置积雪覆盖面积大小;将附加模型的显示状态设置为显示,并设置附加模型的厚度。其中,存储器100用于存储数据。
35.上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。