大一计算机学科导论作业
作业要求:给出1个图形图像领域相关应用的解决方案与原理、方法、算法等,能通过编程实现该方法更好。
模型贴图技术研究
摘要:在游戏制作学习中,我对游戏中模型以及贴图的关系产生了深深的疑惑,贴图是怎样的?又是怎么贴上模型的?这里面是不是有精妙的设计使得贴图可以很好地与模型贴合,用较少的资源做出较好的效果?为了了解贴图贴上模型的方式和原理,我查阅了5本书和若干网站,终于在众多文字中找到了自己需要的答案:贴图通过自身携带的信息在模型的表面基础纹理和额外视觉效果上产生作用,并通过UV坐标的方式贴上模型,该方法不止适用于贴图模型一对一、多对一这样高针对性的模型,而且能实现贴图模型一对多的环境构建,在多边形模型着色上有突出表现。
关键词:贴图;UV坐标;多边形模型着色
中图分类号:TP391.41
引言:随着时代发展,计算机图形技术不断进步。到现在,一个制作精心的场景与现实中的场景已经没有了视觉上的较大差异,只是会因为计算机的模拟场景没有尘埃而在近处显得不真实,尽管如此,模型相关技术入门却有比较高的门槛,本文是对模型领域现有技术的解释,意在解释前人的成就,为后人的学习提供助力,为后人进一步的研究作铺垫。
1 贴图、UV、模型的基本概念
贴图如果要与模型连接,UV映射在这里面起到了无可替代的作用,是贴图贴上模型的基础。
1.1 贴图
显卡包括与之相辅的图形api,读取的数据最初来源是图片,也就是贴图,贴图包含了纹理,而具体表现为两种类型,即位图和矢量图。材质贴图本身负责模型的外观,但RBG和α通道的存在又允许一些特殊的贴图把显卡算力转换为硬盘容量,提高模型的表现细节,让低模能有高模才有的平滑弯曲,却不会占用太多的多边形和内存、算力,从而大大减小了性能的消耗。这样更像是视觉欺骗,但图形学本身就是一个模拟过程,能足够真实的欺骗我们的眼睛就行,所以善用贴图也是游戏优化的重要手段之一。
1.2 模型
无论是在现实生活中还是在游戏虚拟世界中,将任何一个物体进行投影,然后进解析,都会发现它是由若干个多边形所构成,再将多边形进行分解,可以划分为若干个四边形和三角形,再将四边形进行分解,可以发现,四边形又可以划分为2个或以上的三角形构成。1所以模型可以说是三角形的集合,事实上,UV坐标就是建立在无数构成表面的三角形与外部接触的面上的,纹理也是贴在这些无数细分的面上。
1.3 UV映射
从上面不难发现,正应了“人靠衣装,马靠鞍”这句话,贴图完善了模型的方方面面,给了模型无限的上升空间,还能让低模以更低的成本或视觉上,或实际上向高模靠拢,可以说是至关重要。但衣服做的再好,也不能脱离了人,如果贴图不能与模型一一对应,那么再好的贴图也只能成为垃圾文件,进入系统的回收站,这时,就要用到UV映射。
UV是一个坐标系,是一个U对应x,V对应y的平面坐标系。因为x,y,z已经表示模型空间中的3D图形的轴,所以这里用UV替换掉原本的x和y,来表示2D纹理的轴。这样一个2维坐标系可以建立在模型的表面,模型上的每个UV点直接依附于模型上的每个顶点进行对位2,在点与点之间的间隙位置由软件进行图像光滑插值处理,而贴图本身就是2维的图像,所以UV坐标具有很强的针对性和实用性。UV坐标表示的物体的空间位置,就纹理来说,它被称为纹理空间,它在0到1的范围内定义空间,而非无限扩展。
前面提到过的贴图包含纹理,其实就好像贴纸和上面的图案,通过在模型表面建立UV坐标系,把模型的表面分成一块块不同的区域,再与贴图一一对应,就能使贴图像一张切割后的贴纸,准确地贴在模型对应位置的区块上,从而实现纹理空间中的纹理与模型贴合。这样将2D图像投影到3D模型的表面,进行纹理映射的3D建模过程,就是UV映射。
2 常见贴图
贴图不只是给模型上个色如此简单,各式各样的贴图还能为模型进行方方面面的补充和完善。
1.1 材质贴图
材质贴图是最基本的贴图,是模型上颜色的主体,如果说贴图就像披在模型上的衣服,那材质贴图就是做成衣服的棉布。就我看来,是所有贴图的基础。
1.2凹凸贴图
凹凸贴图具体细化为法线贴图、高度贴图、透明贴图等。用来定义深度的灰度信息,亮的区域表示凸起,暗的区域表示凹陷,可以模拟更为复杂和细节化的表面。原理是将xyz的坐标按一定标准转换为rgb数值,让游戏引擎得以通过贴图上附带的数据进行简化的光照运算。
1.2.1 法线贴图
法线贴图是记录表面的倾斜程度的贴图,在RGB三个通道中存储法向量信息。这会是一种偏蓝色调的纹理(你在网上找到的几乎所有法线贴图都是这样的)。这是因为所有法线的指向都偏向z轴(0, 0, 1)这是一种偏蓝的颜色。3实际上,这些法线存在于切线空间,从而能在模型方向、大小变换时跟着变换。法线贴图并不是把模型的面数提高了,而是使用法线贴图中的法线(法向量)来计算光照,通过明暗效果作假,让观察者误以为模型有凹凸。法线贴图只能在明暗效果(光照计算的过程中)上作假(模拟凹凸),无法控制表面的凹凸程度。4
1.2.2 高度贴图
高度贴图是一种黑白的图像,它通过像素来定义模型表面的高度。越亮的地方它的高度就越高,画面越白的地方越高,越黑的地方越低,灰色的在中间,从而表现不同的地形。而所谓高度图实际上就是一个2D数组。地形实际上就是一系列高度不同的网格而已,这样数组中每个元素的索引值刚好可以用来定位不同的网格(x,y),而所储存的值就是网格的高度(z)。很多情况下我们的法线贴图只能在已有的漫反射贴图作为素材进行绘制,这样就是需要由一个高度贴图转换成法线贴图的一个过程。5
1.3 位移贴图
相较在低模上作进一步拓展的法线贴图,位移贴图更像是镶嵌在衣服上的布片,把一段原本不属于这里的微多边形镶嵌在模型表面,真正给模型的这个部分增加了细节,这个过程就好像把这段微多边形位移过来,就是位移贴图。具体是通过根据屏幕的分辨率,在模型的可见面上镶嵌和最终象素尺寸相同的微多边形,通过读取一张高度贴图,镶嵌所得到的多边形沿着原先的表面法线方向移动,再确定新的法线方向实现的。
1.4 漫反射贴图
漫反射贴图是物体表面的反射和基本的颜色,表面反射的光强,diffuse(漫射通道)就偏亮,反之,偏暗。主要用来表现固有色和颜色的强度。6
1.5 高光贴图
高光贴图是用来表现当光线照射到模型表面时,其表面属性的。因而可以用来区分不同的材质,材质的反光能力越强,高光越强,在去色后的黑白高光贴图上颜色越靠近RGB255,255,255,反之,则在去后的黑白高光贴图上颜色越靠近RGB0,0,0。而高光贴图中的颜色是用来用来定义高光的颜色,也是当前材质的颜色。
1. 6 AO贴图
环境阻塞贴图。是一种目前次时代游戏中常用的贴图技术。5通过在每个取样点上计算它被其它几何体覆盖的程度,计算在一个统一的光强度下场景的软阴影效果,来描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,可以解决或改善漏光、飘和阴影不实等问题,解决或改善场景中缝隙、褶皱与墙角、角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感、真实感,同时加强和改善画面明暗对比,增强画面的艺术性。7是一种可以提供精确平滑的阴影从而廉价地实现全局光照中阴影效果的贴图。AO贴图的计算不受光线影响,只依靠距离的运算产生位通道,然后反馈于光照运算,最后实现细节的改善。
3 UV的相关技术
贴图有多种功能,UV坐标也有多种用法与多样的贴图对应。
1.1 多重UV
尽管有如此之多种类的贴图能使模型更逼真,却是无法将这么多的贴图简单的重叠在一起,这时候就需要加多重UV。因为UV坐标是建立在模型上的,所以也就有了为一个模型添加多套UV坐标的可能,就好像你可以用不同的纸包裹同一块石头,多套UV坐标有了,几张纹理和一些小物件的空间也就有了。在此基础上,就能将多重纹理在彼此的顶部无缝地分层,并通过能改变不透明度的α通道连接成一个整体。而多重纹理的复杂性也产生了强烈的深度感,让模型更加的真实。
1.2 平铺
在纹理空间0到1的范围外,纹理呈现平铺或者重复,例如一块4X4的平地,铺上去一块2X2的草地纹理,那么该纹理会沿着U、V方向各平铺两次,这么做大大增加了模型表面的重复度,却不会在是视觉上带来多少重复,只要贴图可平铺性强,这实际上是给环境模型做纹理的主要方式。
1.3 投影映射
布置UV坐标最常见并有用的方法之一是使用投影,纹理映射本质上是采用位图,让贴图通过位图通道,将纹理以各种方式投影到几何图形上。大部分时候,布置UV坐标都将用到以下方法。
1.3.1 平面映射
平面映射通过平面将UV投影到网格。该投影适用于相对平坦的对象,或者至少可从一个摄影机角度完全可见的对象。8
1.3.2 盒体映射
盒体映射类似于Maya自动映射工具,通过同时从多个平面投影尝试查找最佳UV放置来创建多边形网格UV。该UV映射方法对应更加复杂的图形是非常有用的,它可以快速得到较为整齐的UV,缺点是UV会呈现碎块化。8
1.3.3 圆柱映射
圆柱形映射基于圆柱形投影形状为对象创建UV,该投影形状其实就是一个较长的平面360度围绕物体进行映射。8
1.3.4 圆球映射
球面映射是圆柱体映射的扩展版,它包含了对顶部的映射,这种映射类型的缺点是,顶部的纹理会被严重拉伸,而这种问题只能在绘制贴图的时候进行弥补,以获得正确的效果。8在Photoshop中通过使用Distort Filter(Filter>Distort>Spherize)可以很容易的进行修正。设置为仅垂直模式(Mode to Vertical Only)且数值在-40左右。这将补偿发生在球面投影的扭曲。9
4 结语
贴图和UV坐标的出现给图形图像领域构筑一个大的场景提供了极大助力,让场景中的每个物件的表现力总和远超当前硬件所能达到的高度,在各种模拟场景中起到了至关重要的作用。随着时代的发展,计算机技术与人们的生活日渐紧密,相应的,对图形图像领域也会有更高要求,而3D模型作为图形图像领域中的一个大类,也将会有更高的要求,在此基础上,如果没有更好的技术,贴图和UV坐标的发展也就显得尤为重要,而发展必先了解,这也就是本文的意义所在。
参考文献
https://blog.csdn.net/qq_33248019/article/details/74977876?utm_source=app ↩︎
宋玉远,张光帅,张克博.Maya光影与贴图的艺术【M】.北京:清华大学出版社,2009. ↩︎
https://blog.csdn.net/u010333737/article/details/78898174?utm_source=app ↩︎
https://blog.csdn.net/u014767384/article/details/81505030?utm_source=app ↩︎
https://blog.csdn.net/qq_26900671/article/details/78830380 ↩︎ ↩︎
https://blog.csdn.net/qq_22159557/article/details/79929637?utm_source=app ↩︎
https://zhidao.baidu.com/question/560650113.html ↩︎
胡璋、周维.三维动画场景设计【M】.广西:广西美术出版社,2014. ↩︎ ↩︎ ↩︎ ↩︎
Matthew Omernick.创造游戏中的艺术【M】.刘颖,方禾,译.北京:红旗出版社,2005. ↩︎
大一计算机学科导论作业相关推荐
- 计算机学科导论读书报告,计算机科学导论读书报告
计算机科学导论读书报告 一.引言 还记得这个学期开学时,我对新学期的课程表充满了疑问,除了计算机导论外,课程表上没有任何与计算机直接相关的课.上个学期还学习了C语言程序设计基础,然而放眼这学期的课程表 ...
- 计算机学科导论-2014级教学材料
推荐阅读一些和专业背景及专业学习有关的书籍,参考:给计算机专业的大一新生准备的阅读链接 大学是个全面成长的地方,过好大学生活,是一生幸福生活的必要,请看:大学生学业指导类书目 课程有关的实践内容要求通 ...
- 郑州大学计算机学科导论,郑州大学计算机导论大一试题答案.doc
1.简述Excel中文件.工作簿.工作表和单元格之间的关系. 答:1)一个工作薄即为一个Excel文件 2)一个工作薄由若干个工作表组成 3)一个工作表由多个单元格组成 2.在Excel 2007中, ...
- 计算机学科导论读书报告,计算机导论读书报告.doc
文档介绍: 计算机导论读书报告刘震摘要:21世纪是信息时代,计算机发展的迅速让人瞠目结舌.然而虽然现在计算机已经经历四代,可是其基本结构依然没有改变,还有其数据的存储方式也没有发生太大的变化.然而在计 ...
- 大一计算机课程ppt作业,大学生计算机基础作业PPT.ppt
<大学生计算机基础作业PPT.ppt>由会员分享,可在线阅读,更多相关<大学生计算机基础作业PPT.ppt(11页珍藏版)>请在人人文库网上搜索. 1.蝴蝶,光明女神蝶,皇蛾阴 ...
- 计算机学科导论-2012级教学材料
推荐阅读一些和专业背景及专业学习有关的书籍,参考:给计算机专业的大一新生准备的阅读链接 课程有关的实践内容要求通过博客提交.不会申请博客?见<如何申请CSDN博客?>,按提示操作. 课程内 ...
- 郑州大学计算机学科导论,郑州大学远程教育2017年网上学习导论考试参考答案(2017年第171期)...
百度文库 - 让每个人平等地提升自我 1 网上学习导论 171期 [ZZJ 网上考试系统 ] 本套软件使用权属于:郑州大学远程教育学院 (学期:171) 考试课程:0034.网上学习导论(第1次考试) ...
- 计算机学科论文期刊,计算机学科期刊文章参考文献 计算机学科论文参考文献数量是多少...
[100个]计算机学科期刊文章参考文献,每一个论文参考文献都是精选出来的,看了后定能知晓计算机学科论文参考文献数量是多少等相关写作技巧,让计算机学科论文写作轻松起来! 一.计算机学科论文参考文献范文 ...
- 计算机导论声明型摆设,《计算机导论作业-论文排档》.doc
<计算机导论作业-论文排档>.doc 专业学位硕士学位论文 互动式学习系统在校园网上的实现 The Design and Implement of Interactive Learning ...
最新文章
- visual2019没有勾选的在如何加入_发票管理系统完成升级,勾选认证平台改头换面,你所有的问题都在这里!...
- api商品分享源码_谈谈微服务中的 API 网关(API Gateway)
- ARM处理器基本指令大全
- 通过aspnetpager为DataList分页
- 中文版Latex常用语法大全教程
- 程序员必备的八大排序算法
- Postman下载及安装详细教程
- Windows下批处理一键修改系统时间并运行程序
- 谷歌学术搜索技巧,命令搜索
- 读书之二 --《程序员修炼之道》
- 帝国cms系统使用初级教程二(较全面)
- 关于限制同一个IP访问频率和限制用户登录时候输错密码次数限制(超过即限制)
- Node.js+express+MySQL仿美团注册登录绑定第三方登录
- EXCEL多列vlookup匹配
- COMSOL弱形式解微分方程
- 一个好玩的辞职信HTML版
- 最新公布的十中抗癌食谱,
- 6.4 深度负反馈放大电路放大倍数的分析
- 如何获得你的准确位置及iphon手机应用定位不准确原因分析
- 阿俊的花(天真版本)
热门文章
- Google Earth Engine(GEE)——自定义图标样式ui.chart(内附详细的图表格式修改方式)
- android多选对话框应用,android dialog —— 多选列表对话框
- 微信视频播放器隐藏播放控件,视频全屏做法分享
- 5天带你读完《Effective Java》(一)
- 医疗行业软件开发流程(试行)
- mkv电影如何无损转换为swf格式
- python爬取erp每日业绩
- 配置office和wps的数学公式编辑工具Mathtype7.4
- Git 语法、使用规范及常见bug总结
- springboot+jsp+ssm企业员工专门体检预约管理系统