(四)Unity纹理、贴图和材质

(四)Unity纹理、贴图和材质,第1张

在Unity中,我们可以这样理解:Material(材质)包含Map(贴图),Map包含Texture(纹理)。

首先在工程中创建一个Terrain(地形)和一个Cube(立方体),然后我们基于这两个物体来深入学习什么是纹理、贴图和材质。

下面我们添加一个地形纹理和一个LOL泳池派对纹理。(其实就是)

我们来学习一下纹理的Inspector视图中都有什么属性功能,以“泳池派对”为例。

效果如下:

详情如下:

Texture:纹理
Normal map:法线贴图

(游戏场景中譬如雕刻这种3D细节,如果做3D模型的话,就会浪费显示芯片,使游戏性能下降,便会用法线贴图,既不影响玩家体验游戏又不影响游戏性能)

Editor GUI and Legacy GUI:编辑器的GUI和传统的GUI
Sprite(2D and UI):精灵
Cursor:设为光标
Cubemap:立方体贴图
Cookie:聚光灯贴图
Lightmap:光照贴图
Advanced:高级选项(当你想要有纹理的具体参数并想拥有纹理的完全控制的时候选择该项)

UV坐标:水平方向是U,竖直方向是V。因为(纹理)是一个二维的平面,所以只需要UV坐标便可以确定的位置。(当然也有三维贴图,要用到UVW坐标,暂时还接触不到。)

贴图:一种就是就是把纹理通过UV坐标映射到3D物体的表面,另一种就是把纹理加入一些功能,这两种都是贴图。贴图具有 UV 坐标属性或者一些功能,而纹理没有。

我们把Terrain加上纹理,此时这个名为“地形”的纹理就成为了Terrain的贴图。

Shader负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。

将输入的贴图或者颜色,加上对应的Shader,以及对Shader的特定的参数设置,将这些打包在一起就是一个材质了。之后,我们便可以将材质赋予合适的renderer(渲染器)来进行渲染。

点击Create,添加一个材质和一个物理材质。

选色:

上色:

Dynamic Friction:动摩擦系数
Static Firction:静摩擦系数
Bounciness:d性系数
Friction Combine:联动摩擦
Bounce Combine:联动反d

Average:取平均值。
Minimum:取最低值。
Multiply:取相乘值。
Maximum:取最大值。

如果你想让物体的材质变成透明的话 , 你需要重新创建一个颜色
Color old = The_lightrenderermaterialcolor;
The_lightrenderermaterialcolor = new Color(oldr, oldg, oldb, 0f);

Unity自带的好多好包,新建项目时可以都勾选上,这样项目里面就会有你想要的大部分东西,
当你熟悉每个包里有那些对应的东西后,再次新建 项目 时就可以选需要的一此包,而不用全选。
如果还觉得不够 ,可以找开菜单-》Windows-》Assets Store上面有好多的资源,

谢谢。
不过其实我的是类似合图的:因此要用ugui中设置texture
type为sprite(2d
and
ui),这样才能有sprite
mode为mutiple来进行切图。
不知道对于这种方式黑色背景的素材如何转变成透明的背景的。

很简单。产生白边是因为,你的透明贴图(或者你使用的是alpha通道)的边界虽然看上去和颜色贴图的轮廓重合,但是因为像素精度的问题,还是会露出半个像素的背景色,而你画的颜色贴图的背景色是白色,所以会有隐隐的白边。解决法:你只需要把背景色改成和颜色贴图一样或相近的颜色就可以了。比如,你画的是绿色的树叶,可以有不同程度的绿,可以有叶脉纹路,但是,整体还是绿色,那么,你就把背景底色换成相近的绿色。这样,理论上,应该出现的隐隐的白边变成了“绿边”。但是因为颜色相近,就看不出问题了。如果有其他原因,不允许改背景色的话,可以把你的颜色图画的比透明贴图的轮廓稍微大那么一圈(大2个像素以上就行),也就OK了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13388922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存