贴图、纹理、材质的区别是什么? 还有shader

整个 CG 领域中这三个概念都是差不多的,在一般的实践中,大致上的层级关系是:
材质 Material包含贴图 Map,贴图包含纹理 Texture。纹理是最基本的数据输入单位,游戏领域基本上都用的是位图。此外还有程序化生成的纹理 Procedural Texture。贴图的英语 Map 其实包含了另一层含义就是“映射”。其功能就是把纹理通过 UV 坐标映射到3D 物体表面。贴图包含了除了纹理以外其他很多信息,比方说 UV 坐标、贴图输入输出控制等等。

材质是一个数据集,主要功能就是给渲染器提供数据和光照算法。贴图就是其中数据的一部分,根据用途不同,贴图也会被分成不同的类型,比方说 Diffuse Map,Specular Map,Normal Map 和 Gloss Map 等等。另外一个重要部分就是光照模型 Shader ,用以实现不同的渲染效果。

首先我们先将以下unity的材质。

第一步:打开一个新的项目文件。点击菜单栏的GameObject->Create Other->Cube

这样就在我们的scene场景里面出现了一个box。并且在Herarchy视图中出现了一个名为Cube的物体两者为同一个物体。
选中这个物体(注:可以在两个视图中的任意一个钟选择)然后查看Inspector视图,这里面存储的是这个物体的所有的组件和属性。

1:Transform叫做变换组件。用来控制和记录物体的位置、旋转、缩放。

2:为mash网格。

3:碰撞体(后面的章节会详细讲解)
4:渲染组件删除或者去掉前面的选择物体将不可见。
我们发现这个物体没有可以调节材质的地方。那是因为新建的物体时没有材质球的。我们呀新建一个材质球。把他添加的物体上才可以。新建方法:1:点击菜单栏Assets—>Create->Material如图:

2:在Project视图中单击右键选择Create->Material如图:

你会发现在Project视图中出现一个名为New Material文件如图:将名字修改为Cube Material拖方到Cube的Inspector视图中(注:修改名字的方法点击project中的物体等待片刻在点击一次当物体变成时即可修改名称)

如图:

材质添加完毕。可以通过调节Cube Material来改变物体的材质属性。

unity自带了很多种材质类型点击Shader下拉按钮可以更换材质类型。具体参数可参考http://game.ceeger.com/Manual/Materials.html当然一些特殊材质球需要自己编写(这个属于比较高端的应用,在这里不做讲解)

下面我们有一个例子来看下材质球是怎么调节的

首先我们把一个名为Players的文件夹拷贝到我们的工程文件夹的Assets文件夹中,打开unity拖动player
文件到场景视图了。调整摄像机(能再Game视图中清楚的看到我们的物体)添加一个平行光。添加方发如图:
Game中的物体如图

发现贴图丢失

第一步我们就要把贴图添加到物体上面,我们点击Hierarchy视图中player的下拉按钮得到如图:


player下拉列表下第一个物体为空的,不管他,第二个物体为人体,下面一个是绑定的骨骼。

选择第二个物体。查看Inspector视图。

发现有两个材质球(一般我们导入的物体都会自带材质球,不需要我们新建)第一个材质球为人物背后的荧光板我们不用管它。第二个材质球是人物主体。现在要给他添加贴图,一般有两种方式

1点击材质球下放的sellect按钮 选择点击接你需要的图片 如图:

方法2:在project视图中找到你需要的图片直接拖放的材质球的Texture中

如图:

加入图片后的效果

你还可以试一下其他的材质类型。我在附件里面提供了法线和环境贴图。可以增加效果和真实感。

贴图、纹理、材质的区别是什么? 还有shader的更多相关文章

  1. 【Aladdin Unity3D Shader编程】之四 贴图纹理

    关于纹理贴图介绍 纹理坐标也叫UV坐标,UV坐标都是0~1,并不是我们所理解的像素坐标,相当于是一个百分比. 编写shader映射纹理 将纹理的颜色取代漫反射的颜色 Shader "Alad ...

  2. 关于VR边纹理材质的渲染

    前段时间经常渲染白模线框的图,写了这个脚本方便工作,后来又加了中英文适配,今天贴上来. fn YY_edgestex = ( vr = renderers.current case of ( (vr材 ...

  3. (转载)UnityShader学习笔记(七) 让贴图纹理动起来(河流瀑布特效、精灵序列帧实现)

    大家好,我是Zander.这一章我们将使用纹理贴图实现动画.混合和真实特效来达到理想的效果. 纹理贴图可以使我们的着色器快速的实现逼真的效果,但是如果添加的纹理贴图过多,会非常影响游戏性能,特别是在移 ...

  4. unity texture贴图纹理

    文章内一些内容引用自作者:Aimar_Johnny http://blog.csdn.net/lzhq1982/article/details/75045358 导入png图片,默认显示如下 Text ...

  5. unity Texture贴图纹理及相关属性

    Texture资源是Unity3d游戏开发中用途最广泛的资源之一,被引用于诸如界面UI. Mesh模型 .粒子效果等.还有一些特殊的Texture资源,如:Movie Texture:视频资源.Ren ...

  6. WebGL_0004:带贴图的材质透明效果

    在材质中: "blendType": 2,

  7. 由浅入深学习PBR的原理和实现

    目录 一. 前言 1.1 本文动机 1.2 PBR知识体系 1.3 本文内容及特点 二. 初阶:PBR基本认知和应用 2.1 PBR的基本介绍 2.1.1 PBR概念 2.1.2 与物理渲染的差别 2 ...

  8. 关于Unity中的旋涡特效的制作(捕鱼达人3技术)(专题八)

    Mesh--材质--Shader 1: Mesh 是网格,包括顶点,法线,纹理坐标,切线,三角形.在每一个3D模型节点里面,有一个Mesh Filter组件来提取模型里面的网格数据;2: Shader ...

  9. Unity3D ShaderLab压缩混合纹理贴图

    Unity3D ShaderLab压缩混合纹理贴图 纹理可以用于存储大量的数据,我们可以把多个图像打包存储在单一的RGBA纹理上,然后通过着色器代码提取这些元素, 我们就可以使用每个图片的RGBA通道 ...

随机推荐

  1. 使用URL dispatcher的范例

    在上面的一篇文章中,我们介绍了怎样使用URL disptacher.在这篇文章中,我们来通过一个范例更进一步来了解怎样实现它. 1)创建一个具有URL dispatcher的应用 我们首先打开我们的S ...

  2. 20170218 OO-ALV标准工具栏按钮

    原文地址:OO ALV 工具栏对于的功能码   图标与对应的 功能码 明细 &DETAIL 检查 &CHECK 刷新 &REFRESH 剪切 &LOCAL&CU ...

  3. RK3399参考设计方案之DC-DC电源芯片RK808D【转】

    本文转载自:http://www.52rd.com/Blog/Detail_RD.Blog_sunnyqi_90673.html?WebShieldDRSessionVerify=Xv0bsGtD73 ...

  4. javaScript实现增删改查

    自己写的一个html+javaScript实现增删改查小实例.下面是js代码​1. [代码][JavaScript]代码   //1.创建受捐单位数组var arrOrgData = [    { & ...

  5. linux编程 fmemopen函数打开一个内存流 使用FILE指针进行读写访问

    fmemopen()函数打开一个内存流,使你可以读取或写入由buf指定的缓冲区.其返回FILE*fp就是打开的内存流,虽然仍使用FILE指针进行访问,但其实并没有底层文件(并没有磁盘上的实际文件,因为 ...

  6. [Selenium] 使用Firefox Driver 示例

    //导入Selenium 库和FirefoxDriver 库 package com.learningselenium.simplewebdriver; import org.openqa.selen ...

  7. angularJS ng-bind用法

    ng-bind 指令绑定控制器函数 函数名() 到 标签里面 ; ng-bind是从$scope -> view的单向绑定ng-modle是$scope <-> view的双向绑定; ...

  8. Excel: 应用Match/Vlookup比较Excel两列的不同数据

    假设Excel中有两列,现在要比较两列数据的不同.

  9. Python实现的一个简单LRU cache

    起因:我的同事需要一个固定大小的cache,如果记录在cache中,直接从cache中读取,否则从数据库中读取.python的dict 是一个非常简单的cache,但是由于数据量很大,内存很可能增长的 ...

  10. Eclipse全项目搜索指定文件&字串

    在eclipse中如果希望在大量的项目中寻找指定的文件可不是一件轻松的事,还好eclipse提供了强大的搜索功能. 我们可以通过通配符或正则表达式来设定查寻条件,下面是操作示例: ctrl+h 打开搜 ...