Unity Shader - Textures 纹理

目录:Unity Shader - 知识点目录(先占位,后续持续更新)
原文:Textures
版本:2019.1

Textures

通常一个Mesh(网格)对象作为大概的外观形状,加以纹理后,看起来可以提供外观细节。纹理图像供以Mesh表面使用。你可以认为一个纹理可用作是一个橡胶皮一样,纹理上的坐标与顶点位置设配好位置后,纹理将按坐标拉伸,以保证设配位置。纹理的定位是通过3D建模软件完成的,该软件用于创建网格。
Cylder with tree bark - 树皮纹理的圆柱体
Unity 可以导入大多数通用的图像文件格式。

Textures for use on 3D models

在3D模型中使用纹理

纹理应用于对象的Materials(材质)。材质中用以图像程序的称为Shaders,用于渲染网格表面。Shaders可实现光照和着色的效果来模拟光滑或是凹凸不平的表面。Shader中也可以同时使用多个纹理来组合使用以实现更多灵活可变的效果。

纹理的尺寸(宽高)都应该是2次幂(如:32x32,64x64,128x128,256x256,等等)。只要将纹理放在Unity项目的Assets文件夹下就可以了,然后这些资源将会显示在Project视图。

纹理经导入后,你就可以将它设置为 Material中使用了。材质可应用与网格,粒子系统,或GUI纹理。通过Import Settings(导入设置),可转化为Cubemap或Normalmap以在不同需求类型中使用。更多的相关导入纹理信息,请查阅Texture Component page

2D graphics

2D 图形
在2D游戏中,Sprites(精灵)是以平坦的网格中使用纹理来模拟对象的外观形状的。
Sprite from a 3D viewport
一个2D游戏中的对象可能需要许多的图片集合来呈现动画帧。此方法可以很方便的设计和渲染。查阅手册页面了解更多的Sprite Editor信息。

GUI

GUI一般我们也叫UI以简称

何为GUI,游戏的graphic user interface(GUI:用户的图形界面操作接口)一般由非场景内容交互的,而是允许用户选择或查看信息用的。例如,积分榜的显示、或是游戏的菜单界面中的菜单选项的UI。这些图形直观上就与场景中的网格表面很大不同,但它们也是用纹理来处理并呈现的。查阅手册GUI Scripting Guide来了解更多Unity GUI System的信息。

Particles

网格是用于显示不透明对象的好方法,但处理如:火焰、烟雾和魔法施法后留下的星光之类的就不太适合了。处理这类的话用Particle System(粒子系统)会更好。粒子一般用于呈现看似流体或气体的显示处理(流体或气体中很小块用一个粒子来呈现,以此多个来呈现整体),如:烟云。粒子创建后,并设置运动,随机参数选项,就可以呈现出令人惊叹的效果。如,你可以发射带有火焰纹理的粒子,以极快的速度从一个点中发射出去来呈现爆炸效果。瀑布的效果可以用一个水纹理的粒子从场景的高点到底点的加速下落来实现。
Star particle system
Unity particle system用于创建各式各样的流体效果是非常适合的。查阅手册Particle System以了解更多。

Terrain Heightmaps

Terrain(地形)高度贴图

纹理甚至用于你根本看不见的地方来实现很多功能。一张灰度图中,每个像素都是一个数值,该数值或许对应着shader处理图像时用到的灰度值(该值范围0.0~1.0,0为黑rgb:0,0,0,1为白rgb:1,1,1)。虽为图像纹理,但也是可以用于其他目的而使用的,特别是Terrain Heightmaps(地形高度图)中特别适合。

terrain是个地表呈现网格,每个地表点都有特定的高度。一个terrain的高度图存着的数值都是terrain grid(地形网格)采样高度用的,高度图中的每个像素点灰度值都对应着网格坐标。此图不用于显示,但用于terrain地形网格中转化为坐标值而使用的。

有趣的是,高度图不用于显示,但它们常用语图像处理技术中应用为高度数值而使用。例如,带有noise(噪点,临近高度像素之间的值得差值比较大)的高度图将可以创建出类似岩石的地形,平滑模糊的高度图可以创建平滑的过渡地形,从而产生更柔和、起伏的景观。

更多关于Unity terrians地形,查阅手册script-Terrain

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity Shader是一种用于在Unity引擎中创建和控制图形渲染效果的编程语言。通过使用Unity Shader,开发人员可以自定义游戏中各种物体的外观和行为,从而实现更加逼真和出色的视觉效果。 而热图(Heatmap)是一种用于显示某个区域内物体热度分布的视觉化工具。在游戏开发中,热图通常用于统计和分析玩家在游戏中的行为和偏好,以便开发人员可以根据这些数据进行游戏优化和改进。 为了创建一个热图效果,我们可以使用Unity Shader来实现。首先,我们需要将游戏中各个物体按照玩家与其的互动情况和频率进行区分,不同的行为和频率可以对应不同的颜色或者纹理。接着,我们可以在Shader中根据这些信息来着色和渲染物体,以展示物体的热度分布。 在Shader中,我们可以通过为物体添加一张热图纹理,并使用该纹理来表示物体的热度值。热图纹理可以是一张灰度图,不同的灰度值对应不同的热度。然后,我们可以使用纹理坐标和采样操作来获取每个像素对应的热度值,并根据这些值来着色和渲染物体。 除了使用纹理来表示热度分布,我们还可以使用其他的技术和效果来增强热图的可视化效果。例如,我们可以使用颜色渐变和透明度来形成平滑的过渡效果,以更好地显示物体的热度变化。我们还可以添加动画效果,使热图效果更加生动和有趣。 总结而言,Unity Shader可以用于创建热图效果,通过着色和渲染来展示物体的热度分布。这样的热图可以帮助开发人员分析游戏中玩家的行为和偏好,从而优化和改进游戏的设计和内容。这些热图效果能够增强游戏的可视化效果,并提供有价值的数据供开发人员参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值