人的视觉系统是二维的,它通过生理和心理的暗示来感知图像的深度,在现实世界中视觉系统会自动用深度线索depth cue来确定对象之间的距离游戏画面也是二维的,用x,y轴来定义,画面深度用z轴来定义,可以通过创造深度线索depth cue来产生画面纵深感。强化Z轴,控制物体与周围环境的空间位置关系。
linear perspective线条透视
线条透视是一种纵深线索,他与大小和next纵深线索有关,下图是一条公路。
强化了近大远小的视觉效果。下图人物的大小充当了上图的公路。
著名的Ames room视觉错觉,让人误以为两个人是在同一平面上的错觉,就是因为没有给出足够的透视线索,而且被屋子的“水平”地面和天棚所误导。实际上两个人是有深度关系的。
其实这个屋子是这样的
重叠
重叠是一种视觉暗示,也是一种重要的深度线索,经常出现在绘画、漫画、动漫等等,来体现前后关系。如下图,我们看到的是三个“平面”此时看起来它们是同一平面。把它们加上遮挡关系,你的视觉就会暗示你红色在紫色上面,紫色在绿色上面。 遮挡关系产生的视觉欺骗,下图是正交透视正方体,你对他他既可以是俯视角度(左侧),也可以是仰视(右图),全部因为有一个蓝色长方形的重叠产生的深度效果传达给你的大脑。 思考:此时如果做一个视觉欺骗,把depth在后面的物体,比前面的物体后渲染,就会呈现后面的物体在前面的假象,此时会有什么效果呢?举个动漫中的例子,非常平面的两个人通过重叠产生深度关系,下图二人如果把小狼放在小樱前面也不会有违和感。
relative height相对高度
此 处主要是地平线上下作对比,因为地平线上的物体是以天空为对比,地平线下物体是以地面为物体。举一个最简单的例子,同样大小的飞机,在天上就是离你很远真 正的飞机,在地上就是离你很近的飞机模型。因为大脑默认把物体与地面和天空做对比,所以在地平线上物体被认为是离天空很近,所以让人感觉离得很远,而在地 面的物体大脑默认和地面作比较,所以让人感觉离的很近。
素描等绘画中的深度
素描中的深度主要是明暗关系,近大远小,近实远虚,前紧后松,也有重叠的使用,对远处物体的边缘进行虚化,细节弱化,颜色接近于背景色等等。
relative size相对大小
相对大小产生深度线索借 用一果壳朋友的回答眼睛里的水晶体相当一个凸透镜,视网膜相当像面。若看清楚某个物体,必须使它的像落在视网膜上。从人眼瞳孔中心对物体的张角与视角相 等,所以视角的大小决 定了视网膜上物体的像的大小。同样高的两棵树,离开眼睛远的一棵,它的视角比近处的那棵的视角小,因此,远处的树看起来比近处的小,近大远小就是这个道 理。 简单的说,就是视角不同。原理如下图(博主简单画了个图。。不要介意。。)
如下图,蓝色小球缩小后明显感觉是在红色小球后面 比如电脑游戏之中的第一款FPS游戏,德军司令部3D(Wolfenstein 3D),就用这一点产生了深度。
aerial perspective空中透视
产生原因,大气散射,详见这篇文章 ,大气散射光,短波或蓝色波长的光易被大气粒子散射,所以远处物体大多偏蓝,这也是天空是蓝色的原因。阳光由于散射增加会减弱并变色。物体也会随着距离增加散射增加而减弱并变色。 大气中散射由多种原因产生,微粒,尘埃,水蒸气等等散射分为瑞利散射Rayleigh Scattering和米氏散射 Mie Scattering 瑞利散射是米氏散射的一种当光线穿过大气层,大气中气体蓝色部分瑞利散射强烈,但是红色或黄色等波长长的瑞利散射很弱。由于天空产生的蓝色的光的散射,阳光到地面的颜色发黄。在日出日落中, 由于空气密度的增加和地球表面附近的粒子,瑞利散射效应更明显。相比之下,水滴组成云与可见光的波长大小类似,更倾向于米氏散射而非瑞利散射。假设所有可见光的波长分布大致相同,因此云看起来是是白色或灰色的。米氏散射大多数为烟雾和云散射牛奶、生物组织和乳胶漆之类大粒子。在多云天气主要是米氏散射(水滴)。发生米氏散射的介质中粒子大,为球形粒子在空中透视中,近处远处的物体对比大概是这样的,颜色变化,边缘模糊,等等。 博主之前在unity引擎中做的散射渲染 这个在刺客信条中很常用啊,就算不去鸟瞰点,不触发信仰之跃,随便爬几层建筑,•••••••••••••••••随处都是空中透视
texture gradient纹理梯度
通过纹理的近大远小来产生深度
在游戏中通常用,地板纹理,石路,砖路等等体现深度,此方法经常与各向异性合用比如 unity这个各向异性过滤的例子(左无右有),纹理的近大远小充分的产生了深度,这个例子还使用了线条透视。 GTA5中的例子
其他
不可能图形impossible figure
不可能图形impossible figure的深度,
阴影产生深度
大脑先验假设光线来自上方(太阳光)
figure-ground perception
博主近期渲染:
---- by wolf96