《魔兽世界》室外光照

光照在魔兽世界丰富多彩的场景表现上起着画龙点睛的作用,那些恰如其分的色彩,将整个世界烘染成特点鲜明的大小区域,让人过目难忘。

这些区域性的用色方案,被存储在游戏的光照列表中。实际上,它不仅仅包括光照颜色,还包括了雾、天空、阴影、水体明暗、太阳光晕等诸多颜色。

下面是位于晶歌森林时的截图,该区域的基本用色为紫色。

下面是位于龙骨荒野时的截图,该区域的基本用色为青色。

下面则是由晶歌森林过渡到龙骨荒野时的截图。

截图中可以清楚地看到,从光照到雾都采用了从紫色到青色的过渡色,甚至可以看到过渡时两块区域天空盒的混合。游戏中,这种过渡是如此自然,很少有人会注意到其中隐藏的混合技巧,实际上,它确实存在。

魔兽世界里,从环境光照到太阳光晕的颜色,都以光照球为单位被打包存储在之前提到的光照列表中。每个光照球包含的大致信息如下:

1. 球位置;

2. 球内径、外径;

3. 以时间为索引的颜色组集合。例如环境光橘色、雾色橘色、天空橘色的清晨6点钟颜色组;环境光白色、雾色白色、天空白色的正午12点钟颜色组…

在游戏中,这些光照球被放置在世界的各个区域,它们的分布可能是这样的:

图中包含了红、绿、蓝三个光照球,可以看出它们的位置、内径、外径等简要信息。

在游戏初始时刻,这些光照球按照外径由小到大的顺序被排列成光照队列。参考上图,它们的排列方式为:蓝<绿<红。

渲染时,首先根据玩家(相机)的位置,计算各个光照球对当前光照的影响权重,计算方式如下:

1. 从光照队列末尾,即外径最大的光照球开始,向前遍历;

2. 对于遍历到的光照球,如果玩家不在球内,权重为0,继续遍历。否则,接步骤3;

3. 如果玩家处于内球区域(玩家与球心的距离d小于球内径),则权重为1,同时将之前遍历的所有光照球的权重置0。否则,接步骤4;

4. 如果玩家处于外球区域(玩家与球心的距离d在球内径与外径之间),此时球的权重w = 1 – ((d – 内径) / (外径 – 内径)),同时将之前遍历的所有光照球的权重乘以(1 - w)。

接着,使用各个光照球在当前时刻的各项色值乘以上述权重并求和,所得的结果即是此刻玩家位置的最终各项光照色值。

仍以前图为例,不难看出,图中点A、C、D的色值应分别为绿、红、蓝。而点B的色值计算稍微复杂:

根据光照列表,首先遍历到红色光照球,点B位于红球的内球区域,故红球权重为1;接着是绿色光照球,点B位于绿球的外球区域,按照前述公式将B与球心距离、球内径、球外径带入得到权重w,同时需要将上一步红球权重1乘以(1 - w)记为(1 - w);最后是蓝色光照球,点B不在蓝球内,故蓝球权重为0。最终求得点B的色值为 (绿球色值 * w) + (红球色值 * (1 - w)),它相当于对绿球与红球色值按w进行插值。

可以想象,如果玩家由A点出发经B、C至D,会感受到环境用色由开始的绿色,渐渐过渡到红色,最终变为蓝色的完整过程。

下面是“暴雪嘉年华2010大灾变艺术座谈会”的视频截图,该图展示了在WOW Edit中为场景打光,左上方黄色的双层球形线框即为处于编辑状态下的光照球。

“在制作这些区域中最难的一部分是光线,真的是非常难。我得用光照球给每样东西都打上光线,又难移动又难保存,没有哪个区域是简单的球形。所以我问我们的一个程序员,我们可不可以先把区域的轮廓描出来,然后我好直接整块打上光线?然后他说,我想我们可以做到。然后我们做出了这个非常棒的工具,比如你看到的这个卡里姆多,直接把整个地区描绘分离,整块打上光线,然后再用光照球修饰一下,这对我来说是个巨大的提升。”在座谈会中,魔兽首席环境美工盖瑞·普莱纳如是说。

于是我们知道了在大灾变中,除了光照球之外,暴雪引入了更方便的光照组织方式,尽管尚不清楚程序的具体做法,不过它看起来真的很酷,不是吗?

工作几年,对魔兽的热情鲜有衰减,关注魔兽的各种消息,有时甚至难免捕风捉影之嫌。

一度以为魔兽世界永远不会被超越,因为很难想象这样一个游戏究竟会是什么样子。最近看到一些《激战2》的视频,魔兽世界可能确实要被超越了,也许是因为入行以来对游戏开发有了些许了解,接受这样的想法竟是那么的顺理成章,以至于没有多少惊讶。

每个游戏制作者心中,都有一个《魔兽世界》。也希望每个游戏制作者心中,都有一套构建虚拟世界的可靠方法。

《魔兽世界》室外光照相关推荐

  1. UE4-(室外光照)距离场环境光遮蔽(DFAO)

    不太常用的设置,看情况使用. DFAO的原理:通过距离场网格体,模拟光线反射以及环境光遮蔽效果,但是由于距离场网格体并不精确,无法保证效果始终很好. 距离场环境光遮蔽是有天空光源生成,在场景中拖入天空 ...

  2. UE4-(室外光照)级联阴影贴图(CSM)

    在处理大场景有室内.树木.山地起伏的地形,这种场景时,从远处观察阴影与在室内近距离观察阴影,他们对于光照的要求是不同的.因此会对光照性能产生影响,如果全部使用动态阴影,开销又非常大. 效果:加入可移动 ...

  3. UE4-(室外光照)距离场阴影

    对于级联阴影贴图的局限性(级联距离值较大,阴影模糊,性能消耗较大,级联距离值较小,阴影清晰但是远处的几何体阴影消失),可以考虑使用距离场阴影. 注意:距离场阴影在工程中不会默认开启,需要手动设置,设置 ...

  4. 光照常用设置经验总结--初级(个人笔记)

    目录 1. 使用直接光照的一些经验设置 1.1 光照类型选择 1.2 光照模式说明 1.3 常用属性设置建议 2. color space 色彩空间 3. 环境光设置 3.1 Environment ...

  5. 寒霜2引擎的光照系统确实不是盖的

    曾经以为孤岛危机的画面最牛逼的.结果当我看到战地3时,就彻底震精了!这还是游戏嘛?简直就是电影!它强大的光影系统马上照亮了你的十二氪金狗眼.叛逆连队2的寒霜引擎已经给了我不少的惊喜,寒霜2直接秒掉了我 ...

  6. 【GPU精粹与Shader编程】(一) 全系列核心知识点总览

    系列文章前言 <GPU Gems>1~3 .<GPU Pro>1~7 以及<GEM Zen>组成的GPU精粹系列书籍,是游戏开发.计算机图形学和渲染领域的业界大牛们 ...

  7. 【今日CV 计算机视觉论文速览 第130期】Thu, 13 Jun 2019

    今日CS.CV 计算机视觉论文速览 Thu, 13 Jun 2019 Totally 39 papers ?上期速览✈更多精彩请移步主页 Interesting: ?LED2Netz照明条件估计的去雾 ...

  8. 【今日CV 计算机视觉论文速览 第116期】Mon, 13 May 2019

    今日CS.CV 计算机视觉论文速览 Mon, 13 May 2019 Totally 40 papers ?上期速览✈更多精彩请移步主页 Interesting: ?T-Net新的编码器解码器架构,新 ...

  9. IB客座主编(三):西门子(中国)有限公司工业业务领域楼宇科技集团杜明轩(Christophe de Maistre)先生...

    绿色楼宇--建筑与自然和谐共存 本期客座主编:西门子(中国)有限公司工业业务领域楼宇科技集团高级副总裁兼总经理  杜明轩(Christophe de Maistre)先生 杜明轩先生1991年加入西门 ...

最新文章

  1. [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现Query查询定位中心功能(七)
  2. 计算机搞定44年几何难题,原来这2个人25年前猜对了
  3. Android杂谈---获取手机屏幕大小
  4. 第八周实践项目3 顺序串一些算法操作
  5. 安卓怎么显示res文件夹中的html_使用Android WebView加载现有的.html文件
  6. 【数据库】Mysql函数DATE_ADD() 增加日期/时间
  7. 火了!评分9.7,这本Python书终于玩大了!
  8. 让sublime编译php、js
  9. java socket 清理缓冲器_2021年Java全套面试题抢先看!中篇(更新中......)
  10. sqlyog企业版 v8.32注册码
  11. US1M-ASEMI小电流贴片快恢复二极管
  12. 【CSRF-01】跨站请求伪造漏洞基础原理及攻防
  13. 详解Linux内核红黑树算法的实现 http://blog.csdn.net/npy_lp/article/details/7420689
  14. 【备读学术论文总览】研究方向论文清单
  15. 火车票订票小助手,帮助了很多同事和朋友,安全无毒
  16. 把这一群人称为“知识分子”,实在有一点勉强
  17. kotlin杂谈系列十二(Kotlin和Java的互操作)
  18. 面试/笔试第三弹 —— 数据库面试问题集锦
  19. 信息论:数据压缩和信源编码
  20. CV实战项目--人脸考勤

热门文章

  1. python可视化分析网易云音乐评论_Python数据可视化:网易云音乐歌单
  2. Bit blit----From Wikipedia
  3. 2022年秋招 Java后端程序员如何应对面试?
  4. umi 约定式路由 关于 history.goBack() 的奇奇怪怪问题
  5. Cadence学习三:如何快速的建立artwork层?
  6. 【PHP】极速分销裂变,疯狂砍价活动
  7. 百度地图画出手机GPS行驶轨迹——Web端
  8. 数据挖掘入门必看的几个问题
  9. MySQl排序,别名
  10. MySQL按中文排序