任务单 #34026

FullHD対応を正式版に適用する

开放日期: 2014-07-11 00:03 最后更新: 2015-01-01 00:55

报告人:
属主:
状态:
关闭
组件:
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Accepted
文件:
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

チケット #31820 にて、FullHD対応版の試作を行ったが、これを正式版に適用する。

動画再生の性能改善は別途行うこととして、まずは画面サイズを拡大することを優先して行う。

任务单历史 (3/21 Histories)

2014-07-11 00:03 Updated by: yyagi
  • New Ticket "正式版でのFullHD対応" created
2014-07-23 00:59 Updated by: yyagi
评论

tp://yyagi.com/DTXMania100(140801)_beta_20140723.zip

まずは旧branch相当のものを作成した。今後、#31820で残していた以下のTODOに、少しずつ対応する。

  • BGA/Movie関連
    • premovie/resultmovieで、204x269より大きなサイズのものに対応
    • 演奏画面で、BGA/ムービーが278x355(でしたっけ)より大きなサイズのものに対応
    • 演奏画面で、背景全体で動画再生するためのチャンネルを追加する。また、従来のBGA領域の動画を無理やり背景動画にするCONFIGも作る。
    • BGAの拡大が等倍でないので、ドットにこだわっているようなBGAで表示が破たんしているのを何とかする (と言っても等倍表示にするしかないのですが。1枚絵の時と複数レイヤー使用時のときで、等倍か否かを分けるか・・・)
  • スクロールの滑らかさ向上 (今はまだVGAでの表示座標をそのまま定数倍しているだけなので、1px単位のスクロールじゃないです。VSyncWait=OFFにしないと気づきませんが。)
    • 選曲画面
    • 演奏画面
  • PrivateFont
    • プライベートフォントのファイル名を、スキン側から指定できるようにする。(現時点では、フォントのファイル名は固定で、プログラム内に埋め込まれている)
  • 性能改善
    • Quick Configで、リソース開放をまだGC任せにしている(単なる手抜き)のを修正する。また、ここだけまだPrivateFont描画の真面目なキャッシュ/高速化をしていないので対応する。
    • CONFIGURATIONで、Drums/Guitar/Bass/Exitの切り替えが遅いのを何とかする。(メニュー移動のために、全選択肢のフォントキャッシュを作っているために遅い。)
    • テクスチャの大きさを、2のべき乗サイズの正方形(256px*256pxなど)に収める。今は256x256の画像を横3倍、縦2.25倍にしているので、(768x576 →正方形,2のべき乗サイズ→) テクスチャサイズは1024x1024となってしまっていて、VRAMの利用効率が悪い。まあこういうのはこのまま放置するにしても、バーの画像など縦長/横長のものは、自動で折りたたんでテクスチャ化するような自動最適化ロジックを組み込んで対応する。折りたたまれた状態の画像はスキンいじりをするのに扱いづらいですしね。
    • 未だにVideo for Windowsのみの対応としていて、より性能の良いDirectShowやMediaFoundationに対応していないのを、何とかする。
  • その他
    • ドラムのライフゲージの下端がちょっと欠けて表示されるのを直す
2014-07-23 06:10 Updated by: from
评论

BGAの拡大が等倍でないので、ドットにこだわっているようなBGAで表示が破たんしているのを何とかする (と言っても等倍表示にするしかないのですが。1枚絵の時と複数レイヤー使用時のときで、等倍か否かを分けるか・・・)

等倍のレンダリングターゲット(サーフェイス)を用意して、そこにBGAを等倍で描画してからテクスチャにロードして描画すれば、破綻することなく自由に拡大縮小できると思いますよ。 (サーフェイスのダイレクト伸縮描画ってできたかな?)

2014-07-23 22:12 Updated by: koh-hey
评论

beta版やってみました。全画面で、画面にフィットしないですね。画面がはみ出てしまいます。DTXMania098(131101)FullHDの方は、全画面で画面にフィットします。

背景動画再生、対応してくださるということで、ありがとうございます!

2014-07-24 02:38 Updated by: yyagi
评论

fromさん

なるほど、そんな感じでの対応でいけそうですね。(正直、Bitmapに都度描画しておいてテクスチャに転送でもいいかなと思ってますが・・・)

後は、今後MediaFoundation対応しないと・・・というところですが、SharpDXが何気にMediaFoundationのinterfaceをしれっと提供しているっぽいので、今度試しにSlimDXからの乗り換えをやってみようかと思っています。

koh-heyさん

tp://yyagi.com/DTXMania100(140801)_beta_20140724.zip

  • GR画面のFullHD化に対応しました。
  • フルスクリーン化のロジックを変更しました。詳細は#30666を参照ください。(デメリットがあるので注意)
2014-07-24 05:36 Updated by: from
评论

SharpDX.MediaFoundation 名前空間のリストをざっと見てみました。

MediaFoundation.NET と同じく、MediaFoundationのAPIをそのまま移植したって感じですね。

SSTでもMediaFoundation.NETで実装してみたことはあるのですが、デフォルトEVR(の中のデフォルトプレゼンタ)が使い物になりませんでした。

理由は……ずいぶん昔のことなので記憶が確かではありませんがw、確かVMR9と同じだったと思います。

具体的には、デフォルトのプレゼンタがバックバッファに直接描画する、かつ、MF専用のスレッドで描画を行う仕様であるため、SSTのメインスレッドの状態とは無関係に不定期にデバイスロックが発生し、結果としてスクロールががったがたになった、というアレだったかと。

そのため、今SSTで使っているFDK22では、バックバッファではなくFDK22側で独自に準備した3枚のサーフェイスに順次描画するようにカスタマイズしたプレゼンタを使っています。

まあ、Direct3Dの仕様上レンダリングターゲットは同時に1つしか指定できませんので、プレゼンタがテクスチャに描画してる間はバックバッファに描画できない、という条件は同じですけどね。でも、プレゼンタの描画タイミングとバックバッファへの描画タイミングを、FDK22から制御できるようになりました。

正直、Bitmapに描画して転送するほうが手っ取り早いかも知れませんw

2014-07-24 05:40 Updated by: from
评论

あ。

Bitmapへの描画とMediaFoundationへの対応は別の問題でしたね(汗

2014-07-24 09:04 Updated by: from
评论

あああ。

「3枚のサーフェイス」じゃなかった。今は1枚だけでした。(汗

プレゼンタがお絵かきするサーフェイスは複数枚用意できます。プレゼンタには先にできる限りお絵かきさせておいて、表示タイミングだけをスケジューラで管理する仕組みなのですが、結局はWASAPIのバッファサイズなどと同じで、テクスチャをたくさん用意するほど動画の開始が遅延します。

背景動画の開始遅延はいくらでも調整できますが、フィルイン効果などを動画にした場合には致命的ですね。

しかも、空いてるサーフェイス全部にお絵かきするまでデバイスを返してくれませんし。

まあ、今はそんな状態です。

2014-07-24 19:17 Updated by: koh-hey
评论

対応ありがとうございます。フルスクリーンで画面にフィットして表示されました。

私のPCの解像度は1366x768ですが、私の環境だと、前回のやつでフルスクリーンにすると下と右にあふれています。1366x768の画面にまんま1920x1080で表示されている感じになっていると思います。

今まで気づかなかったんですが終了画面に私の名前も載っているんですね。ありがとうございます。(-)

2014-07-29 01:41 Updated by: yyagi
评论

tp://yyagi.com/DTXMania100(140801)_beta_20140728.zip

  • wailingチップの描画位置が微妙にずれていた問題を修正しました(#34102)。
  • 背景動画再生用のチップのチャンネルを新設しました(0x5A)。対応DTXCも用意しました(AVIの裏チャンネルが背景動画再生用)。これに伴い、従来のFullHD版の暫定仕様だった「BGAがある場合は動画を通常サイズで再生、さもなければ背景で再生」する機能を削除しました。ただし、(これまでのFullHD版と同様で)AVIPANの方はまだ未対応です。
  • 従来のBGAサイズの動画を強制的に背景動画再生対応する設定を追加しました(CONFIGURATION/System/FullAVI。Config.iniではForceAVIFullscreen)。アスペクト比を維持しつつフル画面化します。動画の周りに黒帯が含まれる場合は、黒帯ごと最大化します(ので、見た目は全画面の再生に見えない場合があります)。
  • BGAlphaの初期値を100から200に変更しました。100のままでは、レーンの透明度が高すぎてフルスクリーン動画が見えすぎてしまうため。
  • ドラム再生画面の背景フレームをpngにして、jpeg化で発生するゴミ表示を取り除きました。

このチケットの最初にコメントした通り、個人的にはまだまだ不満はあります。しかしながら、中途半端なものであってもFullHD版は早めにリリースした方がいいと考えていますので、問題なければこれでRelease100として一度リリースしてしまうつもりでいます。(でも、viewer用に個別に画面サイズを保持するのだけは、今入れ込んでしまった方がいいですね)

FROMさん

コメントありがとうございます。MediaFoundationはゲーム利用には非常に面倒くさそうだということはよくわかりました(笑)。デフォルトEVR(の中のデフォルトプレゼンタ)だけC++で書いて、あとはC#で書く、などとできればよいのですが。

昔、MediaFoundationの勉強用に、下記の本をほぼ発売と同時に買ったのですが、ち~っとも読んでないです。ぱらぱらと見た限りでは、比較的読みやすそうな英文ではあるのですが。 tp://www.amazon.co.jp/Developing-Microsoft-Foundation-Applications-Developer/dp/0735656592/ref=sr_1_1?s=english-books&ie=UTF8&qid=1406565079&sr=1-1&keywords=media+foundation

2014-07-29 06:33 Updated by: from
  • Summary Updated
评论

Microsoftの出す本て、基本的にMSDNのまとめだ(けど内容が古い)というイメージがあるのですが、その辺どうなのでしょう。

今のMediaFoundation はDirect3D9の他にDirect3D11(のHAL)にも正式に対応したっぽいのですが、需要がないので調べてませんw

つーか、別件でCOMポートドライバの開発も行ってるんですが(趣味で)、最新の書籍が「Windows Vista デバイスドライバ開発」っておい。

私は Windows 8 から導入された新しいドライバモデル(UMDF2.0)について知りたいのに、書籍は Vista(UMDF1.11)で止まってる……

MSDNも、一部は Vista で止まってるので怖いですわ……

デフォルトEVR(の中のデフォルトプレゼンタ)だけC++で書いて、あとはC#で書く、などとできればよいのですが。

ええ、それをやってるのがSSTのFDK22ですよ。

SlimDXを廃止して、MediaFoundation(カスタムプレゼンタ含む)とDirectXの部分はすべてネイティブC++でコーディングして、C#用にC++/CLIのラッパーを作って被せてます。SlimDXとMFの同居はやっぱり無理でした。Direct3Dデバイスの主導権争いが発生します。

でもまだMFにバグが潜んでるっぽくて、再生中にフリーズしたりします(しかもまだ再現性がつかめてない(涙

2014-07-29 06:43 Updated by: from
评论

あれ? 前回のコメント入力中に、間違って「概要」欄を消してしまったようです。すみません。元は何でしたっけ(汗

修正いただけると幸いです。申し訳ないです。

p.s.

あと、チケット違いのどうでもいい修正。

× COMポートドライバの開発

○ COMポートドライバから GPS データを読み込んで Windows 7 で導入された LocationAPI に対応するための SensorAPI に準拠する形に変換する GPS ドライバーの UMDF2.0 での開発

2014-07-30 00:27 Updated by: yyagi
  • Summary Updated
2014-07-30 02:05 Updated by: yyagi
评论

tp://yyagi.com/DTXMania100(140801)_beta_20140729.zip

  • Viewerとして使用するときのウインドウサイズを、本体単体で使うときとは別に保持するようにしました。
  • BG Alphaの設定の説明が実動作の逆になっていたので、説明の方を直しました。一方で、背景動画再生の方は従来説明相当の動作になっていたので、これも反対の動作にしました。要するに、レーン画像と背景画像を合成する透明度設定と、レーン画面と背景動画を合成する透明度設定の意味が全く逆になっていたので、前者の意味合いに統一しました。

Rel100向けの機能強化と修正は、これくらいで一段落かなと思います。

FROMさん

  • 「概要」をそれっぽく復元しました。以前のと同じかどうかは自信ないです(ぉ
  • UMDF2.0、それ正に今、仕事で関係がありますわー。私が作ってるとかではないのですけれども。
2014-07-31 00:17 Updated by: koh-hey
评论

動作確認しました。背景動画再生とBGAが同時に表示できるようになっていますし(私が作ったデータでもそういうのあります、)

DTXCのViwerの方も的確に背景動画再生されるようになっているのでちょっと感激です・・。

ひとつあったのですが、前回、全画面に切り替えた時に画面にフィットされない、という件でお願いしたのですが、

beta_20140729では、私の環境では画面にフィットされない状態に戻ってしまったみたいです。beta_20140728の方は、全画面で画面にフィットされます。

これ、正式リリースでは画面にフィットされる状態にしてほしいです。やっぱり、全画面でプレイしたいです。

2014-07-31 01:13 Updated by: yyagi
评论

koh-heyさん、ご確認いただきありがとうございました。

tp://yyagi.com/DTXMania100(140801)_beta_20140730.zip

  • 解像度の切り替え方を再度修正しました。
  • exeのプロパティに出てくるバージョン情報を、100.0.0.0にしました。

これで問題ないようであれば、明日ひっそりと公開します。

あと、099のバグ修正版も用意しました。さすがに空打ちチップが見えて、音が出なくなるのは問題過ぎるので・・・。tp://yyagi.com/DTXMania099b(140801)_RC.zip

2014-07-31 08:33 Updated by: sf298yen
评论

お疲れさまです。明日とはまた急ですネ。

⇒DTXMania100(140801)_beta_20140730.zip ⇒DTXMania099b(140801)_RC.zip

双方試しました。さらっと触った程度なのでほとんど試せてませんが、特に気付いた点はありませんでした。

プレイに支障はありませんが、100ので、ラグタイムの文字の間隔が大きいので少々違和感があります(128なら1 2 8みたいな表示)。

100はXPでも一応動作するのですね。プレ動画は再生されましたが、演奏画面で動画は真っ黒だったのでそろそろ本格的に7にするか・・・^^;

余談:サーフェスプロ3で動くのか気になります、が価格がお高い。もう少し安ければ買いたい端末です。

2014-08-01 01:38 Updated by: yyagi
  • 处理结果 Update from to Accepted
评论

sf298yenさん

動作確認いただきありがとうございました。Release 100 でのラグタイムの文字表示間隔を修正したうえで、先ほどリリースいたしました。

Surface Pro 3 ではたぶん動くと思います。ウチには Surface Pro 2 があるので、今度動作確認してみます。ただし、タッチ操作にはまだ対応していません。 タッチ操作対応のチケット(#31402)は発行済みなのですが、開発環境を大きく変更する必要があったり、ほかにやるべきことがたくさんあるなどの理由から、まだタッチ操作対応の開発を始められていません。

他にもなぜか Miix2 8 や Liva PC があったりするので、このあたりでも動作確認予定です。先日、後者で099の動作確認をしてみましたが、ギター曲の再生でノイズが入りまくりでした。CPU性能が低いせいで、サウンドのミキシングがヘタっているものと思われます。(サウンドの出力先をHDMI接続のTVにしていたせいかもしれませんが)。まあなんにせよ、このクラスのPCで問題なく動作する程度には性能をチューンしたいと思っています。

2014-11-27 05:32 Updated by: sf298yen
评论

SurfacePro3、購入しようか検討していたのですが、バッテリー交換が出来ないという点がどうしても気に入らず見送ることにしました。 これなら普通にラップトップを購入したほうが・・・という流れになっています。どちらにしろWin10迄保留です。

タッチでの操作ですが、(某アプリから)バスをタッチで操作という違和感が強くあまりなじめません。 なので、(あくまでも個人の希望として)タッチ操作・性能チューンより、 やぎ。さんがやりたかったハズのオンライン対応の優先を上げてはどうかなと思っています。お忙しいみたいですが。

遅くなりましたが、FullHD対応お疲れ様でした!

2015-01-01 00:55 Updated by: yyagi
  • Ticket Close date is changed to 2015-01-01 00:55
  • 状态 Update from 开启 to 关闭

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名