http://tieba.baidu.com/p/2690022869

转眼从北京辞职回老家也一年多了,在游戏公司干了几年回来我们这样的小城镇还真不知道该做点什么,所以也一直没找工作,在家花了几个月时间研究了下Unity自己做了个小游戏,因为以前在公司是专为游戏场景制定和制作最后的照明方案的,现在和大家聊一下游戏的灯光配置方案吧,小的我才疏学浅有什么不对的地方还请各位大神轻拍砖,大家一起多多交流~~因为现在主要聊的是照明的一些思路和方案,所以不会有太多的技术性的东西,如果有需要,在之后的文章里我会写一些更多的技术贴!好了~磨磨唧唧半天还是进主题吧!

众所周知光线可以控制人们的活动,影响人们的心情,也可以影响人们感知各种事物的方式,然而人类对光线是如此地习惯,所以并没有多少人能够真正静下来去思考它,事实上许多CG艺术家大部分时间是在工作室里的,他们看到自然界光线的机会也就相对较少了,可是如果想要出色的运用光线创作出丰富的作品,了解光线的自然特性是一个基本要素。对于光线的一些基本知识我在这里就不废话了,网上随便一搜有很多更专业的文章!
在游戏里因为是游戏,所以一些照明往往比现实中的光线更夸张一些,但基本的特性是一样的,我们仅仅只是让游戏场景展现得更吸引人罢了!

先说一下Unity自身的灯光吧,Unity有着不错的灯光系统和灯光类型(至于Unity的灯光怎么运用我在这里也不多说了,官方的帮助文档里写得很清楚,网上也有一些不错的文章),可以在制作游戏当中就实时的观察到各种效果,包括强度,颜色,阴影等都可以在制作过程中灵活的调整。当然这样实时的光照对于游戏来说实在是太奢侈了,特别是面对手机游戏的时候,所以我们往往选择的是配置好灯光然后烘焙灯光贴图,这样可以大大的节省游戏运行的计算量,通俗点说就是不会让游戏太卡!Unity自带的烘焙系统也很强大,专业版的Unity还可以运用GI,这样可以大大提高烘焙的效果,更神奇的是Unity还会自动帮你分好所有Mesh的第二套UV,并自动分配好各自的LightMap,还能直接烘焙出AO图,这样的功能真的可以说相当方便了!
但我个人觉得这样烘焙灯光贴图虽然相当方便,但也有很大的弊端。第一,Unity毕竟只是游戏引擎,它再怎么强大,可灯光系统也不会有专门的三维制作软件强大,比如说Max或者maya都有独立的灯光类型和一些插件的灯光类型,灯光的可调性也比Unity多很多,更别说可以运用各种高级渲染引擎把光照发挥到极致了。第二,Unity自动烘焙的灯光贴图通常是引擎自动分配的,什么东西在哪一张贴图上很不好控制,而且烘焙贴图的数量貌似也不能控制,这样对后期修改来说是很致命的,往往是要重新烘焙一次比如说加了一个区域灯。如果想在PS里手动修改其中一张灯光贴图,比如一个阴影的硬边或者锯齿,那你要找到这个物体在哪一张灯光贴图里的位置那就和大海捞针没什么区别了!但如果你用Max或Maya来烘焙灯光贴图不仅可以用高级渲染引擎,而且可以很好的控制物体所在的灯光贴图和灯光贴图数量,点对点的修改也是很方便的。第三,Unity烘焙的灯光贴图往往是不好修改和合成的,而用Max或Maya烘焙的图就可以灵活的烘焙出Color层,Shadow层,AO层等等,这样后期用PS,Nuke,AE等这些神器来调色、调整对比度、调整明暗等等来最终的合成,那是相当方便与快捷的,而且效果会好很多倍!稍微懂点影视后期合成的同学一看就知道~呵呵!~
所以呢我在制作灯光贴图的时候一般都是用Max或Maya来完成的,至于Unity的烘焙方法我记得看过官方的一遍文档写的已经很详细了,感兴趣的朋友可以自己去找一下,在Unity圣典里有中文版的(在此也对Unity盛典里的几位大神表示感谢!)。

好了,现在来聊一下给一个游戏场景设定灯光的方法吧!当模型组和地编把一个完整的场景交到你手上的时候,一开始你往往是感觉到无从下手,就拿我的一点实践简单的说一下个人的经验吧!首先要做的就是检查模型,这一步很重要,它不仅影响到后期的渲染计算量,还直接给程序那边带来压力,模型最容易出的问题就是没合点,或者各种导模型之后有些模型会出现双面,甚至是多个面重叠在一起,这个问题模型组的兄弟在建模的时候很容易疏忽大意,灯光组的朋友就相对容易发现一些了~最简单的方法就是打上简单的key light,给个白的材质球,然后渲染模型的360度旋转的动画,如果有闪面的地方那一定是有面重合的地方。尽量避免大面积的面重叠,双面叠加在一起就更该杜绝了(除非有特殊要求需要看到背面,但也要留一定的距离,不能直接勾选材质球的2-Sided),因为当你用高级渲染器(比如 finalRender ,Vray , MentRay等等….)这些渲染器使用二次光线反弹时,有重叠的面会成倍的增加渲染时间,更致命的是烘焙的的灯光贴图会有明显的黑边!
其次一个问题就是检查有没有模型是漂浮在空中的,这个问题地编组在大量布置场景的时候是会经常发生的问题,他们也很难发现这些小细节(特别是在加了一个月班的时候~嘿嘿~~),这个问题有了灯光也很好解决,只要打开阴影什么东西是漂浮的是很容易发现的!
发现这些问题要及时和模型组和地遍组沟通,及时修复这些问题,因为他们修改可能只需要半天时间,而你辛辛苦苦配置好灯光,再开高配渲染可能需要一两天时间,然后再发现这些问题,你又得重复一次,这时间真耗不起!~

在确定好模型方面没有问题了,就可以和艺术总监一起商量整个场景的风格、配色、光影……等等!然后快速的出几套简单的效果图Demo,一起来确定最后的方案。

室外的大场景一般是由自然光线构成,自然光具有各种各样的类型,并且它们之间区别非常之大。虽说自然光的光源都是太阳,但在不同时间和不同的天气情况下阳光表现出许多不同的特性,或软或硬、或冷或暖,使这种单一的光源变化出许多的形态,还有晚上的月光,这时更多的还有些人工照明。当然在一些奇幻的场景里灯光的颜色就和正常情况下有一定的区别了,为突出场景的奇幻性灯光的色彩一般会提高一些饱和度,让每一个区域的色彩对比更明显一些。

室内的场景,比如说宫殿、房屋内、山洞等,这些场景为了突出各自的特色更多的就是人工光照明了,这时一个灯光师的经验就很重要了,多看一些优秀的CG作品和观察现实当中夜晚灯光的一些细节会让你有更多的灵感!最好做到在没有打灯前你大脑里就已经有整个场景在丰富灯光下的景象,在布置灯光时也是从整体到细节,一步步到最终理想的画面。室内灯光一般比较多,建议同类灯光用关联复制这样修改起来是相当方便的!
室内光线与室外光线有很多性质上的不同,最大的不同是室内光线总是伴随着光线强度与发散距离成反比的现象,简单说就是所有人造光线都会有光线强度逐渐减弱的现象。人类掌控之下的光源还有另一个特殊之处,那就是它们总是为了满足人们的某种目的和需要服务的,这也是一个游戏灯光师必须做到的,我们要为这个游戏场景打出漂亮而且还符合游戏故事背景的绚丽灯光,烘托出这个场景的特定氛围!
在游戏里还有一种特殊的光照,那就是功能性光照,比如说一条路的指引、传送点的亮光或者一棵很奇异的树的自发光…等等。

另外还有一种情况属于混合照明,自然光和人造光并存于环境中,黄昏和夜晚时尤为常见。它们常带来色彩和强度有意思的组合,特别是当自然光的蓝色和钨丝灯或火焰的橙色这一组互补色共同出现时效果更有趣,也是我个人比较热衷的配色方案!

在对一个场景进行打灯光的同时,还有一个非常重要的元素——阴影!这是我们在最初的设计时就应该考虑进去的东西。通常有两种形式的阴影:轮廓阴影和投射阴影。轮廓阴影是物体表面上光源的光线无法到达的背阴处。而投射阴影即是我们一般理解的影子,它是当物体处于光源和某一表面之间时,在处于其后方表面上投下的阴影。阴影在整个场景中起到了很重要的作用,它能带来现实感,也能勾勒出物体的轮廓,还能塑造戏剧性和悬疑的效果。所以在为一个场景设计灯光方案的时候,阴影同样需要和灯光一样重要的元素考虑进去!

还得补充一个特殊的东西,那就是环境光遮蔽,也就是AO层,也有的叫OCC层。在三维图像制作中,增添环境光遮蔽层是加强真实感的另一种方法。尽管下图中没有实际的照明,但由于应用了这项技术而具有了纵深感和真实性,这正说明了阴影对纵深感和形态的描绘力,在物体接近和相交的区域增添阴影的这种做法对任何画面都有效果。

在散射光源下,环境光遮蔽是我们认知物体形状的唯一途径,随着物体与物体的接近,他们之间来自环境的散射光越来越少,相近的表面就形成了阴影。另外值得注意的是,环境光遭遇的阻碍越多,阴影的色调就越暗。

一般情况下阴影的照明是由辅助光提供的,辅助光通常是一种次光源或反射光源。在绝大多数情况下,辅助光的光源是柔和的散射光源,比如墙面和地面的反光或天空光,也就是说即使在强烈的阳光下,物体的背阴面仍然是由辅助光照亮的。阴影呈黑色的情况极为罕见(至少是在地球上),它们总是带有一定的柔和光线与温暖色彩。

这也是选择Max或Maya等三维软件来烘焙灯光贴图的主要原因。Unity自带的渲染引擎虽然方便快捷、操作简单,而且能自动生成AO图,但毕竟它不是专业的渲染引擎,所以在全局照明和二次光线反射上是远远不及专业的渲染引擎的!

在使用Max或Maya进行渲染时,如果打开了二次反弹和GI,渲染引擎对光线进行追踪计算,它能产生最准确的照明结果,但需要花费较长的渲染时间。此时可以理解为渲染器把光能看做是一种辐射,根据物体表面颜色的不同,照射到该物体表面的光线要么被反射,要么被吸收。白色的物体会均等的反射所有波长的光波,而黑色物体则会把所有光波都吸收掉。当白色的光线照射到红色的物体表面时,蓝色和绿色的光波被吸收,而红色则被反射回来。所以,当白色的光线照射到红色的物体表面时,被反射的是红色光波,而这些光子在行进路线中碰到另一个物体表面时,便会将红色的光线照射到这个物体表面上。这种现象就是光的辐射,它的存在使邻近物体的颜色发生相互作用。这也是非常美妙的,它让整个场景看上去更加充满了真实感。如果这些细节都交给美工去做那是非常复杂与繁重的工作,而光线天生就是一个绘画家它把各种色彩表现得更加生动,也在细节上精益求精!这使得我们的美工同学省去了很多时间,美工只需要绘制一个模型的基本固有色和简单阴影,其他的都可以交给灯光组来优化它!
Max在使用高级渲染引擎时,可以更好的控制光线对物体的影响,包括光线在反射时对物体颜色的相互作用、阴影的强度和颜色等等~这些都可以很容易的在渲染设置里调节!这样比在Unity里设置灯光就更加的灵活与方便!

今晚就写到这,至于怎么在Max里设置灯光到最终烘焙灯光贴图,AO图等等,我会在之后的文章里详细介绍!还是那句话请各位大神轻拍砖,欢迎大家和我多交流共同学习!在这留个我的邮:wslxj928@163.com 希望大家多多交流!另外小的狗胆把我前段时间完全自己独立开发的一个手机小游戏发出来(http://www.appchina.com/soft_detail_1282204_0_10.html),因为是卡通风格所以上面所说的一些问题没有完全表现出来,但基本的光照理念也能从中看得到,如果方便也劳驾大家下载一个看看,完全是免费的,也不插播任何广告,仅仅只是大家一起学习之用!如果需要介绍游戏的制作过程,那我也会花点时间详细的写一份教程,但程序方面我也只是个菜鸟,勉强能用罢了!
好了!祝大家晚安!~如有转载请大家注明出处,谢谢了~

简谈游戏场景灯光配置方案相关推荐

  1. 游戏型计算机配置方案4000,两个方案任你挑选 4000左右带显示器主流电脑配置推荐...

    有朋友想组装一套电脑,家用做做网店什么的,暂时也不打算玩大游戏,带显示器4000左右,最好不要独显和固盘,以后手头宽裕了再升级.针对需求,下面小编就来带来相关配置方案,感兴趣的朋友千万不要错过了. 先 ...

  2. 游戏型计算机配置方案4000,高性价比游戏配置 4000元i5-7500配GTX1050Ti电脑配置推荐 (全文)...

    时至今日,Intel第七代Kaby Lake处理器已经全面上市发售了,目前无论是入门还是中高端处理器深受玩家关注.随着新平台硬件日益普及,对于今后接下来的一年时间里新装机的朋友来说,新平台.新技术.新 ...

  3. Game AI SDK开源发布:基于图像的游戏场景自动化框架

    导语 2020年7月,我们探讨了AI与自动化测试的关系,并向大家介绍了腾讯互动娱乐事业群TuringLab团队出版的<AI自动化测试:技术原理.平台搭建与工程实践>一书.这本书将Turin ...

  4. 计算机装配方案之游戏发烧型,2017年新装机方案 intel七代i7-7700K配GTX1080游戏发烧电脑配置...

    近期,intel正式发布了最新第七代Kaby Lake处理器,其中旗舰级i7-7700K型号备受关注,在i7-7700K没有发布之前,网上多家IT网站已经发布了评测,有兴趣的朋友可以去看看第七代酷睿i ...

  5. 计算机游戏配机方案,爽玩单机大型游戏 万元级i7-8700K配RTX2070高端电脑主机配置方案...

    虽然,intel已经推出了全新九代处理器,但是由于相比八代提升不大,没有七代到八代性能提升的诱惑力,加之价格偏贵,所以在目前,intel八代依然是主流装机平台.近期有一个网友称自己想要配一台一万元的高 ...

  6. 计算机游戏配机方案,现在主流台式机配置方案 2017年i5-7500配GTX1060游戏电脑配置推荐...

    组装一台最佳的电脑主机,需要结合预算.用途来搭配,一般来说,只要您预算充足,都是能够满足用途的.目前的DIY电脑的需求来说,玩游戏的玩家占比是最多的,现在主流台式机配置方案最多就是定位中高端的inte ...

  7. 一个简单的游戏框架:配置表方案

    一个简单的游戏框架:配置表方案 代码:https://github.com/HushengStudent/myGameFramework 1.配置表格式 csv,逗号分隔,可以使用wps和Excel打 ...

  8. python nonlocal的用法_简谈Python3关键字nonlocal使用场景

    下面是之前提过的有待提升效率的计算移动平均的方法: def make_averager(): series = [] def averager(new_value): series.append(ne ...

  9. 【转】从工作中总结的游戏场景设计思路浅谈(一)

    假设在一款游戏刚刚开始进行设计制作的时候,我们刚刚开始入手,如何顺利的完成,并且是可行.正确无误的设计呢?让我们一步步来看吧. 设计工作可以分解成 四个部分 组成,而其中每个部分又可以分成几个步骤进行 ...

最新文章

  1. AI又被彩虹吹!​网易被预言为“下一个百度”?
  2. [Node.js] 2、利用node-git-server快速搭建git服务器
  3. 完整的python项目流程
  4. 在kde中让gvim自动最大化
  5. 蛋花花谈Web开发到底要不要加入人工智能
  6. 编程之美-电梯调度算法方法整理
  7. 雅虎与软银构和:拟出售雅虎日本35%股份
  8. Pandas GroupBy 分组(分割-应用-组合)
  9. python怎么打开程序管理器_python进程管理工具supervisor的安装与使用教程
  10. axios.all()解决并发请求的问题
  11. 互联网企业安全高级指南3.7 如何看待SDL
  12. 微信小程序轮播图禁止滚动
  13. 夜神模拟器调试Android应用程序
  14. [Unity插件]着色器关键字分析工具ShaderControl
  15. 进行淘宝商品比价的定向爬虫
  16. java中jsp是什么_JSP是什么?
  17. WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口
  18. 【FPGA入门教程】(七)FSM(Finite State Machine,有限状态机)设计
  19. 神兽大厅源码搭建SLB最佳实践
  20. 微信控制树莓派运行python_Python+树莓派+人体红外感应模块 实现微信监控

热门文章

  1. windows平台goldgate同步oracle数据库
  2. muduo::Acceptor、TcpServer分析
  3. C++核心准则​NL.11:使字面值可读
  4. MySQL迁移数据(切换数据保存的文件夹)
  5. 普通人做自媒体怎么赚钱?
  6. 计算机房消防应急预案,计算中心机房火灾应急预案
  7. 記憶卡防寫保護了怎麼辦?
  8. 卖空大师”:中国经济构造畸形 坚决卖空中国
  9. micro hdmi引脚定义义_MAX232引脚图 接线图 电路图 及RS232引脚定义
  10. kdevtmpfsi 处理(挖矿病毒清除)