使用PlayCanvas制作一个简单的小游戏(二)

原文:http://developer.playcanvas.com/zh/tutorials/beginner/keepyup-part-two/


设置材质

在这个游戏中,我们尽可能的使用了简单的图形,所以没有过多的设置项。尽管如此,我们仍然需要为足球、背景和覆盖层设置材质资源。

什么是材质?

材质是Playcanvas中的一类资源,它描述了当三维模型应该如何在屏幕上渲染。材质决定了表面的颜色,并且决定了模型表面与光源交互的方式。举例来说,一块光滑金属的材质,还是粗糙的橡胶?PlayCanvas有一种内置的物理材质,可以满足你90%对材质的需求。随着您不断的进阶,您有可能需要使用GLSL着色器代码来创建您自己的材质。

Cubemap

在我们介绍材质之前,我们需要先设置cubemap资源。Cubemap是一种由立方体六个面上的6种纹理贴图组成的资源。你可以认为它代表了场景所在环境的最远点。PlayCanvas物理材质可以使用cubemap来实现基于图像的照明。它使用cubemap中的颜色为场景中的材质照明。比如,在我们的场景中,cubemap由蓝天和绿草地表面构成。因此,足球的上面将呈现蓝色,而下面则是绿色。


为了使用cubemap,先要在New Asset菜单中创建一个Cubemap资源,然后指定6个纹理贴图,对应cubemap的每一面。当cubemap的所有面都指定了纹理贴图后,点击Prefilter按钮。Prefilter对于cubemap的正常工作是必须的。

足球材质


足球是我们从PlayCanvas Asset Library上导入的三维模型。尽管足球材质一般已经为您配置好了,但您可能仍需做几处改动。让我们看看足球使用的各种映射map吧。

漫反射Diffuse


漫反射定义了表面的颜色。这里就是足球上的黑白色。

环境Environment


我们得先介绍环境,因为我们需要看看反射效果。环境设置可以通过将Cubemap资源拖拽到材质的cubemap槽上来完成。

反射Specular


反射部分的设置决定了材质如何与光线交互。有两种反射的工作流程,一种是“金属工作流”,另一种是“镜面反射工作流”,在文档中可以找到更多的相关信息。我们对足球使用金属,所以请勾选“Use Metalness”选项。由于我们的足球并不是金属做的,所以我们要将Metalness的滑块向0方向滑动。然后,使用反光滑块调整材质的光滑度。这里我们设置到大约中间的位置,这使得足球变得足够闪亮,其表面又不是完全的光滑。

法线(Normal)


我们使用的最后一种材质映射是法线映射。法线映射用来为模型增加更多细节。这样一来,足球上不同的小块无需单独几何建模(仍然是一个光滑的球体),而是在法线上映射。这意味着,只要这些小块存在,足球就可以正常的被照亮,而没有额外绘制多边形所带来的开销。


背景材质


背景材质相当简单,只有一个纹理映射。

自发光(Emissive)


自发光映射设置了表面的发光颜色,就像是那块区域发出那种颜色的光一样。这意味着,场景中的光源不会影响这个发光表面的亮度。注意,一个自发光的材质不会影响场景中的其他物体,因为实际上并没有光发射出来。

这种情况下,我们不希望静止场景的背景被照亮。所以我们使用自发光映射来达到这一目的。

覆盖材质(Overlay Material)


覆盖材质比背景材质还要简单,这里我们只需要在自发光属性中设置颜色即可。






猜你喜欢

转载自blog.csdn.net/christiedong10/article/details/51649412