「ラスタースクロール」の版間の差分

削除された内容 追加された内容
Loveless (会話 | 投稿記録)
編集の要約なし
4行目:
 
[[ポリゴン]]が採用される前の擬似3Dレースゲームのコース表現や、[[ドラゴンクエストシリーズ|ドラゴンクエスト]]の「旅のとびら」など、使用例は枚挙にいとまがない。
 
なお、業務用ゲーム機や家庭用ゲーム機(メガドライブなど)の中には、各ラインごとに個別にスクロールオフセットを指定できるハードウェアもある。つまり、水平帰線期間に割り込みをかけなくても、垂直帰線期間内で普通に画面を描画すればラスタースクロールと同様の画像が得られる(前出のメガドライブでラスタースクロール様の処理が高速なのはこのため)。
 
逆に、水平帰線期間を割り込みトリガとすることが出来ないハードウェア(ファミコンやFM-TOWNS等)の場合は、ほかの手段で実装する必要がある。
ファミコンの場合は、0番スプライトと走査線の接触を割り込みトリガにできるので、これを応用して実装することが多い。
 
ポリゴンによるリアルタイムレンダリングが一般的になると、画像の変形は簡単な処理の部類となり、ソフトウェアによる代替処理が主流になった。[[2005年]]現在、ラスタースクロールと呼ばれているもののほとんどは、[[正弦|正弦波]]などを利用して画像を変形させている擬似ラスタースクロール、あるいはラスタースクロールの[[エミュレーション]]である。
24 ⟶ 29行目:
* 一番上のラインの一番左へ移動する(垂直帰線期間)
 
ラスタースクロールは、この'''水平帰線期間'''をハードウェア割り込みなどで検知し、画面全体をハ割り込みルドウェアチン内でスクロールさせレジスタを操作する。
水平帰線期間の度に矢継ぎ早にスクロール量を変化させることによって、実際に描画される画面上では、画面の一部のラインだけが横に移動したように見える。
 
=== 例 ===
65 ⟶ 70行目:
[[ファミリーコンピュータ]]などのレイヤー機能を持たないハードウェアにおいて、画面を上下に分割して、ステータスやスコア表示を行ったままもう一方の画面をスクロールさせる([[スーパーマリオブラザーズ3]]など)手法も走査タイミングによる割り込み処理で行っている。
 
上下に分割したい位置で割り込みを発生させ、表示ページやスクロール位置などを切り替えることにより画面の上下で別の表示を行うことが可能となる。
これを全ての走査線で行うとラスタスクロールとなるのでラスタスクロールの前身の技術と言えるが、全ての走査線で処理を行うことを想定していない場合は処理が追いつかず「画面が崩れる」ことがある(ファミコン版『[[ドラゴンクエストIII そして伝説へ…]]』の旅のとびらなど)。
 
<!-- 本来はこっちのほうが先。狭義のラスタスクロールはこの後から出てきた技術 -->
76 ⟶ 82行目:
 
スプライトは画面上に同時に表示できる枚数に限りがあるが、画面上方で表示したスプライトを画面下方で再利用することにより見かけのスプライト表示数を増やす手法。
なお、水平帰線期間内にスプライトICを操作できないハードウェアでは、この方法は使えない。
 
==== スプライトの出現・消滅 ====