《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)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • U8转U16_u8 u16

    U8转U16_u8 u16两个U8快速转U16,在8位单片机中基本就是两个MOV

    2022年10月15日
  • pycharm快捷运行_pycharm打开python项目

    pycharm快捷运行_pycharm打开python项目秒速打开pycharm方法安装了pycharm以后,常常感觉到打开软件时非常的慢,因此,需要给pycharm分配更多的运行内存。提速方法如下首先找到pycharm安装路径下Bin文件夹中的“pycharm64.exe.vmoptions”或者“pycharm.exe.vmoptions”文件。根据自己的电脑配置(64位系统还是32位系统)选择相应的文件。其次,将-server-Xms128m-Xmx512m修改为:-server-Xms1024m-Xmx2048m最后重启pycha

  • MD5hash_郑州市解封

    MD5hash_郑州市解封[#11]torbendotegmoseatgmaildotcom[2009-03-2211:40:43]HOTPAlgorithmthatworksaccordingtotheRCFhttp://tools.ietf.org/html/draft-mraihi-oath-hmac-otp-04ThetestcasesfromtheRCFdocument…

  • 金士顿有2t的u盘吗_群联3110主控

    金士顿有2t的u盘吗_群联3110主控最近新买的金士顿DT101G2U盘用老版本的群联检测工具GETinfo如GETinfov3.2.9.2会不认识MP的版本,一般会显示为MPv48.30.30,而使用新版本的如GETinfov3.5.7.2会显示MPALLv3.13.0B或MPALLv3.12.0A等。而这些版本网上都无释出版本的量产工具,怎么办呢,很多人都不知道该怎么选择量产工具的版本了。这里根据我成功…

  • websocket 实现长连接原理「建议收藏」

    websocket 实现长连接原理「建议收藏」一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通过这…

  • C#软件开发实例.个人定制自己的屏幕抓图工具(八)加入了截图功能键盘

    C#软件开发实例.个人定制自己的屏幕抓图工具(八)加入了截图功能键盘

发表回复

您的电子邮箱地址不会被公开。

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