游戏开发Camera之Cinematic Camera-深度

时间:2022-09-21 04:06:44

人的视觉系统是二维的,它通过生理和心理的暗示来感知图像的深度,在现实世界中视觉系统会自动用深度线索depth cue来确定对象之间的距离
游戏画面也是二维的,用x,y轴来定义,画面深度用z轴来定义,可以通过创造深度线索depth cue来产生画面纵深感。
强化Z轴,控制物体与周围环境的空间位置关系。

linear perspective线条透视

线条透视是一种纵深线索,他与大小和next纵深线索有关,下图是一条公路。

游戏开发Camera之Cinematic Camera-深度

游戏开发Camera之Cinematic Camera-深度

强化了近大远小的视觉效果。
下图人物的大小充当了上图的公路。
  游戏开发Camera之Cinematic Camera-深度

著名的Ames room视觉错觉,让人误以为两个人是在同一平面上的错觉,就是因为没有给出足够的透视线索,而且被屋子的“水平”地面和天棚所误导。实际上两个人是有深度关系的。

游戏开发Camera之Cinematic Camera-深度
其实这个屋子是这样的
游戏开发Camera之Cinematic Camera-深度

重叠

重叠是一种视觉暗示,也是一种重要的深度线索,经常出现在绘画、漫画、动漫等等,来体现前后关系。
如下图,我们看到的是三个“平面”此时看起来它们是同一平面。把它们加上遮挡关系,你的视觉就会暗示你红色在紫色上面,紫色在绿色上面。
游戏开发Camera之Cinematic Camera-深度 
遮挡关系产生的视觉欺骗,下图是正交透视正方体,你对他他既可以是俯视角度(左侧),也可以是仰视(右图),全部因为有一个蓝色长方形的重叠产生的深度效果传达给你的大脑。
 游戏开发Camera之Cinematic Camera-深度
思考:此时如果做一个视觉欺骗,把depth在后面的物体,比前面的物体后渲染,就会呈现后面的物体在前面的假象,此时会有什么效果呢?
举个动漫中的例子,非常平面的两个人通过重叠产生深度关系,下图二人如果把小狼放在小樱前面也不会有违和感。
 游戏开发Camera之Cinematic Camera-深度

relative height相对高度


处主要是地平线上下作对比,因为地平线上的物体是以天空为对比,地平线下物体是以地面为物体。举一个最简单的例子,同样大小的飞机,在天上就是离你很远真
正的飞机,在地上就是离你很近的飞机模型。因为大脑默认把物体与地面和天空做对比,所以在地平线上物体被认为是离天空很近,所以让人感觉离得很远,而在地
面的物体大脑默认和地面作比较,所以让人感觉离的很近。
 游戏开发Camera之Cinematic Camera-深度

素描等绘画中的深度

素描中的深度主要是明暗关系,近大远小,近实远虚,前紧后松,
也有重叠的使用,对远处物体的边缘进行虚化,细节弱化,颜色接近于背景色等等。
游戏开发Camera之Cinematic Camera-深度

relative size相对大小

相对大小产生深度线索

用一果壳朋友的回答眼睛里的水晶体相当一个凸透镜,视网膜相当像面。若看清楚某个物体,必须使它的像落在视网膜上。从人眼瞳孔中心对物体的张角与视角相
等,所以视角的大小决
定了视网膜上物体的像的大小。同样高的两棵树,离开眼睛远的一棵,它的视角比近处的那棵的视角小,因此,远处的树看起来比近处的小,近大远小就是这个道
理。 简单的说,就是视角不同。
原理如下图(博主简单画了个图。。不要介意。。)

游戏开发Camera之Cinematic Camera-深度

如下图,蓝色小球缩小后明显感觉是在红色小球后面
   游戏开发Camera之Cinematic Camera-深度

比如电脑游戏之中的第一款FPS游戏,德军司令部3D(Wolfenstein 3D),就用这一点产生了深度。

游戏开发Camera之Cinematic Camera-深度

aerial perspective空中透视

产生原因,大气散射,详见这篇文章unity3d shader之实时室外光线散射(大气散射)渲染 ,大气散射光,短波或蓝色波长的光易被大气粒子散射,所以远处物体大多偏蓝,这也是天空是蓝色的原因。阳光由于散射增加会减弱并变色。物体也会随着距离增加散射增加而减弱并变色。
 游戏开发Camera之Cinematic Camera-深度
大气中散射由多种原因产生,微粒,尘埃,水蒸气等等
散射分为瑞利散射Rayleigh Scattering和米氏散射 Mie Scattering  
瑞利散射是米氏散射的一种
当光线穿过大气层,大气中气体蓝色部分瑞利散射强烈,但是红色或黄色等波长长的瑞利散射很弱。
由于天空产生的蓝色的光的散射,阳光到地面的颜色发黄。在日出日落中, 由于空气密度的增加和地球表面附近的粒子,瑞利散射效应更明显。
相比之下,水滴组成云与可见光的波长大小类似,更倾向于米氏散射而非瑞利散射。假设所有可见光的波长分布大致相同,因此云看起来是是白色或灰色的。

米氏散射大多数为烟雾和云散射牛奶、生物组织和乳胶漆之类大粒子。
在多云天气主要是米氏散射(水滴)。发生米氏散射的介质中粒子大,为球形粒子
在空中透视中,近处远处的物体对比大概是这样的,颜色变化,边缘模糊,等等。
 游戏开发Camera之Cinematic Camera-深度

博主之前在unity引擎中做的散射渲染
 游戏开发Camera之Cinematic Camera-深度游戏开发Camera之Cinematic Camera-深度
 
 
这个在刺客信条中很常用啊,就算不去鸟瞰点,不触发信仰之跃,随便爬几层建筑,•••••••••••••••••随处都是空中透视
 
 游戏开发Camera之Cinematic Camera-深度游戏开发Camera之Cinematic Camera-深度

texture gradient纹理梯度

通过纹理的近大远小来产生深度

游戏开发Camera之Cinematic Camera-深度

在游戏中通常用,地板纹理,石路,砖路等等体现深度,此方法经常与各向异性合用
比如 unity这个各向异性过滤的例子(左无右有),纹理的近大远小充分的产生了深度,这个例子还使用了线条透视。
 游戏开发Camera之Cinematic Camera-深度
GTA5中的例子
 游戏开发Camera之Cinematic Camera-深度

其他

不可能图形impossible figure

不可能图形impossible figure的深度,
 
游戏开发Camera之Cinematic Camera-深度

阴影产生深度

大脑先验假设光线来自上方(太阳光)
 
 游戏开发Camera之Cinematic Camera-深度

figure-ground perception

游戏开发Camera之Cinematic Camera-深度

博主近期渲染:最近用unity5弄的一些渲染

---- by wolf96