次世代游戏中的高光贴图在unity3d 4.0中如何表现?

您的位置: >
> 次世代级绚丽画质!Unity 5游戏引擎渲染截图
&&& Unity Technologies在今天的GDC 2014大会上放出了一组有关其Unity 5游戏引擎的渲染截图,用于向世人展示该引擎的强大光影渲染性能,如下――
&&& Unity 5游戏引擎的亮点特性包括:实时全局光照、面向移动智能游戏市场的云推广业务分享网络、强化的音频处理/物理模拟功能模块以及对64位操作系统的支持等。
引擎技术预告:
图片展示:
相关游戏资讯:
相关游戏下载:
热门文章资讯
热门单机游戏
12345678910
推荐游戏截图
热门攻略秘籍
123456789104492人阅读
(一定要看)
首先说一下啊,本人是个菜鸟,但自认是一个懂的上进的菜鸟,现在对游戏开发或多或少懂了一丁点吧。现在把我的资料全部上传,也许大家会觉得,资料有的网上都有吧,也许觉得资料没什么用吧,这个确实。但一个资料只要有一点点对你有用我就满意了,就够了。
为了方便大家下载,小文件我都是打包了,没有任何的密码之类的。
学习的资料不管是好的还是不好的我都上传了,这些是我从0开始学的东西(本人专业化工,就是化肥啊,煤之类的。全部都是自学的)说实在的,资料不怎么样,但有选择的阅读,学会精度与泛读就不错了。本文我一个字一个字的打了十几页,不喜欢的也别喷(不然我会很伤心),喜欢的多为笑斩做点事就好了,我就很开心了。挑选自己喜欢的东西下载吧。
还有一些套话:
1、内容来自网络,仅供自己学习使用,不要用于任何商业用途。
2、此资料仅供学习所用,如有喜欢请购买正版,下载后请小时内删除。
3、没办发╮╯▽╰╭,侵权的太多了。
&&&&&——组泡泡
下载方法:
华为网盘用户可以直接点击“高速下载”
其他用户如果看到的是文件夹,则点击文件夹名字右边的
然后点击或者全选之后点击。
下载地址:
下载地址:&(安装文件自己下载
下载地址:
下载地址:
下载地址:
火星人3dmax全套基础教程
3张光盘一共,分部分上传。
1-3部分是第一个光盘
4-6部分是第二个光盘
7-9部分是第三个光盘
3dmax-video1:
3dmax-video2:
3dmax-video3:
3dmax-video4:
3dmax-video5:
3dmax-video6:
3dmax-video7:
3dmax-video8:
3dmax-video9:
下载地址:
内容包括:
3D游戏发展史
80后游戏发展史
[摘中国单机游戏发展史——昨天的荣誉今天的悲哀
中国游戏产业发展史【年代】
中国网络游戏发展史张文宇
任天堂游戏机近年的发展史
国产游戏发展史
手机的发展史及品牌
日本家用游戏机发展史
游戏引擎发展史上
游戏引擎发展史下
游戏的发展史详解第三代网游
游戏迷的感动看任天堂主机的手柄发展史
电子游戏机发展史
网页游戏发展史
计算机游戏发展史
下载地址:
下载地址:
下载地址:
下载地址:
下载地址:
内容包括:
2D_Game_Person_Contrl_Example.unitypackage
Camera_flower.unitypackage
fpscon.unitypackage
FPX&ZERO.unitypackage
js_c#Demo.unitypackage
move.unitypackage
NGUI&Next-Gen&UI2.5a.unitypackage
NGUI_Next-Gen_UI_v2.0.3d.unitypackage
Open_Door_Collider_Demo.unitypackage
Volumetric&Light&Beam&Kit&体积光插件
下载地址:
内容包括:
AnimationTest.rar
flightsimubuild18.zip
FPSTest_FDProject.zip
project_files.zip
Space+Shooter(源码
Unity3D+粒子效果教程源码版游戏开发
Unity3D制作的汽车竞技游戏源码包游戏开发
Unity3D坦克大战&源代码()
Unity3D坦克大战源代码()
Unity3D官方二维游戏开发教程含源码,中英文
unity3d小游戏源码
植物大战僵尸源码带注释版本
相当不错的完整的源代码
下载地址:
内容包括:
CharacterController的跳动问题
NetWork-Chat.rar
Unity3D.4.0.0正式版简体中文汉化补丁
unity3d_v4.1f2_Crack.rar
Windows?8?激活工具
截取动画不能循环播放问题
下载地址:
内容包括:
Adobe&Flash&11&Stage3D&(Molehill)&Game&Programming&Beginner's&Guide.pdf
Android_3D游戏开发技术详解与典型案例
Android_3D游戏开发技术详解与典型案例
C#实用入门教程
C#数据库举例
java帮助文件
MongoDB实战
MongoDB权威指南中文
Node.js教程
U3D基础中文教程
UNITY3D&FOR&3DMAX建模&入门指导
Unity3D&脚本&中文&参考
Unity3D&鼠标控制主摄像机即时战略游戏视角
unity3d4.0破解步骤
Unity3d_FPS游戏教程
Unity3D中与对比
unity3d中文的
Unity3D中文脚本使用手册
Unity3D入门中文版
Unity3D入门中文版教材
Unity3D入门教程
Unity3D入门教程
Unity3D十五分钟教程
Unity3D占用内存太大的解决方法
Unity3D圣典中文脚本
Unity3D场景搭建教程
unity3d天空盒的使用
Unity3D官方二维游戏开发教程中文版
UNITY3D常用代码
Unity3D游戏开发下载&宣雨松著人民邮电出版社
Unity3D游戏开发与技术概论&
Unity3D游戏开发与技术概论
Unity3D游戏开发教程
unity3d用鼠标控制
Unity3d的入门教程&
Unity3d的入门教程&
Unity3d的入门教程
UNITY_3d_FPS游戏教程中文版
Unity入门教程中的中文显示
Unity开发或迁移游戏到
UNITY自发光教程后
Untiy-制造隔音密室的方法
[Unity3D]赛车游戏开发漂移算法解决方案转
[转载游戏引擎最详尽基础教程
基于的游戏设计与开发
官网翻译&简介版教程
游戏开发引擎大全搜集
用制作游戏详细教程之一&&&中文网站中文论坛学习社区教程专业论坛教学开发引擎游戏开发虚拟现实程序吧
用制作游戏详细教程之二&&&中文网站中文论坛学习社区教程专业论坛教学开发引擎游戏开发虚拟现实程序吧
第六讲脚本概览
通过实例学习游戏开发
(含权威指南第版
下载地址:
内容包括:
2010美术课程体系介绍
2游戏原画设计风格
3D动画游戏制作流程及要求
Q版动漫人物画法
Q版场景制作教程
动漫课程初中、中外动漫现状与版动物表现
号角游戏简介
四川长城游戏产品简介
学游戏美术有前途吗?
小游戏版泡泡堂
小白学数据分析移动网络游戏需要关注的问题
武汉清美动漫游戏美术分工
游戏特效教程解决特效问题内容
游戏美术人才行业前景
游戏美术制作流程
游戏美术学习
游戏美术设计师入行全面分析
游戏美术课件
游戏美术项目详解教案卡爱的版人物
游戏美术项目详解教案可爱的版人物骨骼绑定
网游行业术语大全
计算机游戏简介
魔兽风格模板
下载地址:
内容包括:
制作一个游戏角色需要哪些步骤
手把手金属拉丝材质技巧
次时代游戏贴图制作技巧
游戏贴图基本规范
游戏贴图绘制技法
电脑美术专业三维设计游戏模型设计教学大纲
简单游戏场景烘焙贴图
贴图绘制技巧头发和身体
金属质感表现
下载地址:
内容包括:
01电脑图文设计基础知识
2012全国三维数字化创新设计大赛规则
2012年科研类全国航空航天模型锦标赛成绩册
2012最新基础教程【上】
3D-Max快捷键大全
3dmax_疑难解惑
3dmax_线框渲染方法收集
3DMAX_课程设计
3dmax《数字特技与动画》
3dmax中你所不知道的功能
3dmax做卡通场景
3DMAX制作卡通动画风景
3DMAX制作片头动画
3Dmax制作超炫魔术棒效果动画篇
3dmax动画制作
3DMAX动画制作简介
3dmax动画场景
3dmax动画工程师级考试大纲
3DMAX动画教学大纲
3DMAX卡通人物建模教程
3DMAX山脉制作教程
3DMAX建筑动画制作流程
3dmax技巧大全
3dmax教案页
3Dmax教程骨架行走动画
3dmax教程制作闪闪的红星动画
3dmax教程:动画神秘的星云
3DMax新手必看
3DMAX模型的不光滑造成的烘焙错误
3DMAX流体动画研究
3DMAX流体动画研究
3dmax渲染大全
3dmax火焰效果制作
3DMAX玻璃杯动画
3Dmax电视栏目包装
3dmax磁铁与铁钉碰撞动画:动画特效
3DSMAX三维动画制作实例
3D_MAX归档方法
3d_max简单动画教程
3D_MAX设计基础全套教程
3d_max设计应知应会
3D_MAX设计比赛&
3D_MAX设计比赛
3D_MAX设计比赛
3d__max动画基础
3D创意字体设计欣赏
3D动画设计师
3D室内设计论文
CAD创意设计与欣赏课程简介
CAD命令全集
MAX烘焙技术
MAX金属质感完美教程版
V-Ray打造逼真金属教程
VRAY各种材质参数设置经典
[3ds.Max.9.VRay效果图制作实战从入门到精通全彩版王玉梅扫描版
《动画设计》教学大纲论文
《揭开苹果电脑设计的面纱》
【冷子凝】寻古探幽美术
三维动画软件在虚拟有机化学实验中的应用
全国大赛优秀作品系列家庭服务机器人概念设计
创意产品设计制造学习系统
创意广告有趣的设计
化工计算机辅助设计论文
和众广告品牌创意设计机构
国际影视文化创意产业园项目书
如何发现设计创意
如何提高设计创意能力
平板电脑设计
平板电脑设计趋势报告——历史篇
平板电脑设计趋势报告——现状篇
平板电脑设计趋势报告——趋势篇
平面设计与创意
平面设计思路
建模是设计的基础
开眼界十大未来概念笔记本电脑设计
最新动画教程
机械创新设计大赛获奖作品
来自海洋的灵感:盘点十种别致的创意设计
查看网卡地址方法
武汉培训学武汉最好的培训班
海洋动画效果—制作
用制作字体激光动画
电脑图文设计
电脑平面设计
电脑广告设计
电脑游戏设计
电脑美术设计
疯狂的动物个创意
笔记本电脑设计
第六章电脑平面设计与创意
网吧台电脑设计方案
虚拟景区设计游戏创意方案
非常有创意的设计
下载地址:
内容包括:
3dMAX教程制作《弓箭手海伦娜》全过程
Cross_Fire(CF英文介绍幻灯片
MAYA坦克建模
《》模型制作流程解析
《恶魔王》模型制作解析
《鬼泣红颜》次世代角色制作解析教程
一些次时代的思路及注意事项&
一些次时代的思路及注意事项
次世代写实游戏模型制作
次世代游戏场景
次世代游戏场景《世界之桥》的设计与制作
次世代游戏模型制作讲解—身体篇
次世代游戏解决方案之写实游戏模型制作
次时代模型基础入门篇
次时代模型基础入门篇
次时代模型基础入门篇
次时代游戏&
次时代游戏
次时代游戏制作色彩基础&
次时代游戏制作色彩基础
次时代游戏常用制作插件使用&
次时代游戏常用制作插件使用
次时代游戏贴图制作技巧
次时代游戏贴图制作技巧
次时代经典角色金刚狼
次时代美术教程之战争机器工作流程贴图篇
次时代美术教程之战争机器工作流程
游戏公司次世代模型制作流程
游戏翻译介绍企业版
高模制作技术及制作注意事项乾坤
鬼泣系列简介
下载地址:
内容包括:
MAYA_NURBS制作高精度生物模型
Maya结合打造高精度手掌模型
ZBrush中高精度模型导入到中的两种方法之比较
ZBrush能够雕刻出高精度的模型
动画大运动规律
高精度三维城市模型的质量控制
高精度能量模型
高精度角色模型的制作
高精度静态比例模型
下载地址:
内容包括:
2012上半年十大最火的手机网游排行
2012最新三国类手机网游排行合集
30款热门游戏推荐
RPG等四种游戏类别介绍
Unity3D引擎网游标杆大作《天神传》即将公测
[新闻未来的手机游戏趋势是什么?
新手游安卓市场的运营
日式奇幻卡通版风格
游戏特效师
下载地址:
内容包括:
3_国内外游戏动漫原画分析
CG原画教程
[魔幻游戏造型设计张勃扫描版
《原画设计》课程教学大纲
动漫培训学校影视游戏原画长期有些什么内容
原画作品赏析
原画插画教程:场景教程之《寂静村庄》
原画新人成长之路:练好基本功
原画的基本概念二
场景原画设计
第一章动画原画漫谈
第一章游戏原画概述
陆惟:游戏原画行业百态、创作技巧探析
下载地址:&(说明哥还在不断更新中)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3047424次
积分:37098
积分:37098
排名:第37名
原创:71篇
转载:3149篇
评论:710条
声明:早期转载的文章未标明转载敬请原谅,以后将陆续改过来,向原创者致敬!
有问题可留言
痞子龙3D编程
QQ技术交流群:
(7)(2)(3)(7)(24)(5)(5)(16)(17)(16)(66)(7)(55)(2)(37)(16)(1)(10)(6)(37)(5)(31)(18)(31)(128)(333)(203)(256)(59)(78)(57)(16)(39)(10)(27)(16)(8)(26)(32)(53)(56)(45)(142)(228)(6)(10)(6)(9)(6)(9)(22)(25)(18)(83)(208)(442)(111)(32)(1)次世代动漫游戏贴图分为几种?_百度知道
次世代动漫游戏贴图分为几种?
我有更好的答案
还有自发光贴图~~!
次世代贴图是由法向贴图、彩色贴图、凹凸贴图、高光贴图的组合而成的一整套贴图,每一部分的贴图都有独特的功能。    一、法向贴图    法向贴图记录了图面上每一个像素的法线向量数据,所以不要把法向贴图当成一般的贴图来看。    二、彩色贴图    彩色贴图就如字面的意思一样,但它比传统贴图肩负了更多的责任,高光阴影、深度的三维效果都要同时透过贴图表现出来。    三、凹凸贴图    凹凸贴图是透过灰度贴图来得到细节实际凹凸的信息,并在三维空间中进行准确的位置运算,当然只有在贴图中有比较明显的凹凸的时候才需要用到凹凸贴图。    四、高光贴图    高光贴图记录了贴图细节的高光及受光度,它与法向贴图是互相搭配的,高光能够使图面更具立体效果,从而达到更真实的视觉效果。
其他类似问题
动漫游戏的相关知识
等待您来回答
您可能关注的推广回答者:
下载知道APP
随时随地咨询
出门在外也不愁Unity3D美术方面贴图蓄力帖
Unity3D美术方面贴图蓄力帖
我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。
我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助。
首先不得不说的是漫反射贴图:
漫反射贴图diffuse map&
漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,墙的砖缝中因为吸收了比较多的光线,所以比较暗,而墙砖的表面因为反射比较强,所以吸收的光线比较少。上面的这张图可以看出砖块本身是灰色的,而砖块之间的裂缝几乎是黑色的。
刨去那些杂糅的东西,我们只谈明显的,漫反射贴图表现了什么?列举一下,物体的固有色以及纹理,贴图上的光影。前面的固有色和纹理我们很容易理解,至于后面的光影,我们再绘制漫反射贴图的时候需要区别对待,比如我们做一堵墙,每一块砖都是用模型做出来的,那么我们就没有必要绘制砖缝,因为这个可以通过打灯光来实现。可是我们如果用模型只做了一面墙,上面的砖块是用贴图来实现,那么就得绘制出砖缝了。从美术的角度,砖缝出了事一条单独的材质带外,还有就是砖缝也是承接投影的,所以在漫反射图上,绘制出投影也是很有必要的,如下图:
没有什么物体能够反射出跟照到它身上相同强度的光。因此,让你的漫反射贴图暗一些是一个不错的想法。通常,光滑的面只有很少的光会散射,所以你的漫反射贴图可以亮一些。
漫反射贴图应用到材质中去是直接通过DiffuseMap的。再命名规范上它通常是再文件的末尾加上“_d”来标记它是漫反射贴图。
凹凸贴图Bump maps
凸凹贴图可以给贴图增加立体感。它其实并不能改变模型的形状,而是通过影响模型表面的影子来达到凸凹效果的。再游戏中有两种不同类型的凸凹贴图,法线贴图(normalmap)和高度贴图(highmap)。
Normal maps法线贴图
法线贴图定义了一个表面的倾斜度或者法线。换一种说法,他们改变了我们所看到的表面的倾斜度。
法线贴图把空间坐标的参数(X,Y,Z)记录在像素中(R,G,B),上面的范例图就是这个意思。
有两种制作法线贴图的方法:
1.从三维的模型渲染出一张法线贴图(用高模跟低模重叠在一起,把高模上的细节烘焙到低模的UV上,这里需要低模有一个不能重叠的UV)
2.转换一张高度贴图成为一个法线贴图。(是用NVIDIA的PS插件来转换一张图成为法线贴图)
Height maps高度贴图
什么是HeightMap呢?所谓高度图实际上就是一个2D数组。创建地形为什么需要高度图呢?可以这样考虑,地形实际上就是一系列高度不同的网格而已,这样数组中每个元素的索引值刚好可以用来定位不同的网格(x,y),而所储存的值就是网格的高度(z)。
我们在这里叙述高度图,其实也是为了更好的绘制法线贴图,很多情况下我们的法线贴图只能在已有的漫反射贴图作为素材进行绘制,这样就是需要由一个HeightMap转换成法线贴图的一个过程,明白了这个原理,做起来也就可以更好的驾驭其效果。
高度贴图是一种黑白的图像,它通过像素来定义模型表面的高度。越亮的地方它的高度就越高,画面越白的地方越高,越黑的地方越低,灰色的在中间,从而表现不同的地形。
当然在UNITY中也是有HightMap出现的,比如在Terrain菜单中,就有导入和导出HightMap的命令。
高度贴图通常是在图形处理软件中绘制的。他们通常没有必要渲染这些,再DOOM3游戏中高度贴图是被转换成法线贴图来使用的。使用高度贴图仅仅是为了适应简单的工作流程。高度贴图通常通过“Heightmap”函数来调用到3D软件中去的,我们通常再文件名后面加一个"_h"来标示它。
Normal maps vs. height maps
法线贴图和高度贴图一般来说,Normal Map来自于Height Map。具体生成的方法如下:把Height
Map的每个像素和它上面的一个像素相减,得到一个高度差,作为该点法线的x值;把Height
Map的每个像素和它右边的一个像素相减,得到一个高度差,作为该点法线的y值;取1作为该点法线的z值。推导过程如下:x方向,每个像素和它下面的一个像素相减,得到向量&1,
ha&,其中ha是该像素的高度值,hb是下一行的高度值;y方向,每个像素和它左边的一个像素相减,得到向量&0,
ha&,其中ha是该像素的高度值,hb是左一列的高度值;两个向量Cross,得到简单来说,就是取两个方向的切线向量,对它们做Cross得到该点的法线向量。
还有另外一种做法,是根据每个象素四边的点计算,而该点象素本身不参与计算。没有试过,不知道哪种好一些。而且我觉得这种计算只适合于单块的HeightMap、NormalMap,像是DOOM3中的NormalMap就无法由HeightMap计算出来了。所以最好还是在美工建模的时候同时生成NormalMap和HeightMap而不是利用HeightMap生成NormalMap。
DOOM3游戏引擎可以把法线贴图和高度贴图合成在一张凸凹贴图上。
通常我们绘制一张具有足够细节的高度贴图要比建立一个足够细节的模型然后渲染成相应的法线贴图要实际的多。
法线和高度的凸凹贴图可以通过Addnormals函数来合并到一种材质中。
毫无疑问,高度贴图大多数游戏引擎中出现的不多。他们只是给电脑一种方法来计算曲面法线当使用动态灯光的时候。
这说明实际上,一张高度贴图被转换成一张法线贴图,以此可以计算出相邻两块不同高度的位置之间的倾斜面。高度贴图永远不能像法线贴图这样具有足够的细节,这是被肯定的。
很明显只有灰度的高度贴图并不能很好的表现应该有的细节,因为它是黑白的,RGB颜色就会遭到浪费,并且因此你只能只用256层级的强度。
相比较来言法线贴图的每一个图像通道都可以利用到,显而易见,法线贴图能够更好的来表现凸凹。
Specular maps高光贴图
什么是高光贴图?
高光贴图是用来表现当光线照射到模型表面时,其表面属性的.(如金属和皮肤、布、塑料反射不同量的光)从而区分不同材质.
高光贴图再引擎中表现镜面反射和物体表面的高光颜色。
材质的反光程度就越强。(强弱度度是指,如果将这张Specularmap去色成为黑白图,图上越偏向RGB0,0,0,的部分高光越弱,越偏向RGB255,255,255的部分高光越强.)
我们建立高光贴图的时候,我们使用solid
value来表现普通表面的反射,而暗的地方则会给人一种侵蚀风化的反射效果。(你头脑中要有很清晰的物件不同材质之间高光强弱的关系:高光最强的是那个部分,最弱的是那个部分,处在中间级别的是哪些部分.一般来说:金属的高光&塑料&木头&皮肤&不料,但是这个只是一个大致的分类,不要把它作为高光的指导.有时,你处理的物件可能是如上图一样,绝大部分都是同一类型材质的,比如布料,这时你也要小心的去分辨不同材料之间的高光强度的区别.切记,在这个阶段一定要保持清晰的头脑,不要急着去添加那些细节.在大的强弱关系还没有决定之前,就去添加那些细节会影响你的判断,而最后得到一张层次不清晰很“花”的高光.很多时候,我们容易范这样的毛病,就是将物件的高光处理的太过单一.)
上面的贴图有个问题,砖的表面与砖缝相比将会有比较少的反光,但是砖缝的位置其实应该几乎是没有反光的。(确定好整体高光的强弱之后,就开始在高光上叠加细节:比如金属划痕,金属倒角高光,锈渍周围的裸金属亮点,油渍,灰尘等.这时,你会发现,如果你在Diffusemap的绘制过程中,保留了纹理,划痕或以上提到过的细节的图层,你只需要将Diffusemap中的相应图层拖曳到Specularmap中,然后根据这些细节应该反映出来的高光强度调节就可以了.So,良好的图层管理习惯是非常必要的.)
颜色再高光贴图中将会用来定义高光的颜色,组成砖的材料应该是一些沙子,他们将会反射出一些微笑的具有质感的光,这些在上面的例子中已经展示了出来。(为了丰富高光贴图,我们有很多方法:做局部高光的细微变化,添加纹理(这个纹理要和材质本身的纹理区分开),叠加彩色图层(谨慎用))
高光贴图是通过Specularmap函数调用到引擎中的,通常我们再贴图的后面加一个"_s"来区别它。
凸凹贴图可以通过高光贴图来改进成相当漂亮的贴图。(要记住的是,单单凭借高光贴图是无法充分的表现材质特性的,只有Didffuse,Normal,和Specular三张配合才能充分的表现材质特性.)
在UNITY中,高光贴图通常放在漫反射贴图的透明通道里,我们是用相关的SHANDER就可以达到高光的效果。
Occlusiont简称AO贴图,中文一般叫做环境阻塞贴图。是一种目前次时代游戏中常用的贴图技术,很多朋友将其与全局光烘焙贴图混淆,其实二者本质是完全不同的。
首先,我们从简单的AO贴图的算法来讲:
AO贴图的计算是不受任何光线影响的,仅仅计算物体间的距离,并根据距离产生一个8位的通道。如下图所示,计算球形物体的AO贴图的时候,程序使每个像素,根据物体的法线,发射出一条光,这个光碰触到物体的时候,就会产生反馈,比如球右下方的一些像素锁发射的光,碰触到了旁边的政法提,产生反馈,标记这里附近有物体,就呈现黑色。、
而球上方的像素所发射的光,没有碰触到任何物体,因此标记为白色。
简单了解算法后,大家就明白,全局光的烘焙师模拟GI(全局光)所呈现的阴影效果,而AO贴图时模拟模型的各个面之间的距离。二者性质是完全不一样的。
我举例简单对比AO贴图和GI阴影贴图的区别。
根据这个低模,右边计算出的AO贴图的黑白关系,是根据物体模型距离产生的,不存在任何光源效果的影响,边缘部分等比较密集的结构,正确的产生了深色,强化了模型结构,在游戏引擎中,与其他通道贴图混合,可以提升游戏的效果。
右边的是全局光烘焙贴图的效果,是用MAX的天光计算结果进行烘焙,其阴影效果是模拟自然光线下的模型光影关系,在有结构接近的区域(比如裤袋、袖口)由于GI得光线跟踪计算会使其弱化,符合自然界光线效果,但是不是游戏所需要的效果。
在unity中,我们有两个地方可以调整AO,一个是在光照贴图渲染器中,有一个调整AO的参数,这个是确实渲染了一层AO。还有一个就是通过摄影机特效,有一个屏幕空间环境阻塞的特效screen
speace ambient occlusion(SSAO).这两个都可以实现部分的AO效果,有兴趣的朋友可以自己尝试一下。
map技术说到底就是用一个虚拟的立方体(cube)包围住物体,眼睛到物体某处的向量eyevec经过反射(以该处的法线为对称轴),反射向量reflectvec射到立方体上,就在该立方体上获得一个纹素了(见下图)。明显,我们需要一个类似天空盒般的6张纹理贴在这个虚拟的立方体上。按CUBE
MAPPING原意,就是一种enviroment
map,因此把周围场景渲染到这6张纹理里是“正统”的。也就是每次渲染时,都作一次离线渲染,分别在每个矩形中心放置相机“拍下”场景,用FBO渲染到纹理,然后把这张纹理作为一个cube
map对象的六纹理之一。这样即使是动态之物也能被映射到物体表面了(虽然缺点是不能映射物体自身的任何部分)。
CUBEMAP的制作方法:
unity3d的官网上有一段代码,叫做Camera.RenderToCubemap
讲的是怎样把我们的场景烘焙成cubemap,里面附有代码,有兴趣的可以在SCRIPT帮助文件中搜索我上一行提到的关键词。
什么是烘焙? 简单地说, 就是把物体光照的明暗信息保存到纹理上, 实时绘制时不再进行光照计算,
而是采用预先生成的光照纹理(lightmap)来表示明暗效果. 那么, 这样有什么意义呢?
由于省去了光照计算, 可以提高绘制速度
对于一些过度复杂的光照(如光线追踪, 辐射度, AO等算法), 实时计算不太现实. 如果预先计算好保存到纹理上,
这样无疑可以大大提高模型的光影效果
保存下来的lightmap还可以进行二次处理, 如做一下模糊, 让阴影边缘更加柔和
当然, 缺点也是有的:
模型额外多了一层纹理, 这样相当于增加了资源的管理成本(异步装载, 版本控制, 文件体积等). 当然,
也可以选择把明暗信息写回原纹理, 但这样限制比较多, 如纹理坐标范围, 物体实例个数...
模型需要隔外一层可以展开到一张纹理平面的UV(范围只能是[0,1], 不能重合). 如果原模型本身就是这样, 可以结省掉.
但对于大多数模型来说, 可能会采用WRAP/MIRROR寻址, 这只能再做一层, 再说不能强制每个模型只用一张纹理吧? 所以,
lightmap的UV需要美术多做一层, 程序展开算法这里不提及....
静态的光影效果与对动态的光影没法很好的结合. 如果光照方向改变了的话, 静态光影效果是无法进行变换的. 而且对于静态的阴影,
没法直接影响到动态的模型. 这一点, 反而影响了真实度
肯定不只这几点,但我暂时只想到这几点
那么怎么生成lightmap呢?
最直接的办法: 光线追踪....(原理想想很简单, 按照物体定律来就可以了)
但是光线追踪这东西......就算用来离线生成我都嫌慢-_-
下面说的这个是利用GPU进行计算的, 跟实时光照没什么两样:
想想实时渲染的顶点变换流程: pos * WVP之后, 顶点坐标就变换到屏幕空间了[-1, 1]
如果VertexShader里直接把纹理坐标做为变换结果输出(注意从[0,1]变换到[-1,1]),
那么相当于直接变换到了纹理坐标系, 这时在PixelShader里还是像原来那样计算光照,
输出的结果就可以拿来做lightmap了
静态模型的Lightmap(光照贴图)与Vertex-Lighting(顶点光照)之比较
通常有个误解就是,Vertex-Lighting是一种不费的静态模型打光手段,因此应该被作为提升地图运行效率和减少文件尺寸的手段。这种观点,在这两方面其实都有问题Lightmap使用平展开的一套UV,如同普通皮肤贴图所需的。Lightmap的贴图大小可以灵活设置,比如64x64。这种方式提供了每像素的光照数据Vertex-Lighting使用的数据结构,包含每个顶点所受光照的亮度和色彩信息。
该数据结构消耗特定量的内存,这个量是由模型的顶点数量决定的,不能随意改变在多数情况下,静态模型应该设成使用Lightmap,因为这可以产生最好的视觉效果,最好的运行效率,而且比Vertex-Lighting消耗更少的内存Lightmap和Vertex-Lighting相比较,具有如下优点:-
Lightmap可以减少CPU和GPU的占用- Lightmap让CPU需要计算的光照和物体间的互动更少-
Lightmap不需要在GPU的多重pass中被渲染- Lightmap
pass被整合进Emissive(自发光)pass中,因此可以缩短渲染时间-
Lightmap可以表现交错覆盖于静态模型三角面上的复杂的每像素光照,然而Vertex-Lighting只能表现顶点到顶点之间线形的渐变-
使用Lightmap的静态模型,可以通过优化使用更少的三角形,获得额外的效率提升。
为使用Vertex-Lighting而制作的模型,通常需要较高的细分度,获得更多的顶点来改善顶点之间的光照过渡,然而这种做法的副作用是提升了模型的三角形数量并影响运行效率-
静态模型上的Lightmap可以设置为使用很小的分辨率,比如16x16或32x32,来减少内存开支。这对于远离游戏中心区域的静态模型来说,非常有用,这同样也适合受光很均匀的模型。
Vertex-Lighting就不具有这种优化的便利,它总是消耗同样数量的内存来存放模型全部顶点的数据结构-
Lightmap可以通过调整UV的布局,来进行优化以提供尽可能好的光照质量。比如,有一个球形岩石,可以将它的底部的三角形的UV尺寸做得很小,从而让这部分在整个Lightmap的UV上面只占据很小一块,这样,对于顶部和侧面来说,就获得了更大的贴图面积于是有更精细的光照效果。Vertex-Lighting的精度总是对应于顶点数,而效果又受模型实际大小的影响(就是说缩小了看还可以的模型,放大比如一百倍,由于顶点不能改变,所以效果也变糙一百倍,而Lightmap因为可以灵活设置精度不存在这个问题),并且不能被优化如果静态模型的三角形和顶点数量很少的话,那使用Vertex-Lighting可能会比使用Lightmap占用更少的内存,然而,使用Lightmap绝对是看起来更好的,效率也更高的。
使用Lightmap让LD可以优化光照的质量和内存的占用所以Lightmap显然是比Vertex-Lighting更好的选择举个例子:比如使用UT3这游戏的静态模型HU_Deco_Pipes.SM.Mesh.S_HU_Deco_Pipes_SM_Pipe01该模型有2555个三角形和2393个顶点如果在场景中放置此模型的420个实例,并且都使用Vertex-Lighting,那么总共消耗11MB内存如果在场景中放置此模型的420个实例,并且都使用32x32的Lightmap,那么总共消耗850kb内存如果在场景中放置此模型的420个实例,并且都使用64x64的Lightmap,那么总共消耗3.3MB内存占用内存的量,也会在地图文件的尺寸上有所表现这个例子中的一部分实例,其所用的Lightmap的精度,可以设到128x128或者更高以便获得最佳的光照效果,而仍然使用相比Vertex-Lighting来说更少的内存。并且使用Lightmap的版本,要比Vertex-Lighting版本在渲染上快8-10个百分点。
Mipmap和detailmap
首先从MIPMAP的原理说起,它是把一张贴图按照2的倍数进行缩小。直到1X1。把缩小的图都存储起来。在渲染时,根据一个像素离眼睛为之的距离,来判断从一个合适的图层中取出texel颜色赋值给像素。在D3D和OGL都有相对应的API控制接口。
透过它的工作原理我们可以发现,硬件总是根据眼睛到目标的距离,来玄奇最适合当前屏幕像素分辨率的图层。假设一张的mipmap贴图,当前屏幕分辨率为。眼睛距离物体比较近时,mipmap最大也只可能从的Mipmap图层选取texel。再次,当使用三线性过滤(trilinear)时,最大也只能访问的图层选取texel,来和图层中的像素进行线性插值。
顾名思义,就是细节的贴图,我这里有一个例子,
使用的着色器:
原理上不用赘述,其实就是图层的叠加与混合。在这里有几个关键词,一个是Detail的Tiling值,一个是这个Detailmap需要在导入的时候设置为Mipmap,里面的参数大家可以试着调一下,至于Mipmap的原理,已经在上面介绍了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 unity3d 4.0 的文章

 

随机推荐