問題タブ [frame-rate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - DirectXとC++で安定したフレームレートを維持するための最も効率的な方法は何ですか?
私はゲームプログラミングに関する本からDirectXを学んでおり、ゲームループには次の方法を使用しています。
これはstart
、時間に関係なく等しくなり(get tick countは、プログラムの開始以降の「ティック」の数を示すと思います)、30ティック後に、すべてのAI、レンダリングなどを実行します。
私の質問は、最初にすべてのAIなどを実行してから、時間が残っている場合は、フレームを変更する必要があるまで待つ方が効率的ではないでしょうか。
では、安定したフレームレートを維持するためのより良い方法は何でしょうか?(できれば、サウンド、画像、入力(d3d9.hなど)にすでに使用しているDirectXヘッダーのみを使用することをお勧めします)
また、関連するメモとして、GetTickCount()は正確に何を実行し、「ティック」の長さはどれくらいですか。
opengl - WGL: ダブルバッファリングなし + マルチサンプリング = FAIL?
私は通常、これらの引数を使用してピクセル形式を作成しwglChoosePixelFormatARB()
ます (特に):
つまり、ダブル バッファリングと x4 マルチサンプリングです。これはうまくいきます。
しかし、ダブルバッファリングをオフにしようとすると:
への呼び出しがwglChoosePixelFormatARB()
失敗します (または、何も作成されなかったことを示します)
マルチサンプリングを効果的にオフにすると:
また元気に働いています。
非ダブルバッファピクセルフォーマットがマルチサンプリングで動作するのを妨げる固有のものはありますか?
ダブル バッファリングをオフにする理由は、制約のないフレーム レートを実現するためです。ダブル バッファリングを使用すると、フレーム レートは最大 60 FPS になります (このラップトップ LCD は 60 Hz で動作します)。しかし、ダブル バッファリングをオフにすると、最大 1500 FPS を得ることができます。ダブルバッファリングをオンにしてこれを達成する方法はありますか?
flash - Internet Explorer のフラッシュ パフォーマンス
これを Adobe フォーラムに投稿しましたが、良い回答は期待できません。フラッシュでゲームをしたことがあり、同じ問題に遭遇した人からの助けを探しています。
私の問題を再現する手順:
フラッシュで単純なドット DisplayObject を作成する
/li>ドットをフレームに何度もビットマップに描画する
/li>- Win32 上のブラウザー、フラッシュ プラグイン バージョンの組み合わせで FrameRate をテストする
予想:
ほとんどの場合、近いフレームレート
観測:
IE7 で Flash10b.ocx(10.0.22) を使用するとフレームレートが 25% 低下し、Flash10c.ocx(10.0.32) を使用するとフレームレートが 50% 低下します。FireFox、Safari、および Mac OSX のプラグインでは、同じ速度低下は見られません。
助けてください:
Internet Explorer で見られるパフォーマンスの問題について、ヘルプ/確認を取得したいと考えています。Adobe と Flash のコミュニティはインターネット上で優れていますが、10.0.32 と 10.0.22 でのムービー再生に関するレポートがいくつかあるだけで、これに関する情報がないことに驚いています。
私の推測では、IE ではフラッシュ プラグインがドロー コールを Win32 に渡しており、これは遅いと思われます。
私の解決策は次のとおりです。
draw を使用して毎回ビットマップに描画する代わりに、描画呼び出しをビットマップにキャッシュし、CopyPixels
. これを行うと、パフォーマンスはブラウザ間で同じで、10% 以内です。
私が使用しているループ:
私がもっと知りたい他の「既知の」問題についてのメモ:
- IE では、私のアプリケーションのメモリ使用量ははるかに小さいと報告されています (通常、Flashplayer では 33MB、IE では 16MB)。
- IE では、メモリ ページ フォールトは 10k/秒を超えますが、フラッシュ プレーヤーでは発生しません。
- IE では、stage.invalidate がパフォーマンス ヒッチングの問題を引き起こすようです。
- IE では、ビットマップにぼかしフィルターを配置すると、Flash Player よりも大きなパフォーマンス ヒットが発生します。
php - バージョン 2 を使用して、Amazon FPS/SimplePay IPN (即時支払い通知) を確認するには?
ドキュメントに目を通して、さまざまなサンプル コードをダウンロードしてみました。また、さまざまな順列をハッキングしてみました。丸一日の仕事の後、私は疲れ果て、タオルを投げます。だから今、私は助けを求めています。署名バージョン 2 を使用して、IPN スクリプトへの ping が正当であることを簡単に確認できる PHP クラスまたは関数を投稿してもらえますか?
どうもありがとう。
ザック
iphone - iPhone3GSOpenGLの奇妙なバグ
OpenGLES1.1を使用してiPhoneおよびiPodTouch用の2Dゲームを開発しています。iPhone、iPhone 3G、およびすべてのiPodTouchモデルですべてが正常に機能します。ゲームは通常、シーンを最大60FPSでレンダリングします。
これはiPhone3GSでも発生しますが、(完全にランダムに)3GSがフレームレートを約40 FPSに下げ、アニメーションが途切れる場合があります。これは、ユーザーが電話をロックしてスリープモードから再開した場合にも発生します。
描画トリガーモードをSDK3.1以降で利用可能な新しいCADisplayLinkクラスに変更すると、すべてのデバイスですべてがOKになり、3GSでも問題がないため、NSTimerと関係があると思います。
この問題を解決する方法がわからないため、3.1以降の制限付きでアプリを投稿したくありません。3.0デバイスを使用しているユーザーはまだたくさんいます。
iPhone 3GSでもこの問題を抱えている人はいますか?もしそうなら、回避策を手伝ってください。
ありがとうございました!
silverlight - Silverlight アプリケーションのスクリーンキャスト?
以下に示すように、基本的にビデオを再生する Silverlight アプリケーションがあります (Silverlight 3)。
しかし、Microsoft Expression Encoder 3 Screen Capture を使用して「スクリーンキャスト」すると、出力ビデオがギザギザになり、非常に低いフレーム レートで記録されているように見えます。 Microsoft Expression Encoder 3 の「ジョブ出力」では、通常のフレーム レートで記録および再生されます。どちらの記録も同じ設定で行われ、唯一の違いはコードであり、IE8 で表示すると完全に機能します。 Silverlight アプリケーションは正しく「スクリーン キャスト」されます。
ありがとうございました、
更新 それ以外に、Silverlight ページをビデオ ファイルなどにエクスポートする方法はありますか?
c++ - プログラムのフレームレートを外部から制限する
プログラム/ゲームのフレームレートを VSync と同様の方法で外部から制限する方法を見つけようとしていますが、(画面のリフレッシュ レートではなく) 指定された数値に制限します。私が目指しているものの完璧な例は、フレームレートが記録レートに制限されているビデオを記録するときの FRAPS で見ることができます。その理由は、フレームレートの大きな変化によって引き起こされる「画面の遅れ」を止めるためにグラフィカルに集中的ではないペースの速いゲームのためですが、奇妙なことに、キーボード/マウス間のレイテンシが増加するため、VSync は適していません (両方とも高いレートでポーリングされるため、ハードウェアの問題ではありません)。
C/++ でのアドバイスを理想的に探していますが、正直なところ、どこから始めればよいかわかりません。
apache-flex - Flexアプリケーションとフレームを理解する
好奇心に駆られて、FlexApplicationで使用されるライフサイクルを理解しようとしています。
それで、私はこの議論について少し研究しました。FlashPlayerで使用される2つの重要な概念は次のとおりです。
- SWFフレーム:グラフィカルコードをコードとして含む論理ユニットです
- Flash Playerフレーム:Flashランタイムが画面を更新するために使用し、frameRateプロパティで定義される時間間隔です。
もしそうなら、これら2つの概念の関係を説明していただけますか?特に、彼らは一緒にペアになっているのですか?
主なルールは次のとおりです。FlashPlayerはswfでストリーミングします。完全なSWFフレームが読み取られるまで、FlashPlayerはそれをレンダリングできません。
私が理解する必要があることを説明しようと思います。簡単にするために、SWFFR1とSWFFR2の2つのフレームアプリケーションがあるとします。
一般に(たとえばCS4では)フレームは、as3コードを付加できる論理ユニット(ShowFrameタグで区切られる)と見なされます。これは、swfファイルの簡略化されたバージョンだと思います。
- ヘッダー//frameRateはここで定義されます
- シンボル、クラスなど…//これはFR1 === ShowFrame ===
- シンボル、クラスなど…//これはFR2です===ShowFrame===終了
FR1とFR2の2つのフレームがある場合、FlashはFR1の実行を開始し、次のフレーム(FR2)に進みます。実行を停止しない場合、Playerは実行し、FR1とFR2に含まれるコードを無限ループでレンダリングします。逆に、FR2などで実行を停止すると、フラッシュプレーヤーはFR2に含まれるコードの実行をループします。
では、Flash PlayerフレームはSWFフレームごとに何度も発生する可能性がありますか?
FR1がダウンロードしているとき(FR1が完全にロードされていないとき)、enterFrameイベントはありますか?FR1が完全にロードされたときに最初のframeEventが発生しますか?FR1はどの期間レンダリングされますか?別のシナリオでは、停止コマンドをFR1に呼び出した場合、指定したレートでenterFrameを取得します(現在のフレームはFR1です)。その間、FR2はダウンロード中です。終了したら、次のフレーム(FR2)に進みます。FR2はどの期間レンダリングされますか?Flash PlayerはFR2を次の時間間隔にレンダリングしようとしますか?
この単純なシーケンスを考慮に入れてください。
- FR1はダウンロード中です
- FR1は完全にダウンロードされています
- FR1はstop()メソッドを呼び出し、その間FR2はダウンロード中です
- FR2は完全にダウンロードされています
- FR2に移動
- FR2はstop()メソッドを呼び出します
- 等々
Flash PlayerのenterFrameイベントが発生したときに、アンダースコアを付けていただけますか?
お時間をいただきありがとうございます。よろしくお願いいたします。Flex_Addicted。
cocos2d-iphone - アプリケーションの開始時に Cocos2d を使用すると、ランダムな fps ドロップが発生しますか?
cocos2d を使用して iPhone ゲームを開発しており、FPS を表示するように設定しています。現在、ほとんどの場合、アプリケーションは 60 fps で起動して実行されますが、明らかにランダムに、アプリケーションが起動してわずか 40 fps でトップになることがあります。
これは頻繁には発生せず、アプリケーションを終了してできるだけ早く再起動した場合にのみ発生するようですが、ほとんどの場合、これは効果を引き起こしません. しかし、いくつかのクイック終了-再起動シーケンスの後、ゲームは最終的に開始され、通常の 60 fps ではなく 40 fps しかありません。この時点でアプリケーションを終了し、約 3 秒間待機すると、通常の 60 fps で再び開始されます。
これは、アプリケーションが再起動する前にすべてのメモリを解放できないことに関係していると思いますか?、この問題は iPhone OS に関連しているようです。
アプリケーションを終了して 5 秒待ってから再起動すると、このようなことは起こらないことに注意してください。誰かが前にこの種の問題を抱えていましたか?. なぜこれが起こっているのかについてのアイデアはありますか?.