30fps出力のはずなのに15fpsぐらいで出力されてしまう症状があった。
出力サイズが仕様の規定をオーバーしてると思ってたのだけど、
「[MMD]avi出力したらfpsが半分になった件」で針金Pにコメントいただいて、
どうやら出力サイズについては誤記で、1280*720で問題なく動くということでした。針金P本当にありがとうございます。
再度確認してみたけど、標準で入っているサンプル(きしめん).pmmにHgDOF入れただけでavi出力結果が15fpsぐらいの間引き状態になってしまった。しかも出力サイズ1024*768だ。
針金Pの環境でも問題なく出力できていたということなので・・・
つまりうちの環境の問題だ!
・・・
えーん><
ということで調べてみた。
結論だけ知りたい方は一番下を見てね。
NVIDIA製のグラフィックボードを使っていて、HgDOFがfpsどおりの値で出なかったり、何か出力したaviファイルがカクついている人は試してみてね。
出力fps通り出てるかはaviutlとか動画編集ソフトで確認すると良いかも。
1.疑問
実は自分の環境でも、以前は1280*720でhgdofが正常に動いていたのだ。2月の雑誌に出している動画を確認すれば分かるのだけど、
hgdofで普通に30fpsで出力できていた。
ということは、その動画を作った後、2015年2月から2015年11月の間に
動作が変わったということだ。
2.変更した内容
2015年2月から2015年11月までの変更点を思い出してみる。PCハード :ハード自体の変更はなし。
2015年10月あたりにディスプレイを一つ追加して
マルチディスプレイにした。
ドライバ :グラフィックドライバを更新。ボードはNVIDIA GTX770。
最新の更新では、以下のバージョンになってる
- Nvidia geforcee experience 2.5.15.54
- GeForce Game Ready Driver 359.00
プログラム:MMDはv926x64、MMEはv037。両方とも変更なし。
使用してるHgDOFのバージョンも変更なし。
つまりドライバまわりに何かがおきたっぽい。
3.グラフィック設定の確認
NVIDIA製品では、NVIDIAコントロールパネルというものがあって、そこでグラフィック設定を詳細に変更できる。
Windows8の場合は、タスクバーのウィンドウズマークを右クリックして、
「コントロールパネル」-「ハードウェアとサウンド」-「NVIDIAコントロール パネル」
を選ぶと起動できる。
NVIDIAコントロールパネルを起動したら、
「3D設定」-「3D設定の管理」の画面を開くと、「グローバル設定」(全プログラム共通設定)と
「プログラム設定」(プログラム個別の設定)が出来る。
MMDだけの設定をする場合、「プログラム設定」のタブを選んで、
「1.カスタマイズするプログラムを選択する」の右側にある「追加」ボタンを押す。
最初は一覧に出てないので、「参照」ボタンを押して、今使用している
「MikuMikuDance.exe」ファイルを開くと、MMDのみの3D設定が出来る。
4.グラフィック設定の変更
3D設定の管理でMMDが選択で来たら、その下にある「2.このプログラムの設定を指定する」の一覧から必要な物を変更する。
今の設定は、
--------------------------------------------------------------------------------
CUDA-GPU :グローバル設定(すべて)
アンチエイリアシング - FXAA : グローバル設定(オフ)
アンチエイリアシング - ガンマ修正 : グローバル設定(オン)
アンチエイリアシング - トランスペアレンシー:グローバル設定(オフ)
アンチエイリアシング - モード
:グローバル設定(アプリケーションによるコントロール)
アンチエイリアシング - 設定 ※ (設定できない)
:グローバル設定(アプリケーションによるコントロール)
アンビエント オクルージョン ※ (設定できない)
:このアプリケーションではサポートされません
シェダーキャッシュ : グローバル設定(オン)
スレッドした最適化 : グローバル設定(自動)
テクスチャフィルタリング - クオリティ :グローバル設定(クオリティ)
テクスチャフィルタリング - トリリニア最適化 :グローバル設定(オン)
テクスチャフィルタリング - ネガティブLODバイアス :グローバル設定(許可)
テクスチャフィルタリング - 異方向性サンプル最適化 : グローバル設定(オフ)
トリプルバッファリング:グローバル設定(オフ)
バーチャルリアリティレンダリング前フレーム数 : グローバル設定(1)
マルチディスプレイ/ミックス GPUアクセラレーション
:グローバル設定(マルチディスプレイパフォーマンスモード)
レンダリング前最大フレーム数
: グローバル設定(3Dアプリケーション設定を使用する)
垂直同期 : グローバル設定(3Dアプリケーション設定を使用する)
異方向性フィルタリング : グローバル設定(アプリケーションによるコントロール)
電源管理モード : グローバル設定(適応)
--------------------------------------------------------------------------------
ってどれだよw
色々やってみた。
それぞれの意味はカーソルを持っていくと説明が見れるので、それで確認してみる。
※ 理解できるとはいっていない
今回はあくまでHgDOFが動く状態なので、それ以外については確認してない。
- アンチエイリアシング - FXAA
オフ⇒オン avi出力したら静止画状態になったw
- アンチエイリアシング - トランスペアレンシー
オフ⇒8*(スーパーサンプル) 変化なし
- アンチエイリアシング - モード
アプリケーションによるコントロール
⇒アプリケーションの設定を強調する 変化なし
- アンチエイリアシング - ガンマ修正
オン⇒オフ 30fpsでうごいたああああああああああああああ
- バーチャルリアリティレンダリング前フレーム数
(1)⇒3Dアプリケーション設定を使用 変化なし
- マルチディスプレイ/ミックス GPUアクセラレーション
マルチディスプレイパフォーマンスモード
⇒シングルディスプレイパフォーマンスモード 変化なし
- テクスチャフィルタリング - 異方向性サンプル最適化
アプリケーションによるコントロール⇒オン 変化なし
5.結論
「NVIDIAコントロールパネル」-「3D設定の管理」で、アンチエイリアシング - ガンマ修正:オン⇒オフに変更すると、
HgDOFが正常に30fps出力する状態に戻るみたい。
(理由は知らない)
この変更が許容できない人は倍のfps指定して出して間引くみたいな形になるのかな。
NVIDIAだと常駐プログラムがあって、そいつが「最新ドライバ出たから更新してね!」と囁くので、そこでクリーンインストールとか選ぶとまた設定が変わってしまうので、ドライバ更新した後はMMDの動作確認と設定の確認しないといけないみたい。
何故かはわからないけど。 ドライバの更新自体は必要なことなので、自己責任としか言えないんだろうね。
時間かかったけど懸念が一つ減ったのでとりあえずは一安心かな。
0 件のコメント:
コメントを投稿