原文: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)
覆盖材质比背景材质还要简单,这里我们只需要在自发光属性中设置颜色即可。