Подтвердить что ты не робот

Мой ограниченный FPS: 60

Я изучил программирование OpenGL некоторое время. И я обнаружил очень странное явление: мой FPS (кадр в секунду) всегда остается около 60, независимо от того, какая программа очень простая или немного сложная. На самом деле мой компьютер купил в прошлом году и производительность хорошая. Графическая карта - nVidia GTX570, CPU - I7.

Итак, я делаю эксперимент: запустите ту же программу на своем компьютере и другом компьютере. Эта программа реализует теневое отображение:

enter image description here

FPS на моем компьютере - около 60. Но когда я запускаю его на своем другом компьютере, FPS больше 400. enter image description here

Но производительность моего компьютера очевидна лучше его. Теперь я публикую наш компьютерный параметр.

Мой компьютер:

tgt.init (Info)  GLEW version: 1.7.0
tgt.GpuCapabilities (Info)  OS version: Windows 7 (build 7600)
tgt.GpuCapabilities (Info)  OpenGL Version: 4.2.0
tgt.GpuCapabilities (Info)  OpenGL Renderer: GeForce GTX 570/PCIe/SSE2
tgt.GpuCapabilities (Info)  GPU Vendor: NVIDIA Corporation (NVIDIA)
tgt.GpuCapabilities (Info)  Texturing: yes, max size: 16384, 3D: yes, max 3D size: 2048
tgt.GpuCapabilities (Info)  Texture features: 32 units, NPOT, rectangles, compression, 16x anisotropic
tgt.GpuCapabilities (Info)  Framebuffer Objects: yes, max 8 color attachments
tgt.GpuCapabilities (Info)  Shaders: yes (OpenGL 2.0), GLSL Version 4.20, Shader Model 5.0
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Version: 8.17.12.9573
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Date: 2012-02-09
tgt.GpuCapabilitiesWindows (Info)  Graphics Memory Size: 1280 MB

Мой компьютер:

 tgt.GpuCapabilities (Info)  OS version: Windows 7 Service Pack 1 (build 7601)
tgt.GpuCapabilities (Info)  OpenGL Version: 4.2.11566 Compatibility Profile Context
tgt.GpuCapabilities (Info)  OpenGL Renderer: AMD Radeon HD 6620G
tgt.GpuCapabilities (Info)  GPU Vendor: ATI Technologies Inc. (ATI)
tgt.GpuCapabilities (Info)  Texturing: yes, max size: 16384, 3D: yes, max 3D size: 8192
tgt.GpuCapabilities (Info)  Texture features: 16 units, NPOT, rectangles, compression, 16x anisotropic
tgt.GpuCapabilities (Info)  Framebuffer Objects: yes, max 8 color attachments
tgt.GpuCapabilities (Info)  Shaders: yes (OpenGL 2.0), GLSL Version 4.20, Shader Model 5.0
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Version: 6.14.10.11566
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Date: 2012-03-09
tgt.GpuCapabilitiesWindows (Info)  Graphics Memory Size: 512 MB

Мне очень любопытно, и я не могу понять это. Должен ли я сделать некоторые настройки для видеокарты? Может ли кто-нибудь сказать мне, как решить проблему?

4b9b3361

Ответ 1

Это vsync на работе. Ваш монитор работает на частоте 60 Гц, поэтому нет смысла выделять больше кадров. И путем ограничения частоты кадров таким образом не будет разрывающих артефактов.

Возможно, на панели управления драйвером есть параметр, чтобы принудительно активировать или отключить vsync или оставить его в приложении.

Если вы используете инфраструктуру OpenGL, такую ​​как GLUT или GLFW, возможно, также есть возможность явно запросить vsync или отключить ее (что полезно для бенчмаркинга). Однако не все драйверы/настройки будут соблюдать это.

Ответ 2

Что сказал @Thomas, это VSync.

Вы можете отключить его в своем приложении, используя:

  • GLFW: glfwSwapInterval(0); (0= off, 1= on)
  • SDL: SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0);
  • FreeGLUT: я не знаю, что это возможно, используйте свои настройки графического процессора как резервные

Ответ 3

В nVidia Control Panel:

enter image description here

Настройка вертикальной синхронизации - это тот, который вам интересен. Для таких тестов обычно требуется, чтобы он был установлен на off.