《Unity开发实战》——3.5节创建透明纹理贴图

《Unity开发实战》——3.5节创建透明纹理贴图

大家好,又见面了,我是全栈君。

本节书摘来自华章社区《Unity开发实战》一书中的第3章,第3.5节创建透明纹理贴图,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.5 创建透明纹理贴图
如果想让玩家的视线穿透一个物体,则需要透明或半透明的材质。塑料薄膜、剪贴画、网格等人工产品是可以用透明纹理贴图制作的。

3.5.1 准备工作
本节会创建一个材质来模拟塑料薄膜,选它的主要原因是这种材质允许我们使用全透明制作边框的rounded borders,也可以使用半透明显示薄膜(film)本身。本节其余部分假设读者已经能够使用图片编辑器创建图片,比如一张有斜面的圆角矩形图片。如果不会操作,随时使用示例代码中名为“0423_03_04”的文件夹中的准备材料。

3.5.2 操作步骤
请按照下面的步骤创建透明材质:
1)创建一个纹理,命名为:slideMaterial。
2)选择此材质。在Inspector视图中,在材质的名称下,使用下拉菜单把Shader的值修改为Transparent/Diffuse(透明/漫反射):
3)用图片编辑器打开基础纹理(本节用Adobe Photoshop讲解下面的步骤)。
4)选择圆角矩形周围的空像素(通过Magic Wand工具,打开Anti-alias(反走样),Tolerance(容忍度)的值设为0)。



15c5ed23775b81b1010c49d10b8091b594d738c9

10)回到Alpha通道,填充选中的矩形亮灰区域(红、绿和蓝的值均在170左右。)



99fe70ee7673cd31c826676135aa15e232598fe5

3.5.3 实现原理
Unity可以读取纹理贴图的4个通道值:R(红)、G(绿)、B(蓝)和A(透明度)。
当用Alpha通道根据每个像素的亮度级别设置材质的透明度时,透明着色器使用RGB通道作为基础纹理。Cutout子分组(Cutout subgroup)中的透明着色器不渲染半透明,而只允许纹理像素是不可见或完全不透明的。

3.5.4 更多内容
Unity 有一系列透明着色器用于实现不同的效果。

  1. 使用Cutout
    透明着色器有一个子分组叫做Cutout,如果你不需要半透明的材质,可以用Cutout着色器。它们的渲染速度更快,并且允许对象投射(cast)和接收(receive)阴影。
  2. 使用凹凸的漫反射(Bumped Diffuse)
    要练习的话,把材质的Shader值修改成Transparent/Bumped Diffuse。然后把0423_03_04文件夹中的slideNormalTexture.png 图片文件作为一个法线凹凸贴图(normal bump map)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108355.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前端vscode必备插件推荐(墙裂推荐)「建议收藏」

    前端vscode必备插件推荐(墙裂推荐)「建议收藏」前言:vscode是一款强大的前端编辑软件,有些人说ws(webstorm)更好用,但是vs重在轻量级啊!!!而且根据自己的开发习惯安装适合自己的插件后,用起来简直不要太舒服了好嘛!!!首先呢,我先推荐的就是最基础的语言包,没办法,英语水平太捞了哈哈哈,弄起来后就舒服多了,汉语yyds~《Chinese(Simplified)(简体中文)Language》注释工具《ColorfulComments》不同的注释符能带来很多高亮的显示快速找到css定义位置并小窗口展示

    2022年7月25日
    14
  • 案例:EVE和ENSP对接LLDP协议「建议收藏」

    案例:EVE和ENSP对接LLDP协议「建议收藏」1.EVE与ENSP使用cloud对接LLDP协议(拓扑)2.思科开启LLDP(EVE需使用2018年后的L2/L3IOU才支持LLDP功能)Switch(config)#lldprun//思科全局运行开启lldpSwitch(config)#inte0/1Switch(config-if)#lldptransmitSwitch(config-if)#lldpreceive//接口下开启lldp传送与接受华为开启LLDP[Huawei]lldpenableInfo:Glo

    2022年5月5日
    87
  • Java: Hook技术[通俗易懂]

    Java: Hook技术[通俗易懂]一、什么是Hook  Hook翻译成中文就是勾子的意思,在java中它表示在事件到达终点前进行拦截或监控的一种行为。 二、Hook的实现实现hook我们必须要知道java的反射和动态代理。 1、反射  反射是java的查看、检测、修改自身的一种行为。  在编译阶段,编译器将我们编写的java文件编译成.class文件。而在运行期,jvm又将.class文件通过…

    2022年5月9日
    145
  • Python爬虫—-网页下载器和urllib2模块及对应的实例

    Python爬虫—-网页下载器和urllib2模块及对应的实例网页下载器:将互联网上URL对应的网页下载到本地的工具,是爬虫的核心组件未完。。。

    2022年5月8日
    39
  • 什么是java 前端_为什么很多人选择前端而不选择 Java?

    什么是java 前端_为什么很多人选择前端而不选择 Java?互联网常见的九种职业,和游戏中的角色一样,不同的职业都有不同的特点。前端和后端,不同的人感受完全不一样。从性别上来说,妹子更适合前端,汉子可能会更偏爱后端,但影响不是特别大,其中一个原因就在于是,后端做的事情,看不见,摸不着,需要有比较强的抽象思维能力。那什么是抽像思维能力呢?如果你会下象棋的话,我马二进四,你炮八进三,我马四退五,你象三进五,能不能在脑袋里想象出来是什么样子?如果不会下象期的话,…

    2022年7月7日
    23
  • python安装不了whl文件_Python安装whl文件过程图解

    python安装不了whl文件_Python安装whl文件过程图解Python安装whl文件过程图解这篇文章主要介绍了Python安装whl文件过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在命令指示符下(cmd)的Python3安装命令为:pip3install文件名.whl安装出错:matplotlib-2.0.0-cp34-cp34m-win_amd64.whlisnotasuppor…

    2022年5月29日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号