[SceneKit]Materials纹理贴图(七)

在OpenGL ES 中, 使用纹理贴图的方式来给一个物体模拟现实的材质, 让几何物体看起来更逼真, 但是在OpenGL ES中使用起来是超级麻烦. SceneKit中用来显示纹理就方便多了, 最起码它是面向对象的.

SceneKit支持四种不同的照明模型,它们定义将不同材质的属性与场景中的灯组合的数学方程,以产生每个渲染像素的精确最终颜色。在[SceneKit]光线(五)介绍了四种不同的光, 这个是四种不同的光照模型, 不要搞混了😆

Lighting models光照模型
四种不同的光照模型

以下是每个模型的详细信息:

•Constant:使用平面照明模型,在计算渲染像素的颜色时,仅将环境照明纳入方程式。
•Lambert:在计算时加入环境照明和漫射信息
渲染像素的颜色。
•Blinn:结合环境,漫反射和镜面照明信息,其中使用Blinn-Phong公式计算镜面高光。
•Phong。 包含环境,漫反射和镜面照明信息,其中使用Phong公式计算镜面高光。

Materials通常被称为纹理; 他们可以让您在场景中引入更多的细节和现实感,而不需要更多的几何体。
纹理基本上是平面的二维图像,包裹3D几何,使用几何中存储的特殊纹理坐标。其实就是3d图像的每个点都与对应的2d纹理之间有一个一一对应的映射关系, 把这个映射关系做好之后, 剩下的就是把2d图像贴在3d几何上面就OK了.

贴图的类型

Diffuse map(漫反射贴图)

最常用的纹理映射方法。它将位图图像包裹在3D几何表面上,同时显示其原始像素颜色。
漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,吸收了比较多的光线的部分比较暗,而表面反射比较强的部分,吸收的光线比较少。
刨去那些杂糅的东西,我们只谈明显的,漫反射贴图表现了什么? 列举一下,物体的固有色以及纹理,贴图上的光影。前面的固有色和纹理我们很容易理解,至于后面的光影,我们再绘制漫反射贴图的时候需要区别对待,比如我们做一堵墙,每一块砖都是用模型做出来的,那么我们就没有必要绘制砖缝,因为这个可以通过打灯光来实现。可是我们如果用模型只做了一面墙,上面的砖块是用贴图来实现,那么就得绘制出砖缝了。从美术的角度,砖缝出了事一条单独的材质带外,还有就是砖缝也是承接投影的,所以在漫反射图上,绘制出投影也是很有必要的。
没有什么物体能够反射出跟照到它身上相同强度的光。因此,让你的漫反射贴图暗一些是一个不错的想法。通常,光滑的面只有很少的光会散射,所以你的漫反射贴图可以亮一些。

屏幕快照 2017-07-24 上午10.02.21.png
屏幕快照 2017-07-23 下午10.41.05.png
Normal map(法线贴图)

法线贴图是一种凹凸贴图。它们是一种特殊的纹理,可以让您将一些表面细节(如凸起,凹槽和划痕)添加到模型中,如同它们由实际几何体所代表的那样。

例如,您可能希望显示一个表面,如表面上有凹槽,螺钉或铆钉,如飞机船体。这样做的一个方法是将这些细节建模为几何,。
将法线贴图视为定义几何凹凸的纹理; 您可以使用它来模拟粗糙的表面,如月球表面的凹坑,雕刻在古老的石片上,或者甚至是闪亮的足球上的凸起的斑块和皮革图案.

屏幕快照 2017-07-23 下午10.46.34.png

Diffuse map只有基础的颜色纹理, Normal map只有基础的使用光线来表示几何物体反射光线的多少(因为我们人眼看到的东西是基于反射光, 如果有反射光进入眼睛就能看到, 否则则看不到), 要想既有颜色又有光亮与阴暗, 可以试下把二者结合

屏幕快照 2017-07-23 下午10.53.41.png

如果你想生成你自己的法线贴图,有一个叫做CrazyBump的工具。 你可以在crazybump.com找到它。

Reflective map(反射贴图)

在开始了解反射贴图之前, 需要先了解下多维数据集(cube mapping)映射的概念。 你知道一个立方体由六面组成。 类似地,立方体地图由六个相同大小的纹理组成,全部包含在用于纹理多维数据集的所有边的一个大图中。
场景套件使用以下模式来定义多维数据集地图,其中每个图块表示多维数据集的特定一面:

屏幕快照 2017-07-24 上午9.34.41.png

使用多维数据集贴图的好处是您可以定义对象的细节; 您的对象的反射性决定了这种反射有多少将是可见的。 例如,一个镜面完成将使您的对象高度反光,并产生镀铬效果。

与前面的Diffuse map和Normal map贴图不同的是, 前面两者是把一张2维图片包裹在3维几何物体表面, 而Reflective map 则是使用cube mapping的方式把原始的2维图像映射到3维物体之上, 更像是含有颜色的影子.

屏幕快照 2017-07-24 上午10.13.08.png
Occlusion map(闭塞贴图)

Occlusion map用于提供关于模型的哪些区域应该接收高或低间接照明的信息。间接照明来自于环境照明和反射,因此您的模型如陡峭的凹陷部分,如裂纹或折痕,实际上不会接收太多的间接光。
当它做得很好时,遮挡效应会给场景带来很多现实感。 对于复杂的几何形状,几何形状的部分将阻挡来自几何的其他点的环境光,例如球的斑块周围的深脊:

屏幕快照 2017-07-24 下午12.41.24.png

应用遮挡图之前和之后。部分被遮蔽的区域,特别是在脖子上的织物褶皱处,在左边太亮了。在分配了环境遮挡图之后,这些区域不再被来自周围树木环境的绿色环境光照亮。

Specular map(镜面贴图)

镜面贴图控制几何的光泽。 贴图的黑色部分定义了哑光部分,而白色部分则表示光泽效果

控制从表面发出的光的颜色和强度。当您的场景中使用发光材料时,它似乎是可见的光源。该物体将出现“自发光”。

Emission map(发光贴图)

发光材料通常用于某些部件似乎从内部照亮的物体上,例如显示器的屏幕,高速制动的汽车的盘式制动器,控制面板上的发光按钮或者怪物的眼睛,在黑暗中可见。

使用这些材料的对象即使在场景中的黑暗区域也会保持亮起。

屏幕快照 2017-07-24 下午12.50.11.png

红色,绿色和蓝色球体使用发光材料。即使它们处于黑暗的场景,它们也从内部光源发光。

在Scene Kit中Emission map并不真正发光,只是模拟发光效果而已.就是说不能照亮其他物体,不能产生阴影.这点与其他3D创作工具不同.

Multiply map(乘法贴图)

所有其他效果后应用乘法图; 它可以用于着色,变亮或变暗的最终结果:

屏幕快照 2017-07-24 下午12.57.06.png

屏幕快照 2017-07-24 下午12.57.28.png
Transparency map(透明贴图)

透明度贴图使您几何的几何透明,甚至完全不可见。 黑色部分定义不透明部分,而白色部分最终为透明的部分。像PS一样

屏幕快照 2017-07-24 下午12.59.36.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在...
    自由的天空阅读 12,374评论 0 12
  • 说明 本系列文章是对<3D Apple Games by Tutorials>一书的学习记录和体会此书对应的代码地...
    苹果API搬运工阅读 2,473评论 7 6
  • 从小到大,玩过许许多多游戏,但是在这个作文课上,我们玩了一个与众不同的游戏。 “叮铃铃”上课了,老师走进了教室,从...
    千嬟雪阅读 262评论 0 0
  • 我第一次知道你是在还没进厂跟振视频的时候从振的口中得知,他说他们宿舍有一个青岛大学的,我当时听到便在心里觉得你弱爆...
    秦超阅读 281评论 0 1
  • 文/墨雪 看看那木头 皮质烂叶的包裹下 躺了一具快发霉的春天。 呆滞的那丝伤感 我轻轻的打开了 丢弃了生命的给予 ...
    诗与雪阅读 119评论 1 2