原文: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)

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

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

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

    我们使用PlayCanvas做了一个"掂球"的小游戏,在这个小游戏中玩家需要点击落下的足球使之停留在空中. 本教程包含如下主题: 1 场景(Scene)和层级(Hierarchy) ...

  2. 使用PlayCanvas制作一个简单的小游戏(三)

    原文:http://developer.playcanvas.com/zh/tutorials/beginner/keepyup-part-three/ 游戏脚本和输入 在场景的根实体Game上绑定了 ...

  3. 使用PlayCanvas制作一个简单的小游戏(四)

    原文: 足球 足球是掂球游戏的焦点.它响应玩家的输入,响应环境(如重力),发出声音等.它也许是游戏中最复杂的部分.幸运的是,我们会尽可能的深入浅出. ball.js pc.script.attribu ...

  4. 用turtle库制作一个简单的小游戏《鸡子大战篮球》

    刚上大学,学习python不到两月半,连简单的字典.元组数据类型都还没有捂熟.这不刚好python小组作业是用turtle库画自己喜欢的图案吗,在我们小组的努力下我们画好了5只小只因,于是我就大胆的进 ...

  5. Java制作一个简单地小游戏

    package 代码部分; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import jav ...

  6. unity编写一个简单的小游戏

    unity编写一个简单的小游戏 简易fly bird的制作 关于flybird 场景的搭建和素材的导入 使用素材搭建game和scene 制作柱体 bird的script column的sprite ...

  7. 使用小程序制作一个飞机大战小游戏

    此文主要基于微信小程序制作一个飞机大战小游戏,上手即用,操作简单. 一.创建小程序 二.页面实现 三.代码块 一.创建小程序 访问微信公众平台,点击账号注册. 选择小程序,并在表单填写所需的各项信息进 ...

  8. c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  9. 一个简单的c 游戏编程语言,编程达人 c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

最新文章

  1. 成功输出消息后的采购订单不能取消审核
  2. 启明云端分享| 基于ESP32-S2模块的彩屏86盒应用,有哪些亮点呢
  3. 模板:后缀数组(SA)
  4. 学习手记(2018.9.15~2018.11.10)——备战NOIP2018
  5. Java Message System简介
  6. 在域环境下搭建samba服务器
  7. 03|复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
  8. 华为全球第一、荣耀中国前二!余承东宣布新目标:苹果三星怎么看?
  9. Java 故障安全异常处理
  10. 赛尔号桌面版_赛尔号手游电脑版
  11. Nik Collection 5 Mac,最新PS滤镜插件套装
  12. 了解RecyclerView的分割线
  13. c# 使用谷歌身份验证GoogleAuthenticator的示例
  14. python发微信消息_利用python实现微信消息自动提醒
  15. 老站长心语:网站由小到大的建站经历
  16. Html--判断客户端类型
  17. UML一篇文章就学通!
  18. Frontiers | 北林邬荣领/何晓青-网络作图揭示拟南芥与叶际微生物组互作机制
  19. 学校计算机申请报告,【体育器材申请报告】_学校体育器材申请报告格式及范文...
  20. 你会copying了吗?(Effective C++ 12 复制对象时勿忘其每一个成分)

热门文章

  1. 有趣的灵魂千篇一律,电脑滑动关机,仅需2步
  2. Confluence创建自动填充序列表格
  3. xnio-nio解决方法
  4. Java 校验注解的使用、自定义校验注解
  5. 2020最新的web前端体系和路线图,想学web前端又不知道从哪开始的快来瞧一瞧呀
  6. 卷积神经网络CNNs详解参考----MNIST
  7. MAC安装视频播放器MPV
  8. (R)机器学习--学习笔记--第四章节学习笔记
  9. AnyConnect Windows系统的使用教程
  10. MySQL数据库实现主主同步