最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

《魔兽世界》室外光照

IT圈 admin 1浏览 0评论

《魔兽世界》室外光照

《魔兽世界》室外光照

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

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

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

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

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

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

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

         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. 球位置;

         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》的视频,魔兽世界可能确实要被超越了,也许是因为入行以来对游戏开发有了些许了解,接受这样的想法竟是那么的顺理成章,以至于没有多少惊讶。

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

 

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论