mejorando calidad sin bajar el rendimiento en videojuegos

2121

Miembro habitual
Mensajes
94
Reacciones
0
Ubicación
distrito federico
esto esta de poca madre y les servira bastante a los que juegan en la PC y no tienen una compu muy potente o tiene una compu mas decente pero juegan a resoluciones alrededor de 1280x720.

todos conocen algo llamado ANTIALIASING que es una manera de quitar el famoso JAGG o bordes dentados o tambien llamados "bordes escalera" en las lineas diagonales de las imagenes por computadora en tiempo real, osease en los videojuegos

un ejemplo del efecto JAGG [jaggies] en lineas diagonales
diagonal-lines.jpg
diagonal-lines-detail.jpg


estos bordes los vemos en las primeras consolas como la PSX-PSONE o la PS2 [famosa por esos bordes dentados], n64 y en compus con graficas y moniotores que usaban reosluciones bajas de 800x600 y en si en cualquier render de imagen digital a baja resolucion

atmark-aliasing.jpg
atmark-aliasing-detail.jpg


para evitarlo se usa la tecnica llamada ANTIALIASING que es un FILTRO DE POST-PROCESAMIENTO que trata de suavizar los escalones sobreponiendo pixeles con tonos ligeramente diferentes al tono del pixel que define el borde del objeto. con eso se engaña al ojo y que parezca una linea mas NITIDA y definida en los bordes

vemos que se han agregado pixeles con diferentes tonos que van del negro al blanco, osease tonos grises
atmark-antialiased.jpg
atmark-antialiased-detail.jpg


o en esta se han agregado tonos del rojo al blanco, osease se compara el color del fondo de la imagen contra el color del borde del objeto para ver que tonos de pixeles hay que agregar alrededor borde y dar es aapariencia de nitidez

atmark-red.jpg
atmark-red-detail.jpg


y hasta a´i todo esta chido, el gran pedo es que ese POST-PROCESAMIENTO para hacer el SUAVIZADO o ANTIALIASING en los juegos de video consume mucho trabajo de computo a la tarjeta de video de la compu o de la consola, y eso hace que baje el rendimiento con lo que tenemos bajones de los FRAMES POR SEGUNDO y el LAG osease "el como imagenes pausadas" cuando hay muchas cosas en la pantalla del juego. y si estas usando resoluciones de 1280x720 o un poquito menores o algo mayores y tu tarjeta de video es de gama baja pos mas notaras esa baja de rendimiento.

por eso es que solemos aconsejar que cuando tengan estas compus de gama baja pues que quiten o disminuyan el uso del ANTIALIASING desde el panel de control de la tarjeta de video y desde las opciones del juego. en las consolas pos no hay esa opcion por lo que se deben conformar con lo que hay

por suerte los matematicos que se dedican a jugar y otros ingenieros siempre estan pensando como mejorar las cosas y disfrutar mas chido los juegos y han sacado diferentes mejoras a estas tecnicas las cuales tienen menor impacto en el rendimiento. y lo mas chido es que los creadores de juegos de PC y consola piensan usar estas tecnicas

asi ATI-AMD saco una tecnica llamada MLAA que se utiliza en los ultimos controladores CATALYST que consume menos poder de computo y da calidades aceptables de suavisado, osease que esta tecnica funciona en las tarjetas de video RADEON en compus y consolas que las usen [gamecube y wii]

asi NVIDIA saco otra tecnica llamada FXAA que se utiliza en los ultimos controladores FORCEWARE que consume menos poder de computo y da calidades aceptables de suavisado, , osease que esta tecnica funciona en las tarjetas de video geforce en compus y consolas que las usen [xbox]

pero hay otra tecnica que es independiente de ATI y NVIDIA con lo que se pude usar en cualquier tarjeta de video sin importar la marca [ATI, INTEL o NVIDIA] y que segun se ve es mucho mejor dando una calidad muy similar a las tecnicas tradicionales y que se llama SMAA

iryoku.com dijo:
SMAA [Enhanced Subpixel Morphological Antialiasing]

Abstract

We present a new image-based, post-processing antialiasing technique, that offers practical solutions to all the common problems of existing filter-based antialiasing algorithms. It yields better pattern detection to handle sharp geometric features and diagonal shapes. Our edge detection scheme exploits local contrast features, along with accelerated and more precise distance searches, which allows to better recognize the patterns to antialias. Our method is capable of reconstructing subpixel features, comparable to 4x multisampling, and is fully customizable, so that every feature can be turned on or off, adjusting to particular needs. We propose four different presets, from the basic level to adding spatial multisampling and temporal supersampling. Even this full-fledged version achieves performances that are on-par with the fastest approaches available, while yielding superior quality.

todas las tecnicas hacen mas o menos lo mismo, pero como veremos en las siguientes imagenes la calidad resultante varia mucho y el impacto en el rendimiento [velocidad de frames y menos lag] varia tambien.

ejemplos

las tres tecnicas usadas actualmente VS SMAA, se acomodo de la de menor calidad a mayor calidad de izquierda a derecha:

el NVIDIA FXAA pa las geforce
el ATI MLAA pa las radeon
el CSAA usado por todas las tarjetas de video por ser de las primeras tecnicas y de mejor calidad
el SMAA independiente y de este año tambien planeado para todas las tarjetas de video

89449267.png


como notamos la de menor calidad es la FXAA y la de maxima calidad es la CSAA, el filtrado antialiasing del FXAA le toma para esta imagen de 1920x1080 pixeles 0.68ms, mientras que al CSAA le tomo 8ms, al filtro SMAA le tomo 2.037ms y la calidad y nitidez es casi igual a la del SSAA usando solo 1/4 parte del tiempo invertido en el render.

30549224.png


otra vez un render a 1920x1080 pixeles con los tiempos que le llevo a cada filtro aplicar el antialiasing, nuevamente el que menos tiempo usa de procesamiento es el FXAA pero la calidad es muy cutre mientras que el CSAA da la mejor calidad pero usa 6ms mientras el SMAA usa 2ms y tiene la calidad muy pareja con el CSAA.

68202459.jpg


una imagen con un render que ya aplica texturizado con efectos de luz y sombra, otra vez acomodados por calidad de imagen, el de menor calidad el FXAA y maxima el CSAA y otra vez el filtro SMAA esta en penultimo lugar de calidad.

Esta es la pagina oficial de los creadores del fioltrado antialiasing SMAA: http://www.iryoku.com/smaa/

este es un video que demuestra ya en accion el filtrado y usa el motor grafico CRYENGINE3 del Crysys 2:

Contenedor MP4
Formato audio/video AAC/h.264 [high@3.1]
Dimesion 1280x720 [720p@30fps]
Peso 222MB
http://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.mp4

al parecer ya hay programadores interesados en usar esta nueva tecnica y se podria ver aplicado en los siguientes juegos de la xbx 360 y la ps3 con lo que tendrian juegos a mas frames por segundo y con calidad chida de imagen nitida.
 
suerte pa los que usamos compu

a los que jugamos en la compu nos fue bien porque no necesitamos esperar a que los creadores de los juegos decidan a usar este filtro SMAA, y podemos disfrutarlo ya en los juegos actuales, anteriores y futuros del mercado.

un cuate que es programador independiente vio este filtro SMAA y decidio sacar unos archivos que al ponerlos en la misma carpeta donde esta el ejecutable del juego hacen que el juego aplique esta tecnica con lo que tienes una calidad de poca madre y con altos frames por segundo.

el programa se llama INJECTSMAA, son ocho archivos divididos en dos carpetas, una llamada DX9 que sirve pa usarse en juegos que usan Direct3D9 y otra llamada DX10 pa usarse en los juegos que usan Direct3D10 o Direct3D11 en VISTA o en SEVEN

Pagina Oficial del proyecto InjectSMAA: http://mrhaandi.blogspot.com/p/injectsmaa.html
Version actual: 1.2

* adds "Subpixel Morphological Antialiasing" to an application
* is based on "injectFXAA" (written by "some dude")
* is supposed to work only with directx 9, directx 10, directx 11, x86 applications
* may be incompatible with any other form of antialiasing
* may be incompatible with overlays (Steam Overlay, MSI Afterburner, Fraps, ...)

SMAA is a very efficient GPU-based MLAA implementation, capable of handling subpixel features seamlessly, and featuring an advanced pattern detection & handling mechanism.
http://www.iryoku.com/smaa/

Changelog

v1.2

* Add: Configuration file
* Change: Internal modularisation
* Change: (d3d9) Improved state handling
* Fix: (d3d10) Possible memory leak
* Fix: (d3d9) Steam overlay via "weird_steam_hack"

v1.1

* Fix: (d3d9) GTA4 AlphaTest issue
* Fix: (d3d9) GTA4 DepthStencil issue

v1.0

* Add: SMAA 1x

para DX9 los archivos son:
d3d9.dll es una DLL modificada del original dx9 y que llama al archivo "SMAA.fx"
SMAA.fx tiene las instrucciones del filtrado SMAA
SMAA.h eset tiene las instrucciones para los circuitos shader de la tarjeta de video
injector.ini el archivo de configuracion que podemos modificar con el blog de notas.

para DX10 y DX11 los archivos son:
dxgi.dll es una DLL modificada del original dx10/dx11 y que llama al archivo "SMAA.fx"
SMAA.fx tiene las instrucciones del filtrado SMAA
SMAA.h eset tiene las instrucciones para los circuitos shader de la tarjeta de video
injector.ini el archivo de configuracion que podemos modificar con el blog de notas.

aunque tienen archivos iguales de nombre los archivos son completamente diferentes en su contenido por lo que no deden confundirlos.

el filtro SMAA tiene cuatro PRESET o preconfiguraciones:
* SMAA_PRESET_LOW (%60 of the quality)
* SMAA_PRESET_MEDIUM (%80 of the quality)
* SMAA_PRESET_HIGH (%95 of the quality)
* SMAA_PRESET_ULTRA (%99 of the quality)

para indicar que PRESET o calidad del filtrado vamos a usar debemos abrir el archivo injector.ini con el blog de notas y buscamos la etiqueta "preset = " y ponemos el nombre completo como aparece en la lista anterior.

injector.ini dijo:
[injector]
;toggle shader keycode
key_toggle = 19

;make screenshot keycode
key_screenshot = 44

;reload shader files keycode
key_reload = 0


[smaa]
;smaa preset one of {SMAA_PRESET_LOW, SMAA_PRESET_MEDIUM, SMAA_PRESET_HIGH, SMAA_PRESET_ULTRA}
preset = SMAA_PRESET_HIGH

[misc]
;set to 1 to improve steam overlay compatibility
weird_steam_hack = 0

por default viene configurado en el preset "SMAA_PRESET_HIGH"

para computadoras de gama baja yo recomendaria usar el preset PRESET_LOW o el preset SMAA_PRESET_MEDIUM, pa computadoras de gama media y gama alta el preset SMAA_PRESET_HIGH y el preset SMAA_PRESET_ULTRA

las etiquetas

key_toggle = y key_screenshot = indican la tecla que servira para apagar el filtro SMAA y el hacer captura de pantalla

el valor 19 [key_toggle = 19] indica que al usar la TECLA_PAUSA se apaga el filtro
el valor 44 [key_screenshot = 44] indica que al usar la tecla CAPTURA_PANTALLA se hara una captura y se guardara un archivo BMP en la misma carpeta donde estan los archivos del filtro injectorSMAA.

ejemplo:

el juego CRYSYS 2 es un juego que usa Direct3D9, por eso sin importar si esta en windows XP o VISTA o 7 se deben usar los archivos de la carpeta DX9 del injectorSMAA, el archivo del ejecutable del juego se encuentra en la carpeta BIN32 y a´i se copiarian los archivos d3d9.dll,
SMAA.fx, SMAA.h y injector.ini
 
Respuesta: mejorando calidad sin bajar el rendimiento en videojuegos

Gracias mil, amigo... :hail

Manu1oo1
 
Respuesta: mejorando calidad sin bajar el rendimiento en videojuegos

por nada, lastima que de estos temas ´parece a nadie le importa en estos lares.
 
ejemplos del rendimiento

Sky_Light dijo:
Bueno de momento solo tengo instalado dos juegos pero realice unos screenshots:

Call of duty modern warfare 3

Antes



Despues, ya con el filtro SMAA



The elder scrolls skyrim

Antes



Despues, ya con el filtro SMAA


En ambos esta desactivado el antialiasing ya que si lo activo decrece el rendimiento y representaria una gran caida de fps, con el filtro SMAA mejora la calidad grafica sin los dientes de sierra y sin caida de rendimiento.

El equipo es sumamente modesto:

AMD Phenom 9550
4gb de ram
Nvidia 9600gt
win7sp1
1366x768 resolucion nativa del monitor

Bueno esperando las contribuciones de otros usuarios :mc-wink: .


fijandose en el aro de mira del rifle es donde se nota como sirve el filtro SMAA

se ve bien el jagg
cod1l.jpg


y aqui ya se nota mas suaves los bordes
cod2r.jpg


en la espada y en los contornos de la amazona se ve el jagg
elder1.jpg


ya copn el filtro SMAA pos si se nota mas nitida las lineas y no se nopta perdida de calidad ni de contraste y las letras se ven tambien bien definidas sin verse borrosas

elder2.jpg


pos yo no se donde chingaos deje los discos de juegos aparte de que tengo que liberar espacio, pero espero hacerme de tiempo en la semana pa buscar esos discos y respaldar videos del disco duro pa dejar espacio.

cuyo01 dijo:
corri el bench de street fighter iv con diferentes configuraciones y estos son mis resultados:

con el smaa deje el antialiasing del juego en "ninguno".

deje vsync desactivado para que el juego corra a full.

deje el toque extra en "acuarela".

todas las demas opciones estan en default.



sin AA ni SMAA:
sinAA.png

con 2x AA:
con2xAA.png
con 8x AA:
con8xAA.png

con C8x AA:
conC8xAA.png
con SMAA LOW:
consmaalow.png
con SMAA HIGH (default):
consmaahighdefault.png
con SMAA ULTRA:
consmaaenultra.png

por el momento es el unico juego que tengo con benchmark incluido, tambien lo probe en alice madness return y se siente la diferencia en rendimiento.

sin AA ni SMAA: 100.9fps
con AA 2x: 60.2fps
con AA 8x: 24.9fps
con CAA 8x: 46.1fps
con SMAA LOW: 75fps
con SMAA high: 70.9fps
con SMAA ultra:68fps

pos si que se ve que rinde
 
Respuesta: mejorando calidad sin bajar el rendimiento en videojuegos

Amigo 2121, que nadie comente no significa que a nadie interese. Sencillamente, no queda mucho que añadir, pero eso no quita que se agradezca (y mucho) la información.

Manu1oo1
 
El no comentar para al menos dar las gracias op exponer una duda es lo mismo que la indiferencia y ningun interes en estos temas. Al menos a una persona le sirvio.

y pues aprovecho pa ra pedir muevan este tema a la seccion de juegos PC que quiza ahi le sea de utilidad a uno o dos personas mas.
 
Respuesta: mejorando calidad sin bajar el rendimiento en videojuegos

La mejora no es perfecta, pero es asombrosa desde luego.

¿Se sabe si se está implementando o si ya se ha implementado a alguno de los motores típicos que se suelen utilizar en consolas?
 
Arriba Pie