[Camera](GDC math tutorial)使用数学使你游戏中的相机更有范儿

原视频链接:
Math for game programmers:Juicing your cameras with math(youtube)

Math-for-Game-Programmers-Juicing(GDC vault)

上面是同一个视频,油管看不了的可以尝试第二个链接。非常有价值的视频!!!每个游戏开发者都应该看看。

你也可以在这个网站上找到相关的资源。
http://www.mathforgameprogrammers.com/


Overview

  • Camera Shake(相机抖动)

    • Translational vs Rotational
    • Noise vs Random
    • 2D vs 3D
  • Smoothed motion (平滑运动)

  • Framing (取景)

    • Points of focus
    • Points of interest
    • Feathering
  • Voronoi split-screen (Voronoi 分屏)

    • Contruction
    • Player- vs split-relative
    • View merging
    • Feathering



Part I: Camera Shake

数学上有两个很有趣的区间,[0,1]和[-1,1]。我们喜欢把参数规范化到这些区间,然后利用各种曲线filter,以产生各种有趣的结果。

关于相机抖动,视频中定义了一个变量来描述,“trauma”。它具有以下特征:

  • 取值范围为[0,1]
  • 受到伤害、压力时(即需要相机抖动时),增加trauma值(如 +=0.2/0.5)
  • Trauma值随着时间线性减小
  • 相机抖动相关于 trauma的平方或立方(非线性)

关于非线性:
现实世界中有很多非线性的存在,如人对明暗的感知是非线性,此外,其实人的许多感觉都是非线性的。振动也是非线性的,比如弹簧。

偏移 vs 旋转:
相机抖动的效果可以通过对相机的位置或是角度进行微调来实现。视频中推荐:

  • 在2D游戏中:我们采用“偏移 + 旋转”的方案
  • 在3D游戏中:我们采用“旋转”方案
  • 在VR游戏中:慎用!!!结果你能想象!

实现方法:


2D

3D

随机 vs 平滑噪声(如perlin噪声):
上面的方法,我们使用随机值来产生偏移量。但使用平滑噪声(smoothed fractal噪声),通常会得到更好的效果。

小结


Part II :Smoothed motion

相机运动都需要平滑,否则会很突兀。最好的方法是使用Cubic Hermit曲线,参见(“Interpolations & Splines” from the GDC 2012 Math Tutorial)。视频中提供了简单的渐进平滑方法。


Tip: 垂直方向和水平方向并不需要使用同一种算法来平滑。渐进系数也可以是随时间改变的变量。

现在公式是帧相关的,我们只要加入timescale即可。



Part III: Framing

通常,相机的关注点是角色,即相机跟踪角色。但有些时候,我们想让相机尽可能关注些场景中特定的东西,如门,道具等等。所以我们通常会设置Points of focus & Points of interest

Points of focus

Points of interest

Points of interest通常只使相机发生小范围的移动。
我们可以定义参数“proximity”,即影响相机的优先级。一个常用的方法是proximity跟距离相关,我们设定距离阈值,使得proximity的值范围为[0,1]。通过与每个points的重要性importance想乘,即可得到影响相机移动的权重。



Part IV Voronoi split-screen cameras

上一部分,我们认识到相机要跟踪角色,使得角色不会从玩家视野内消失。那么,多人游戏就会带来难以解决的相机取景问题。此时,就不得不采用分屏方法了。视频中提供了voronoi图分割方法,感兴趣的可以找资料去了解。



总结

Takeaways
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容