視差滾動
編輯視差滾動是計算機圖形學中的一種技術,其中背景圖像通過相機的速度比前景圖像慢,從而在距離的 2D 場景中產生深度錯覺。該技術源于 1930 年代以來傳統動畫中使用的多平面相機技術。
視差滾動在 2D 計算機圖形學中得到普及,并在 1980 年代初期引入了視頻游戲。街機視頻游戲 Jump Bug (1981) 中使用了一些視差滾動。它使用了有限的視差滾動形式,主場景滾動,星空固定,云朵緩慢移動,增加了風景的深度。次年,Moon Patrol (1982) 實現了完整的視差滾動形式,三個獨立的背景層以不同的速度滾動,模擬它們之間的距離。Moon Patrol 經常因普及視差滾動而受到贊譽。叢林之王 (1982),后來被稱為叢林狩獵,也有視差滾動,并在 1982 年 6 月的月球巡邏一個月后發布。
視差滾動的方法
編輯街機系統板、視頻游戲控制臺和個人計算機系統的標題中使用了四種主要的視差滾動方法。
層法
一些顯示系統支持多個背景層,可以在水平和垂直方向上獨立滾動并相互合成,模擬多平面相機。在這樣的顯示系統上,游戲可以通過簡單地將每一層的位置在同一方向上改變不同的量來產生視差。移動得更快的層被認為離虛擬相機更近。層可以放置在游戲場的前面——包含玩家與之交互的對象的層——出于各種原因,例如提供更大的維度、模糊游戲的某些動作或分散玩家的注意力。
精靈方法
程序員還可以制作精靈的偽層——由硬件在層之上或之后繪制的單獨可控的移動對象——如果它們在顯示系統上可用的話。例如,NES 的俯視垂直滾動射擊游戲 Star Force 將其用于其星空,而 Super NES 的 Final Fight 將這種技術用于緊鄰主操場前面的圖層。
Amiga 計算機的精靈可以有任何高度,并且可以與銅協處理器水平設置,這使得它們非常適合此目的。
Amiga 上的 Risky Woods 使用與銅多路復用的精靈來創建整個全屏視差背景層,作為系統雙場模式的替代方案。
重復圖案/動畫方法
通過對各個圖塊位圖進行動畫處理,可以使由單個圖塊構成的滾動顯示“浮動”在重復的背景層上,以描繪視差效果。顏色循環可用于在整個屏幕上快速為圖塊設置動畫。這種軟件效果給人以另一個(硬件)層的錯覺。許多游戲將這種技術用于滾動星域,但有時會實現更復雜或多方向的效果,例如在 Sensible Software 的游戲 Parallax 中。
光柵法
在光柵圖形中,圖像中的像素線通常按從上到下的順序進行合成和刷新,在繪制一條線和繪制下一條線之間會有輕微的延遲(稱為水平消隱間隔)。為較舊的圖形芯片組設計的游戲(例如第三代和第四代視頻游戲機的游戲、專用電視游戲的游戲或類似手持系統的游戲)利用光柵特性來創建更多層的錯覺。
一些顯示系統只有一層。其中包括大多數經典的 8 位系統(例如 Commodore 64、Nintendo Entertainment System、Sega Master System、PC Engine/TurboGrafx-16 和原版 Game Boy)。此類系統上的更復雜的游戲通常將圖層劃分為水平條,每個條具有不同的位置和滾動速度。通常,屏幕上較高的條帶表示距離虛擬相機較遠的事物,或者一條條帶將保持靜止以顯示狀態信息。然后程序將等待水平空白并在顯示系統開始繪制每條掃描線之前更改圖層的滾動位置。這稱為光柵效果,對于更改系統調色板以提供漸變背景也很有用。
一些平臺(例如 Commodore 64、Amiga、Sega Master System、PC Engine/TurboGrafx-16、Sega Mega Drive/Genesis、Super NES、Game Boy、Game Boy Advance 和 Nintendo DS)提供水平空白中斷來自動設置寄存器獨立于程序的其余部分。其他的,比如NES,需要使用周期定時代碼,它是專門編寫的,它的執行時間與視頻芯片繪制一條掃描線所用的時間一樣長,或者游戲卡帶內的定時器在給定次數后產生中斷。已繪制掃描線。許多 NES 游戲使用這種技術來繪制它們的狀態欄,而《忍者神龜 II:街機游戲》和《Vice:NES 的末日計劃》使用它以不同的速率滾動背景層。
更高級的光柵技術可以產生有趣的效果。如果將圖層與柵格相結合,系統可以實現非常有效的景深;Sonic the Hedgehog、Sonic The Hedgehog 2、ActRaiser、Lionheart、Kid Chaos 和 Street Fighter II 都很好地使用了這個效果。如果每條掃描線都有自己的圖層,則會產生 Pole Position 效果,從而在 2D 系統上創建偽 3D 道路(或 NBA Jam 中的偽 3D 球場)。
如果顯示系統除了滾動之外還支持旋轉和縮放(一種通常稱為模式 7 的效果),則更改旋轉和縮放因子可以繪制平面投影(如在 F-Zero 和超級馬里奧賽車中)或可以扭曲運動場創造一個額外的挑戰因素。
另一種先進的技術是行/列滾動,屏幕上的瓦片的行/列可以單獨滾動。自 Sega Space Harrier 和 System 16、Sega Mega Drive/Genesis 控制臺和 Capcom CP System、Irem M-92 和 Taito F3 System 街機游戲板以來,該技術已在各種 Sega 街機系統板的圖形芯片中實施。
例子
編輯在下面的動畫中,三層以不同的速度向左移動。它們的速度從前向后遞減,并對應于與觀察者的相對距離增加。地面層的移動速度是植被層的 8 倍。植被層的移動速度是云層的兩倍。
- 云層 - 返回
- 植被層 - 中間
- 地層 - 前面
- 動畫
網頁設計中的視差滾動
編輯Web 開發人員 Glutnix 在 2007 年的博客文章中創建并分享了瀏覽器中視差滾動的首批實現之一,其中包括示例代碼和使用 JavaScript 和 CSS 2 的演示,支持 Internet Explorer 6 和那個時代的其他瀏覽器。然而,直到 2011 年 HTML5 和 CSS 3 編碼的引入,該技術才在 Web 設計師中流行起來。擁護者認為這是一種擁抱網絡流動性的簡單方法。支持者使用視差背景作為更好地吸引用戶并改善網站提供的整體體驗的工具。然而,普渡大學 2013 年發表的一項研究揭示了以下發現:……雖然視差滾動增強了用戶體驗的某些方面,但它并不一定會改善整體用戶體驗。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/138519/