スクロールで引っかかる感じがするのは Win32API では垂直同期(古い言い方)がとれないことと液晶モニターだからだと思います。昔のブラウン管モニターなら垂直同期がとれなくても画面にズレは生じるけど引っかかる感じはなく気にならなかったです(私は)。
引っかかりを和らげる方法としてはスクロール量を多めにして少しウェイト(60分の5秒ほど)をかけてやります。同じウェイトがかかると気にならなくなります(トットットットという感じのスクロールにはなりますが)。ちなみに表示反応の遅い(ブレる)液晶モニターでも見やすくなります。
しかし、これは WM_KEYDOWN でキー押下げをチェックしていてはダメです。メッセージループ中に GetKeyboardState()か、GetAsyncKeyState()を記述してキー入力をチェックします。ウェイトの作り方や、分岐のさせ方(遷移=せんい)など Win32API でのゲーム作りには「ゲーム創」が参考になるかと思います。
ゲーム創
http://zahyou.6.ql.bz/cgame/
プログラミング資料庫
http://www.sm.rim.or.jp/~shishido/
スクロールで引っかかるって?
Re: スクロールで引っかかるって?
ここの掲示板に以前書いたこともありますが、スクロール(に限らない)が引っ掛かるように感じるのは、画面の更新間隔が一定ではないことが主な原因です。
液晶モニターだとか垂直同期が取れないとかは二次的な問題です。
Aeroテーマの元で表示されるウィンドウはOSレベルで垂直同期が取られるのでGDIであることも直接の原因とは限りません。
昔のブラウン管モニターなら引っ掛かる感じがあり得なくはありません。
そうでなければ半ピクセルスクロールなどのテクニックが駆使されることもなかったでしょう。
#いまの液晶モニタでもむかしのブラウン管モニタのように垂直同期を無視できるしテアリング(ズレ)も発生します。
液晶モニターだとか垂直同期が取れないとかは二次的な問題です。
Aeroテーマの元で表示されるウィンドウはOSレベルで垂直同期が取られるのでGDIであることも直接の原因とは限りません。
昔のブラウン管モニターなら引っ掛かる感じがあり得なくはありません。
そうでなければ半ピクセルスクロールなどのテクニックが駆使されることもなかったでしょう。
#いまの液晶モニタでもむかしのブラウン管モニタのように垂直同期を無視できるしテアリング(ズレ)も発生します。
最後に編集したユーザー ISLe on 2015年7月16日(木) 17:57 [ 編集 1 回目 ]
Re: スクロールで引っかかるって?
今回スクロールっぽいサンプルを書いてみて…
動作を眺めているときに個人的に気になったのは,タイミングが一定じゃないかもしれない的なことよりも
色の境界箇所で偽の色(明滅?)みたいなのが見えてちらついて見えるという点だった.
パターン画像として緑地に黄緑で線を描いたようなのを使ったのだけど
スクロールによって色が 黄緑←→緑 に切り替わる位置の画素に何か変なものを感じる…
現象をうまく説明しにくいけど…
「何か変な色の絵を凝視した後にモノクロの絵を見るとしばらくカラーに見える(?)」的なネタを稀に見かけたりするけど
それと同じような,人間側の性能に起因する類の話なのだろうか?
ティアリングも起きてるような気がしないでもないけど,
自分ならそんな事柄よりもまずはこの気持ち悪い現象の方をなんとかしたい.
動作を眺めているときに個人的に気になったのは,タイミングが一定じゃないかもしれない的なことよりも
色の境界箇所で偽の色(明滅?)みたいなのが見えてちらついて見えるという点だった.
パターン画像として緑地に黄緑で線を描いたようなのを使ったのだけど
スクロールによって色が 黄緑←→緑 に切り替わる位置の画素に何か変なものを感じる…
現象をうまく説明しにくいけど…
「何か変な色の絵を凝視した後にモノクロの絵を見るとしばらくカラーに見える(?)」的なネタを稀に見かけたりするけど
それと同じような,人間側の性能に起因する類の話なのだろうか?
ティアリングも起きてるような気がしないでもないけど,
自分ならそんな事柄よりもまずはこの気持ち悪い現象の方をなんとかしたい.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
Re: スクロールで引っかかるって?
> スクロールによって色が 黄緑←→緑 に切り替わる位置の画素に何か変なものを感じる…
それは液晶モニタの特性とか液晶の反応速度の問題では?
動画に弱い液晶モニタにだとありがちな現象な気が。
「応答速度の数字はホンモノか!?――液晶ディスプレイの動画性能をチェックしよう | EIZO株式会社」
http://www.eizo.co.jp/eizolibrary/other/itmedia05/
それは液晶モニタの特性とか液晶の反応速度の問題では?
動画に弱い液晶モニタにだとありがちな現象な気が。
「応答速度の数字はホンモノか!?――液晶ディスプレイの動画性能をチェックしよう | EIZO株式会社」
http://www.eizo.co.jp/eizolibrary/other/itmedia05/
Re: スクロールで引っかかるって?
液晶モニタはRGBの画素が横に等間隔で並んでいます。
#機種によってRGBの順番が違うこともあります。
ずっと等間隔で並んでいるので、
(RGB)(RGB)(RGB)
を
R)(GBR)(GBR)(GB
と見ることもできてしまう。
モノクロで描画されているフォントの縁に色が付いているように見えたりもするのですが、これを逆手に取ってアンチエイリアスに利用する技術もあります。
むかしのブラウン管モニタでも色モレはあって、アップルIIのスペックを超えたカラー表示テクとかに利用されてました。
#機種によってRGBの順番が違うこともあります。
ずっと等間隔で並んでいるので、
(RGB)(RGB)(RGB)
を
R)(GBR)(GBR)(GB
と見ることもできてしまう。
モノクロで描画されているフォントの縁に色が付いているように見えたりもするのですが、これを逆手に取ってアンチエイリアスに利用する技術もあります。
むかしのブラウン管モニタでも色モレはあって、アップルIIのスペックを超えたカラー表示テクとかに利用されてました。
Re: スクロールで引っかかるって?
>>ISLeさん
いつもコメントありがとうございます。
そういうことだったんですね。
試しにAeroテーマをベーシックにしたら、げげ!ズレが発生しました!
これにはビックリ驚いてしまいました!
ちなみに画面の更新間隔を一定にする方法はあえて聞きますまい(^^);
>>usaoさん
DXライブラリを使っても同じように見えるかどうかやってみた方がいいかも。
色って白と黒の時間差で見えるらしいという情報もあります。
あとは softyaさんと、ISLeさんに丸投げー!
>>softyaさん
結局説明するハメになってしまったような気がするのは私だけ?
すかさずDXライブラリをすすめていたので私はウケてしまいました。
そのうちRPGフォーラムで質問することがあるかと思いますのでよろしくお願いします。
いつもコメントありがとうございます。
そういうことだったんですね。
試しにAeroテーマをベーシックにしたら、げげ!ズレが発生しました!
これにはビックリ驚いてしまいました!
ちなみに画面の更新間隔を一定にする方法はあえて聞きますまい(^^);
>>usaoさん
DXライブラリを使っても同じように見えるかどうかやってみた方がいいかも。
色って白と黒の時間差で見えるらしいという情報もあります。
あとは softyaさんと、ISLeさんに丸投げー!
>>softyaさん
結局説明するハメになってしまったような気がするのは私だけ?
すかさずDXライブラリをすすめていたので私はウケてしまいました。
そのうちRPGフォーラムで質問することがあるかと思いますのでよろしくお願いします。