Vandroy escribió:No sé si ya se ha hablado de esto por aquí, al menos no he encontrado nada.
El caso es que soy incapaz de hacer que 30 FPS se vean tan fluidos en PC como se ven por ejemplo en consola. El stuttering es infernal y nunca he sabido por qué no como arreglarlo.
Alguien tiene idea de como solucionar esto?
Resumen: En inglés, escrito por el maestro Durante (creador del parche original del Dark Souls en pc) tienes un post que explica porque pasa todo esto y fue el que me enseño a mi todo:
https://www.pcgamer.com/durantes-witche ... moothness/, abajo tienes una explicación en español basada en mi experiencia
Es un tema de Frame Pacing (cadencia entre frames). Algunos compañeros han mencionado conceptos en el hilo pero si lo que buscas es una explicación técnica pues haré lo que pueda para proporcionártela. En los juegos la cantidad de fotogramas (frames) que se pueden entregar en 1 segundo de ejecución es lo que proporciona una experiencia mas o menos fluida donde la referencia se sitúa en los 60 frames por segundo (FPS).
Es normal que el contador de FPS de mi juego no se mueva de 60 pero la experiencia no sea fluida?La respuesta es sí, seguro que os ha pasado alguna vez y si no teníais conocimiento del tema os habrá parecido extraño. La explicación está en lo que antes he mencionado como Framepacing que es la cadencia real a la que se entrega cada frame.
Para tener una experiencia de 60fps fluida significa que tenemos que entregar los 60 fotogramas en el intervalo de un segundo, sin excepción, entonces ¿Cuánto tiempo máximo de entrega debe de tener cada fotograma para cumplir con esto? Dividendo 1 segundo entre los 60 fotogramas (0.016 segundos) salen 16.6ms (este numero se denomina frametime, el tiempo de entrega que necesita cada frame). Esto quiere decir que cada 16.6 MS debe entregarse un fotograma. Si quisiéramos tener una experiencia fluida a 144fps significaría que cada (1 entre 144) 6.9 MS debe entregarse un frame.
¿Que pasa cuando el frame pacing no es uniforme?Lo que todos sabemos, se produce stuttering y la experiencia visual no es la misma porque (si tomamos de referencia los 60fps) lo que esta pasando es que algunos frames se entregan mas tarde que los 16.6ms con lo cual se producen problemas en la imagen que se traduce en diversas formas de stuttering.
"Los famosos 30 fps de consola"Que son esos fps? Porque son tan fluidos? Muy sencillo pues en estas consolas se tiene mas control sobre el hardware y por tanto sobre el framepacing y los frametimes. Para tener una experiencia de 30fps fluida se necesita una cadencia constante de frames cada 33ms exactos (1/30fps=33ms). Si miras cualquier video de DF podrás ver esto perfectamente ya que siempre lo miden:
Ejemplo en el Outter Worlds:
https://youtu.be/I-DLnXEJ-wo?t=827Como se ven los Frametimes son casi una línea plana, lo que quiere decir que la cadencia de entregar es prácticamente perfecta y constante a 1 frame cada 33mes. La experiencia ideal.
Ahora mira como luce esa gráfica en un juego de PC:
https://youtu.be/HfOu36SPnHs?t=783Como ves los frametimes son un baile constante... principalmente porque en PC no solemos limitar los FPS con lo cual si el juego nos entrega una cantidad diferente de frames cada segundo pues es normal que los tiempos entre cada uno varíen.
Que puedo hacer al respecto para mejorar esto? Como puedo conseguir los 30 fps a 33ms clavados como en consola?Bueno cada juego es un mundo pero aquí te va una norma general para poder conseguirlo, necesitas:
a) Que tu sistema se capaz de dar de manera consistente una media de frames superior a los 30 (40, 42 lo que sea pero por encima de 30)
b)
Rivatunner: Con este programa puedes limitar los FPS de un juego especifico con la diferencia de que Riva Tunner actúa a bajo nivel o a nivel de hardware, lo que se traduce en que en vez de ser una aplicación que intenta realizar sus cambios por encima del juego que estés ejecutando pues se integra dentro de los mismos, en resumen funciona mejor.
Un saludo y mas dudas ya sabes