タグ付けされた質問 「frame-rate」

イメージングデバイスが一意の連続画像を生成する頻度。ほとんどの場合、1秒あたりのフレーム数(FPS)で表されます。

11
いつ固定または可変の時間ステップを使用する必要がありますか?
ゲームループは固定または可変の時間ステップに基づいている必要がありますか?常に優れているのですか、それとも正しい選択はゲームによって異なりますか? 可変時間ステップ 物理の更新には「最後の更新からの経過時間」引数が渡されるため、フレームレートに依存します。これは、計算を行うことを意味する場合がありposition += distancePerSecond * timeElapsedます。 長所:スムーズで、コーディングが簡単 短所:非決定的で、非常に小さいまたは大きなステップで予測できない deWiTTERSの例: while( game_is_running ) { prev_frame_tick = curr_frame_tick; curr_frame_tick = GetTickCount(); update( curr_frame_tick - prev_frame_tick ); render(); } 固定タイムステップ 更新は、各更新が一定期間のものであると想定するため、「経過時間」を受け入れない場合もあります。計算はとして行うことができますposition += distancePerUpdate。この例には、レンダリング中の補間が含まれています。 長所:予測可能、決定論的(ネットワーク同期が容易?)、より明確な計算コード 短所:v-syncを監視するために同期されない(補間しない限りグラフィックが不安定になる)、最大フレームレートが制限される(補間しない限り)、フレームワーク内で動作しにくい可変時間ステップ(PygletやFlixelなど)を想定 deWiTTERSの例: while( game_is_running ) { while( GetTickCount() > next_game_tick ) { update(); next_game_tick += SKIP_TICKS; } interpolation …

8
彼らはそれをどうしましたか?テラリアの何百万ものタイル
私はTerrariaに似たゲームエンジンを主に挑戦として取り組んできましたが、そのほとんどを理解しましたが、何百万もの相互作用/収穫可能なタイルをどのように扱うかについて頭を包み込むように思えませんゲームは一度に持っています。私のエンジンでは、Terrariaで可能なことの1/20である約500.000のタイルを作成すると、フレームレートが60から約20に低下します。気を付けてください、私はタイルで何もしていません。メモリに保存するだけです。 更新:私が物事を行う方法を示すためにコードが追加されました。 これは、タイルを処理して描画するクラスの一部です。犯人は「foreach」の部分で、空のインデックスも含めてすべてを繰り返すと推測しています。 ... public void Draw(SpriteBatch spriteBatch, GameTime gameTime) { foreach (Tile tile in this.Tiles) { if (tile != null) { if (tile.Position.X < -this.Offset.X + 32) continue; if (tile.Position.X > -this.Offset.X + 1024 - 48) continue; if (tile.Position.Y < -this.Offset.Y + 32) continue; if (tile.Position.Y > -this.Offset.Y + …

3
チームはソースファイルの上書きをどのように防止しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 たとえば、ゲームエンジンなどが複数の人によって同時に処理されているときに、上書きをどのように防ぐことができるのか、ということが起こりました。 開発者1が作業してAudio.cppおり、開発者2も作業をしているとしましょう。Audio.cppこれは、一般的に大規模なチームで上書きに対処するためにどのように管理されていますか?(つまり、開発者2がファイルを開くのを停止して、開発者1が終了するまで)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

2
Time.deltaTimeを使用しているにもかかわらず、動きはフレームレートに依存しているように見える
Unityでゲームオブジェクトを移動するために必要な変換を計算する次のコードがありますLateUpdate。これはで呼び出されます。私が理解していることから、私の使用はTime.deltaTime最終的な翻訳フレームレートを独立させるべきCollisionDetection.Move()です(ただレイキャストを実行することに注意してください)。 public IMovementModel Move(IMovementModel model) { this.model = model; targetSpeed = (model.HorizontalInput + model.VerticalInput) * model.Speed; model.CurrentSpeed = accelerateSpeed(model.CurrentSpeed, targetSpeed, model.Accel); if (model.IsJumping) { model.AmountToMove = new Vector3(model.AmountToMove.x, model.AmountToMove.y); } else if (CollisionDetection.OnGround) { model.AmountToMove = new Vector3(model.AmountToMove.x, 0); } model.FlipAnim = flipAnimation(targetSpeed); // If we're ignoring gravity, then just …

5
1秒あたりのフレーム数を制限する利点は何ですか?(もしあれば)
私はOpenGLでシンプルなゲームに取り組んでおり、ディスプレイの初期化と入力にSDLを使用していますが、タイミングに関しては2つの選択肢があります。最適なTimePerFrame-theTimeTakenToRenderでスリープ状態にある1つ目は、最適なTimePerFrameの秒数= 1 / theFramerateCapです。(vsyncを使用するのと同等であるため、これが必要かどうかは完全にはわかりません。これはより正確かもしれません。私の仮定が正しい場合、SDL + OpenGLがデフォルトでvsyncを持っているかどうかを教えてください。もう1つは、最後のフレームがレンダリングされてからの時間を測定し、それに応じて移動を調整することです。(フレームのレンダリングにかかる​​時間が短いほど、そのフレーム内でのエンティティの移動が少なくなります)。パフォーマンス、およびフリッカーの減少などに関して、これら2つの方法の長所と短所は何ですか?
13 opengl  sdl  frame-rate  vsync 

2
XNA / MonoGameでフレームレートのロックを解除すると、コードの効率がわかりますか?
MonoGameのフレームレートのロックを解除する方法は次のとおりです。 this.graphics.SynchronizeWithVerticalRetrace = false; base.IsFixedTimeStep = false; そして、それをゲームでの更新と描画の効率の基礎として使用します。 解像度では240×160、フレームカウンタを除いて描かれたり更新されて何も私はFPSの値を取得9000に11,000 FPSを。 コードをすべて追加すると、約1,100 FPSになります。 これは、コードがGPUの速度を大幅に低下させている(10倍)ことを示す良い兆候ですか?ゲームは60 FPSで実行されるので、私はまだそれからかなり離れていますが、ロック解除されたフレームレートのどの時点で心配する必要がありますか? GPU:AMD FirePro W5000(FireGL V)

5
多数のキューブを操作します。パフォーマンスを改善しますか?
編集:質問を要約すると、ボクセルベースの世界(Minecraftスタイル(共産主義のダックに感謝))があり、それはパフォーマンスが悪いことに苦しんでいます。私はその情報源には前向きではありませんが、それを取り除く方法についての可能なアドバイスが欲しいです。 私は世界が大量のキューブで構成されているプロジェクトに取り組んでいます(私はあなたに数字を与えますが、それはユーザー定義の世界です)。私のテスト1は、約(48 x 32 x 48)ブロックです。 基本的に、これらのブロックはそれ自体では何もしません。彼らはただそこに座っています プレーヤーとのやり取りに関しては、使用が開始されます。 ユーザーがマウスで操作するキューブ(マウスオーバー、クリックなど)を確認する必要があります。また、プレーヤーの移動に伴う衝突の検出も必要です。 今では、最初は膨大な量の遅延があり、すべてのブロックをループしていました。 すべてのブロックをループし、どのブロックがキャラクターの特定の範囲内にあるかを見つけて、衝突検出などのためにそれらのブロックのみをループすることで、その遅れを減らすことができました。 しかし、私はまだ憂鬱な2fpsに向かっています。 このラグを減らす方法について他にアイデアはありますか? ところで、私はXNA(C#)を使用しています。はい、それは3Dです。
12 xna  3d  frame-rate  voxels 

4
SmoothVideo Projectで使用されているようなフレーム補間は、パフォーマンスに大きな影響を与えずにゲームのフレームレートを上げるオプションになるでしょうか?
SmoothVideoプロジェクトはフレーム補間を使用してビデオのfpsを24から60に増やします。結果はかなり印象的です。これが適用できるのか、ビデオゲームで見栄えが良いのかと思っていました。 すべてのフレームをレンダリングするよりもはるかに少ないリソースを使用するため、ローエンドのリグは、ある程度の妥協点ではるかに優れたリグの品質でレンダリングできます。私はそれが正確ではないことを知っており、補間されたフレームを生成および挿入できるように最新のフレームを保持する必要があるため、入力レイテンシがわずかに増加します。ただし、フレーム全体ほど悪くはありません。私の推論では、ラグだけが補間時間に元のfpsリフレッシュ時間の半分を加えたものになります。したがって、30 fpsの場合、33ms / 2 +補間時間になります。 このラグは、過去のファーストパーソンのゲームには適さないかもしれませんが、ペースの遅いゲームではそれが妨げになるとは思いません。 開始レートが高くなるとラグは低くなるので、60 fpsから100 + fpsにすると、システムに非常に負担がかかる一方で、エクスペリエンスはわずかながら向上しますが、確かに価値があると思います。

3
フレームに依存しない動き
私はここで、動きに関する他の2つのスレッドを読みました: 時間ベースの動きとフレームレートベースの動き?、および 固定または可変の時間ステップをいつ使用すべきですか? しかし、どちらのスレッドが何を話しているのか理解できないので、フレームに依存しない動きの基本的な理解が不足していると思います。 私はlazyfooのSDLチュートリアルに従っていて、フレームに依存しないレッスンに出会いました。http://lazyfoo.net/SDL_tutorials/lesson32/index.php コードの動きの部分が何を言おうとしているのかわかりませんが、これはそうだと思います(私が間違っている場合は修正してください):フレームに依存しない動きをするためには、オブジェクトの距離を知る必要があります(例:スプライト)は、たとえば1秒など、特定の時間枠内で移動します。ドットが200ピクセル/秒で移動する場合、200 ppsに1/1000秒を掛けて、その1秒内に移動する量を計算する必要があります。 そうですか?レッスンは言う: 「秒あたりのピクセル数での速度*秒単位での最後のフレームからの時間。したがって、プログラムが毎秒200フレームで実行される場合:200 pps * 1/200秒= 1ピクセル」 しかし... 200 ppsを1/1000秒で乗算していると思いました。1秒あたりのフレーム数でこのビジネスは何ですか? フレームに依存しない動きがどのように機能するかについて、もう少し詳しく説明してもらえれば幸いです。 ありがとうございました。 添加: SDL_Rect posRect; posRect.x = 0; posRect.y = 0; float y, yVel; y = 0; yVel = 0; Uint32 startTicks = SDL_GetTicks(); bool quit = false; SDL_Event gEvent; while ( quit == …
11 frame-rate 

6
pygameのフレームレートを速くする
ゲームをプロファイリングすると、趣味のゲームの実行時間の大部分がブリットコールとフリップコールの間にあることがわかります。現在、約13 fpsでのみ動作しています。私のビデオカードはかなりまともなので、私の推測では、pygameはそれを使用していません。 これを速くするためにpygameで設定する必要があるグラフィック/表示オプションを誰かが知っていますか?それとも、pygameを選んだので、これは私が一緒に暮らさなければならないものですか?

2
フレームレートの制限
最も成功した競争力のあるゲームエンジンが好きでid Tech、GoldSrc、Sourceおよびなどは、フレームレートの制限が可能になります。 30、60、99、72、68などでプレイできます。つまり、上限を設定して上限を制御できます。 フレームレートをどのように制限しますか? コードではなく理論に興味があります。

1
スリープを使用して単一スレッドでロジック/更新コードをレンダリング/描画コードから分離する
私は、ゲームオブジェクトの速度はFPSによって妨げられるべきではなく、時間に基づくべきであると読みました。更新/描画コードを分離して、描画速度を制限せずにパフォーマンスを最大化し、時間に基づいて一定のロジック更新速度を提供するにはどうすればよいですか? 私の現在の疑似コードは次のとおりです loop { draw(); if (ticksElapsed() > 100) { update(); ticks+= ticksElapsed(); } } 問題は、描画コードがupdate()レートのパフォーマンスを妨げていることです。また、スリープ状態になると、描画機能とロジック機能の両方が使用できなくなるため、CPUが100%消費されます。 私もSDLを使用していますが、vsyncオプションがないようです。固定および可変時間ステップという用語も聞いたことがありますが、sleep()でそれをどのように行うことができるかわかりません。

3
フレームレートがオブジェクトの速度に影響しています
私はJavaでゼロからゲームエンジンを構築する実験をしており、いくつか質問があります。私のメインゲームループは次のようになります。 int FPS = 60; while(isRunning){ /* Current time, before frame update */ long time = System.currentTimeMillis(); update(); draw(); /* How long each frame should last - time it took for one frame */ long delay = (1000 / FPS) - (System.currentTimeMillis() - time); if(delay > 0){ try{ Thread.sleep(delay); }catch(Exception …

9
大きなFPSと一貫したFPS
ゲームのフレームレートを最適化するとき、大きなFPSに焦点を当てるべきか、一貫したフレームレートに焦点を当てるべきか。 これはよく争われる問題ですので、どちらが良いかは尋ねていません。 それぞれの長所と短所は何ですか? どの状況でどちらが優先されますか? また、注意:入力のポーリング/処理、物理、およびゲームの更新レートは、フレームレートとは無関係です。FPSが影響するのは、画面がレンダリングされる頻度だけです。

2
Unity3dを介して新しいc#スクリプトを追加するときにVS soution Explorerを強制的に再読み込みしますか?
私はC#スクリプトを作成する(ときCreate -> C# Script)を介しUnity3d やからそれを削除Unity3d- Visual Studioショー私の警告ウィンドウ。 気に障る。 ウィンドウなしでソリューションエクスプローラーで「ReloadAll」を強制する方法はありますか?
8 unity  visual-studio  unity  google-play-services  google-play  physics  simulations  c#  unity  raycasting  unity  virtual-reality  savegame  arcade  c++  steam  ios  objective-c  databases  storage  opengl  vbo  vao  libgdx  scene2d  unity  animation  c#  path-finding  roguelikes  opengl  c++  glsl  2d  physics  phaser  selection  3dsmax  unity  collision-detection  c#  tilemap  isometric  unity  c#  2d  sprites  mouse  scripting  grid  c#  unity  libgdx  java  unity  playstation4  c#  c++  directx  dll  c++cli  libgdx  overlap2d  multiplayer  node.js  websocket  animation  unity  textures  unity  terrain  physics  unity  rotation  movement  transformation  monogame  windows  installer  shaders  unity  virtual-reality  unity  performance  frame-rate  profiler  google-play  appstore  trademark  java  android  libgdx  unity  unity-networking  unity  physics  software-engineering  unity  savegame  physics  2d  unity  unity  c#  unity-networking  textures  geometry  unreal-4  3d-modeling  java  android  libgdx  android  collision-detection  libgdx  rotation  legal  localization  patents  opengl  cubemap  sampler-state  2d  transformation  unity  c#  opengl  glsl  lighting  opentk  c++  collision-detection  physics 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.