割り込み失礼致します



[ このメッセージへの返事 ] [ 返事を書く ] [ home.html ]



投稿者: R.O.M @ 205.218.156.43 on 97/10/17 14:47:48

In Reply to: 愛野どれいsanといーぢまsanへ(ポリゴンちらつき)

posted by Miss.MIGHT @ isu1.main.eng.hokudai.ac.jp on 97/10/17 13:15:58

> YZ-Xさんの「サターンはポリゴンがスプライトだからちらつくの?」という
> 質問にたいするレスで、結果的には両名がおっしゃるとおり、基本的には「NO」
> なのですが、むげに「NO」!といいきるのも、アレかなということで「ある
> 意味そうです」というタイトルをつけました。で、私の意図したことは、「サ
> ターンはポリゴン専用ハードをとくにもってない→処理が繁雑になりよほどき
> ちんとつくらないとポリゴンがちらつきやすい」で、「サターンはポリゴンを
> 、本来3D処理にはむているとは思われないスプライトで代用している」との
> ことから、間接的に「サターンはポリゴンがスプライトだからちらつく」とい
> うことでした。文面からその意図が伝わらず、失礼しました。

え〜と、イマイチおっしゃる意味が解らないんですが、"ちらつく"っていう
現象は、単純に処理遅れの結果であって、ポリゴンがスプライトだからとか、
そうじゃないからって事はあまり関係無いように思うのですが…

Saturnがどのようにポリゴン生成を行っているのかは解りかねますが、
専用の座標演算器を搭載してはいないそうですから、座標計算はメイン
CPUのSH-2でやるって事ですよね?

Saturnのレンダリングエンジンがどこまで仕事が出来るのかについても
解りかねますが、座標を算出されて点の集合になり、次に線の集合に
なる訳ですが、この段階(セットアップ)ではどうでしょう? ここの処理も
SH-2で行う筈です。 この処理が終わって始めてレンダリングエンジンの
出番な訳ですが、例えば1/60秒で動くゲームの場合、この一連の処理を
1/60秒で終わらせる必要が有ります。

CPUが座標演算、セットアップを行っている場合に、CPUに負荷をかける
様な割り込みが入ったとします。 そうするとCPU側は上記の処理に
専念出来ない訳で、ここで処理遅れが生じます。 あるフレームの分の
座標演算やセットアップの結果がレンダリングエンジンに1/60秒以内で
渡らず、表示されるべき物が表示されないって事です。

V.Oの爆炎やナイツ等で画面処理が複雑になると急に画面がちらつくのは、
CPUが別のタスクに処理時間を割いているか、システムバスが他のデータ
転送によって占有されていたりして、本来するべき仕事が出来ていないから
だと思うんですが、いかがでしょう? プレイヤーがパッドに入力したり、
効果音が入ったりしても結果としてCPUの仕事を阻害する訳です。 開発者は
恐らく誰がどこでどんな入力をしたりするかまでは予測が付く訳無いですから、
開発段階では見られなかった処理遅れも、実際には起きてしまう事も
あるんでしょう。

また、Saturnのバス速度では、CPUで計算した結果がすぐさまレンダリング
エンジンに渡る訳じゃ無いでしょう。 数クロックを要する筈です。 これも
処理遅れの原因の一つであると思いますし、高解像度でフレーム数を稼ぐのが
難しい理由だと思います。

Frame Bufferに余裕があって、Double Buffeingを用いてFront Surfaceに
書き込みをしている時点で、Back Surfaceでは次の処理を行っていると
いうような工夫があれば、ちらつきは防げるかも知れません。 つまり
先行投資みたいなものですが。 ちなみに、最近のレンダリングエンジンの
中には、Tripple Bufferingを行う物も有ります。

以上の予測から、画面のちらつきはスプライトだからとか、専用のハードを
持っている/持っていないじゃなく、単純に処理遅れしてるからです。
専用のハードがあっても、処理遅れする時はしますし、画面だって無論
ちらつきます。 言い方を変えれば、開発者側が限界性能ぎりぎりの所で
開発してるからだって思います。

という訳で私の勝手な推測でした。 もし誤っている所がありましたら、
どうか教えて下さい。 長文失礼しました。