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

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)。

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

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)。
时间: 2024-11-02 20:02:11

《Unity开发实战》——3.5节创建透明纹理贴图的相关文章

《Unity开发实战》——3.4节创建高光纹理贴图

3.4 创建高光纹理贴图有些表面可能既有光滑的区域,又有粗糙的区域,为了达到这个效果,可以使用高光贴图(specular maps). 3.4.1 准备工作为了便于讲解,本节将创建一个生锈的金属材质来演示specular属性如何增强现实.如果读者还没有用于生成高光材质的基础纹理,示例代码中名为"0423_03_03"的文件夹中有本节需要用到的素材. 3.4.2 操作步骤请按照下面的步骤创建高光材质:1)创建一个新的材质,命名为:rustyMetalMaterial.2)选择此材质.在I

《Unity开发实战》——导读

目 录 前 言 第1章 Unity 4.X 入门1.1 引言1.2 安装Unity 4.X1.3 设置首选项1.4 了解和优化用户界面1.5 把Unity中创建的资源另存为Prefab1.6 了解Unity中的Content1.7 导入自己的Content1.8 导入Unity的包到项目中1.9 导入自定义包到项目中1.10 从项目中导出自定义包1.11 添加自定义包到Unity的包快捷列表中1.12 使用项目浏览视图 第2章 使用摄像机2.1 引言2.2 创建画中画效果2.3 在不同摄像机之间

《Unity着色器和屏幕特效开发秘笈》—— 2.6 在Unity编辑器中创建程序纹理贴图

2.6 在Unity编辑器中创建程序纹理贴图 有时你为了创建更多不一样的效果,需要动态创建纹理或者在运行时修改它们的像素值,这种情况通常被称为程序性的纹理效果.不同于你在图像编辑软件中手动制作一些新纹理,你需要在一个二维空间中创建一组像素然后将其应用到一个新的纹理上.再将创建的新纹理传入到着色器中,使它们可以在着色器中进行计算.这种技术在已有的纹理贴图上进行绘图是非常有用的,我们使用动态创建纹理贴图的方式可以制造一种玩家和游戏环境之间的互动效果.也可以用它来制作一些贴花的效果,或者创建一些可以在

《Unity开发实战》——3.2节创建反射材质

3.2 创建反射材质金属.车漆,以及光滑的塑料表面都是一些很常见的需要反射的材质的例子.幸运的是,Unity内置了反射着色器(reflective shader),配置好以后就可以帮我们实现想要的效果了. 3.2.1 准备工作本节需要准备两个纹理贴图:Base Map(底图)和Reflection Cubemap(反射立方图).底图得是一张RGBA的图片,alpha通道可以把反射级别指定成从完全不透明(黑色)到完全反射(白色).反射立方体贴图可能是由六块纹理组成,或者像本节教程这样,只有一个单独

《Unity开发实战》——3.3节创建自发光材质

3.3 创建自发光材质自发光材质可以用于模拟很多对象,从LED手机显示屏到未来主义的Tron套装上.本节我们将学习如何配置自发光材质以及它的纹理贴图. 3.3.1 准备工作因为本节将创建一个LCD显示屏的例子,所以请读者确认已经安装这种字体.如果尚未安装,可以在网站www.dafont.com下载几个免费的LCD字体. 3.3.2 操作步骤请按照下面的步骤创建自发光材质:1)创建一个材质,命名为LCDMaterial.在Project视图中点击Create下拉菜单并选择Material(材质)是

《Unity开发实战》——1.5节把Unity中创建的资源另存为Prefab

1.5 把Unity中创建的资源另存为Prefab在Unity中很容易就能创建基础几何对象,本节中,使用Unity的资源创建一个游戏对象(GameObject)然后将其在项目中另存为Prefab(预设). 1.5.1 操作步骤请按照下面的步骤创建Prefab(预设):1)在Unity编辑器中,依次打开 GameObject(游戏对象)| Create Other(创建其他)| Sphere(球体).2)在Hierarchy视图中,右击Sphere,在弹出菜单中选择rename(重命名)改名为"C

《Unity开发实战》——3.1节引言

第3章制作贴图和材质 3.1 引言大多数材质都需要纹理贴图,贴图实际上就是位图文件(不考虑文件扩展名),创建贴图需要用到图片编辑器,如Adobe Photoshop(它基本上是行业标准了,Unity也支持它的原生格式).GIMP等.为了方便本节的学习,强烈建议安装这类软件.在保存纹理贴图时,尤其是带有alpha通道的贴图,可能需要选择一个合适的文件格式.PSD是Photoshop的原生格式,对于分层保存原始插图很实用.TGA格式也可以保存alpha通道,但是图层会被拼合(flattened).在

《Unity开发实战》——3.8节通过GUI实时组合纹理

3.8 通过GUI实时组合纹理avatar的自定义往往包括选择一个或多个纹理来定义外观.本节中将实现一个GUI,此GUI通过组合两个纹理通道让玩家创建自己的avatar. 3.8.1 准备工作本节需要的3D对象和图片文件在0423_03_07 文件夹的selectTexture 包中. 3.8.2 操作步骤请按照下面的步骤叠加纹理:1)把为名selectTexture 的包导入到项目中.2)打开名为 selTextScene的场景.3)创建基础纹理:在Project 视图中,用下拉菜单创建一个材

《Unity开发实战》——3.9节鼠标悬停时高亮显示材质

3.9 鼠标悬停时高亮显示材质高亮对象是让玩家知道这个对象可以交互的最有效的方式.在拼图游戏和点击式冒险游戏中很有用,3D用户界面中也可以用. 3.9.1 准备工作本节中需要一个 3D 模型和一个 2D 纹理贴图,也可以直接导入0423_03_08文件夹中名为highlight的包. 3.9.2 操作步骤请按照下面的步骤实现鼠标悬停时高亮材质:1)导入包,并打开highlightScene 场景.2)在Hierarchy 视图中,选择 3D 对象让其高亮(名为highlightCube).3)在