游戏开发Camera之Cinematic Camera-深度
人的視覺系統是二維的,它通過生理和心理的暗示來感知圖像的深度,在現實世界中視覺系統會自動用深度線索depth cue來確定對象之間的距離
游戲畫面也是二維的,用x,y軸來定義,畫面深度用z軸來定義,可以通過創造深度線索depth cue來產生畫面縱深感。
強化Z軸,控制物體與周圍環境的空間位置關系。
linear perspective線條透視
線條透視是一種縱深線索,他與大小和next縱深線索有關,下圖是一條公路。
?
?
強化了近大遠小的視覺效果。
下圖人物的大小充當了上圖的公路。
?
?
著名的Ames room視覺錯覺,讓人誤以為兩個人是在同一平面上的錯覺,就是因為沒有給出足夠的透視線索,而且被屋子的“水平”地面和天棚所誤導。實際上兩個人是有深度關系的。
?
?
其實這個屋子是這樣的
重疊
重疊是一種視覺暗示,也是一種重要的深度線索,經常出現在繪畫、漫畫、動漫等等,來體現前后關系。
如下圖,我們看到的是三個“平面”此時看起來它們是同一平面。把它們加上遮擋關系,你的視覺就會暗示你紅色在紫色上面,紫色在綠色上面。
?
遮擋關系產生的視覺欺騙,下圖是正交透視正方體,你對他他既可以是俯視角度(左側),也可以是仰視(右圖),全部因為有一個藍色長方形的重疊產生的深度效果傳達給你的大腦。
?
思考:此時如果做一個視覺欺騙,把depth在后面的物體,比前面的物體后渲染,就會呈現后面的物體在前面的假象,此時會有什么效果呢?
舉個動漫中的例子,非常平面的兩個人通過重疊產生深度關系,下圖二人如果把小狼放在小櫻前面也不會有違和感。
?
relative height相對高度
此 處主要是地平線上下作對比,因為地平線上的物體是以天空為對比,地平線下物體是以地面為物體。舉一個最簡單的例子,同樣大小的飛機,在天上就是離你很遠真 正的飛機,在地上就是離你很近的飛機模型。因為大腦默認把物體與地面和天空做對比,所以在地平線上物體被認為是離天空很近,所以讓人感覺離得很遠,而在地 面的物體大腦默認和地面作比較,所以讓人感覺離的很近。
?
?
素描等繪畫中的深度
素描中的深度主要是明暗關系,近大遠小,近實遠虛,前緊后松,
也有重疊的使用,對遠處物體的邊緣進行虛化,細節弱化,顏色接近于背景色等等。
relative size相對大小
相對大小產生深度線索
借 用一果殼朋友的回答眼睛里的水晶體相當一個凸透鏡,視網膜相當像面。若看清楚某個物體,必須使它的像落在視網膜上。從人眼瞳孔中心對物體的張角與視角相 等,所以視角的大小決 定了視網膜上物體的像的大小。同樣高的兩棵樹,離開眼睛遠的一棵,它的視角比近處的那棵的視角小,因此,遠處的樹看起來比近處的小,近大遠小就是這個道 理。 簡單的說,就是視角不同。
原理如下圖(博主簡單畫了個圖。。不要介意。。)
?
?
如下圖,藍色小球縮小后明顯感覺是在紅色小球后面
? ?
比如電腦游戲之中的第一款FPS游戲,德軍司令部3D(Wolfenstein 3D),就用這一點產生了深度。
?
aerial perspective空中透視
產生原因,大氣散射,詳見這篇文章unity3d shader之實時室外光線散射(大氣散射)渲染 ,大氣散射光,短波或藍色波長的光易被大氣粒子散射,所以遠處物體大多偏藍,這也是天空是藍色的原因。陽光由于散射增加會減弱并變色。物體也會隨著距離增加散射增加而減弱并變色。
?
大氣中散射由多種原因產生,微粒,塵埃,水蒸氣等等
散射分為瑞利散射Rayleigh Scattering和米氏散射 Mie Scattering ?
瑞利散射是米氏散射的一種
當光線穿過大氣層,大氣中氣體藍色部分瑞利散射強烈,但是紅色或黃色等波長長的瑞利散射很弱。
由于天空產生的藍色的光的散射,陽光到地面的顏色發黃。在日出日落中, 由于空氣密度的增加和地球表面附近的粒子,瑞利散射效應更明顯。
相比之下,水滴組成云與可見光的波長大小類似,更傾向于米氏散射而非瑞利散射。假設所有可見光的波長分布大致相同,因此云看起來是是白色或灰色的。
米氏散射大多數為煙霧和云散射牛奶、生物組織和乳膠漆之類大粒子。
在多云天氣主要是米氏散射(水滴)。發生米氏散射的介質中粒子大,為球形粒子
在空中透視中,近處遠處的物體對比大概是這樣的,顏色變化,邊緣模糊,等等。
?
博主之前在unity引擎中做的散射渲染
?
?
?
這個在刺客信條中很常用啊,就算不去鳥瞰點,不觸發信仰之躍,隨便爬幾層建筑,?????????????????隨處都是空中透視
?
?
?
?
?
texture gradient紋理梯度
通過紋理的近大遠小來產生深度
?
?
在游戲中通常用,地板紋理,石路,磚路等等體現深度,此方法經常與各向異性合用
比如 unity這個各向異性過濾的例子(左無右有),紋理的近大遠小充分的產生了深度,這個例子還使用了線條透視。
?
GTA5中的例子
?
?
其他
不可能圖形impossible figure
不可能圖形impossible figure的深度,
?
陰影產生深度
大腦先驗假設光線來自上方(太陽光)
?
?
figure-ground perception
?
博主近期渲染:最近用unity5弄的一些渲染
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---- by wolf96
轉載于:https://www.cnblogs.com/zhanlang96/p/4925479.html
總結
以上是生活随笔為你收集整理的游戏开发Camera之Cinematic Camera-深度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解BS结构应用程序
- 下一篇: hibernate注解方式来处理映射关系