图形学 贴图详解

光照这部分里我讲了怎么实现物体的明暗关系,但物体还是纯色。在实际的3D建模过程中,3D物体一般都需要手绘贴图,本次讲一讲渲染引擎是怎么实现贴图的。


贴图,即使用一张2D图片,来规定3D模型上一部分或者全部的点的每一个的颜色。
(一般是用来设置每个点的颜色,但也可以设置法线等其他属性,比如法线贴图)
关于如何将3维的点一一映射到2D图片上,是Maya,3DMAX等建模软件的工作,想了解的可以搜索“UV展开”,本文主要讲引擎获得了模型和贴图后,怎么将每个点的颜色从贴图中获取。

贴图是2D的,我们称x轴为u,y轴为v,也就是uv,范围为[0, 1]。
在光栅化过程中,每一个三角形有3个顶点,这3个顶点的uv数据建模软件已经存进去了,我们直接读取出来,根据其uv值取出图像上对应坐标的颜色即可。
注意:

  1. 贴图的分辨率要重映射到0~1,比如一张1028×720的图片,u要乘上1027,v要乘上719来变换为图片坐标。
  2. 如果u是0.123456789,乘上1027之后还是个小数怎么办?因为图片像素点都是整数,所以我们要把这个小数坐标的颜色进行插值。插值方法为双线性插值(bilinear interpolation)


    即该点的颜色为其4个相邻整数点颜色的加权平均,当s=0,t=0时,p在A点,所以B,C,D的系数都是0,A的系数为1,根据这个特征来确定4个系数,这就是这4个系数长这样的原因。

到目前为止,我们可以拿到物体上某个点的贴图颜色了,那么融合光照之后公式又是什么样呢?


在Phong里面,把Ka和Kd替换为贴图颜色。Ks不换,因为一般都是白色。
在Gouraud里面,全部换成贴图颜色。

在三角形内部的点,贴图uv是多少?
答:插值,和光照里面插值方法一样,平面方程插值。

目前为止,计算出来的贴图应该是下图中间这样的


我们看到有明显的不对的地方,这是因为我们插值的uv计算是在仿射空间计算的,而从image到perspective的过程中,图形会扭曲,所以插值的uv也会扭曲。
解决方法:透视修正
将uv转换到perspective或者screen space进行uv插值,将插出来的uv值再变回仿射空间获取像素颜色。

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

推荐阅读更多精彩内容

  • 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在...
    自由的天空阅读 12,355评论 0 12
  • 在光栅化和坐标系空间变换里,我讲了怎么让图形显示在屏幕上并着色(shade),但这个只是简单的纯色,在现在的渲染引...
    白痴毛阅读 7,773评论 1 13
  • 由于个人原因,今天晚上又回来挺晚的。现在回来开始写总结,也不算迟到。爬楼看了以前班级里的信息记录,参与清扫卫...
    指挥官阅读 189评论 0 3
  • 清晨,小思思在洗碗,突然,她惊讶的声音从厨房传出:“我发现创可贴不怕水呀!” 厨房和大厅隔了一个下玻璃门,我坐在大...
    明光照耀阅读 152评论 0 0
  • 手机响了,是家人打电话来时的专用铃声。我和往常一样,用愉快欢乐的声音接通电话。电话另一头,传来妈妈的声音,她叫...
    一抹暖妍阅读 509评论 0 4