Re: Hablemos de polígonos. (techies, os invoco)
Cita:
Iniciado por
ADC
Otra cosa sobre eso que comentas... la GC renderiza 6 capas de una sola pasada, ¿las consolas de hoy en día cuántas capas hacen?
Pues a ver, partiendo de la base que no ando muy puesto ahora mismo en programación gráfica y que básicamente hablo de oídas de lo que comento con el compañero que lleva estos temas, yo te diría que creo que no hay un número de "capas" establecido.
Hoy en día se usa una "pipeline" programable. Resumiendo un poco para los no iniciados, diríamos que la "pipeline" es el proceso que se sigue desde que tenemos un polígono digamos en "datos puros" (información de coordenadas y demás) hasta que se le aplican toda la serie de transformaciones necesarias para mostrar ese polígono como un gráfico en pantalla. Pues bien, antes este proceso era fijo, no podías intervenir en él, las tarjetas usaban unos algoritmos prefijados para pintar el polígono en pantalla. Ahora, gracias al uso de los shader esto ha cambiado radicalmente. A grandes rasgos, un shader es un "mini-programa" que se ejecuta en la tarjeta gráfica y que permite controlar la manera en que un vértice de un polígono (o un píxel, de ahí la separación entre vertex y pixel shaders) se pinta en pantalla.
De manera que al tener este control sobre la manera en que se pinta se pueden obtener mil y un efectos posibles, sólo es cuestión de imaginación (y rendimiento, claro).
Volviendo a la pregunta de ADC (que me voy por las ramas!), la cuestión es que el número de veces que se renderiza la pantalla no está limitado por la máquina sino por el rendimiento. Es decir, obviamente cuantas más veces se renderice la imagen para obtener distintos efectos, más se tardará en generar la imagen final y por lo tanto afecta directamente al framerate.
Aclarar también que cuando hablo de "renderizar la pantalla" no me refiero necesariamente a "pintar cosas en pantalla". De hecho, la mayoría de las veces no es así, sino que lo que hace la tarjeta gráfica es dejar el resultado obtenido en búffers internos, de manera que luego se puede consultar el resultado en posteriores pasadas para aplicar distintos efectos. Y además, cuando se "renderiza la pantalla", tampoco implica procesar la escena entera...puede ser que en una pasada de la tarjeta lo que se quiera es conseguir el efecto de cristal en determinadas superfícies, así que lo único que es procesado por la tarjeta son aquellos objetos que lo requieran.
Bueno, perdón por el tocho...:sudor Repito que puedo haberme colado en cualquier cosa, porque no es mi especialidad, pero espero al menos haber aclarado un poco algunos conceptos básicos para los "no iniciados".
De todas maneras ADC, el lunes le comentaré el tema de la limitación de capas por hardware a mi compi, a ver que me cuenta!
Re: Hablemos de polígonos. (techies, os invoco)
Muy buena la explicación, thx.
Lo que te refieres es que se renderiza lo que hay en pantalla, y lo no visible se deja sin renderizar para optimizar recursos. ¿No se le llama clipping a esto?
Hago copy/paste sobre Rogue Squadron II de GC.
The surface of the second Death Star from the film was rebuilt accurately at 1:1 ratio. The simple shapes on the Death Star surface have up to 300 polygons. Every element has a 512x512 true color texture. You can see 25 of them in the demo. There are 70 Tie Fighters and X-Wings onscreen. So, there are like 200,000 polygons at 60 fps with up to 8 light sources along with gloss, dirt, and bump maps. (Note: that number and type of light source can have a huge effect on the polygon rate)
Texturing allows all these effects: (alpha, bump mapping, gloss mapping, specular highlights, etc.) in the same cycle. It can do 8 layers in a single pass. (It has been previously reported that Julian said single "cycle", but that is not possible since Flipper has 4 pipelines with one texel unit per pipeline)
Para completarlo un poco...
The 2 MB frame buffer is a render buffer - when a frame is done, it is then sent to main memory. When being sent to main memory anti-aliasing and deflickering is done.
The 1 MB texture cache is automatically filled during rendering, as the T&L engine triggers the swap. Textures that are used often can be "locked" into the cache.
A-Memory is for audio but can also be used as a buffer for other items that don't need the speed of main RAM.
The 2 MB on-chip frame buffer contains only the data for the current frame being rendered, and the z-buffer. Double/triple buffer is stored in main RAM, because the video DAC gets the image data directly from main RAM. To render an image, polygonal data is sent to the T&L unit, which loads/swaps textures in automatically into the texture cache. Textures are decompressed during rendering, so uncompressed textures never take up memory.
http://img107.imageshack.us/img107/416/poloe2.jpg
¿En dónde colgais las imágenes?
Re: Hablemos de polígonos. (techies, os invoco)
Cita:
Iniciado por
ADC
Muy buena la explicación, thx.
Lo que te refieres es que se renderiza lo que hay en pantalla, y lo no visible se deja sin renderizar para optimizar recursos. ¿No se le llama clipping a esto?
Mmhh...no, no me refiero a eso. Normalmente, el proceso de descartar todos aquellos objetos que quedan fuera del plano de cámara se realiza antes de empezar el proceso de pintado en la tarjeta. Es decir, se coge la lista de todos los objetos visuales que existen en el juego en ese momento, y se realiza una comprobación para ver si quedan dentro de cámara o no, descartándose de la lista de objetos a pintar todos aquellos que no son visibles. Luego se le pasa a la tarjeta la lista de todos aquellos que sí son visibles, y adicionalmente la tarjeta puede realizar cálculos extra para descartar las caras ocultas de los objetos.
Pero a lo que yo me refería con lo de que no hace falta pintar la "pantalla" entera es otra cosa. A ver si me explico...la tarjeta gráfica funciona por "pasadas". Todos los objetos que se manden a pintar en una pasada utilizarán la misma "pipeline", es decir, el mismo set de shaders y usando las mismas opciones de la tarjeta. Además, el resultado de una pasada no tiene por qué mostrarse en pantalla, sino que puede que se guarde internamente en la tarjeta. Por poner un ejemplo, para hacer un efecto de desenfoque en función de la distancia, primero se haría una pasada de la escena para calcular la profundidad de cada objeto y se guardaría esa info de profundidad en un búffer de la tarjeta. Luego se haría otra pasada en la que se utilizaría esa info para aplicar a cada píxel más o menos desenfoque en función de la profundidad, y ese sería el resultado que efectivamente se pintaría en pantalla.
Y además, podemos usar una lista de objetos "pintables" distinta en cada pasada, de manera que para una pasada concreta (por ejemplo para pintar superfícies con transparencias) solo usaríamos la lista de objetos que fueran transparentes. El resto de objetos "pintables" no se procesarían para ahorrar faena.
Espero haber podido aclarar un poco más el concepto...es que esto de hablar de cosas así más técnicas vía teclado es complicado, ¿eh? :lol
Re: Hablemos de polígonos. (techies, os invoco)
Yo creo que el momento actual está más en el tema pipelines y shaders que en aumentar la poligonización. En momentos puntuales puede interesar usar más polígonos, pero por lo general, un polígono "más grande" con buena textura y buenos shaders puede dar más el pego que varios pequeños sin los shaders.
En muchos juegos de PC puede verse claramente, no hay más que probar las permutaciones de "detalle de modelo" y "efectos". En el Bioshock, con los shaders y todos los efectos a tope se nota menos el cambio entre el detalle del modelado que sin ellos.
Re: Hablemos de polígonos. (techies, os invoco)
Re: Hablemos de polígonos. (techies, os invoco)
CoD 2 character models: ~8K
CoD 4 character models: ~6K
source: Grant Collier (Infinity Ward president) on Insomniac Full Moon Show
Re: Hablemos de polígonos. (techies, os invoco)
Aquí os dejo una minipelícula que me ha pasado mi colega, por lo que me cuenta, a pesar de que parezca fotorealista, el modelado es muy simple, si hay interés puedo preguntar por la poligonización y como lo hizo...
http://www.3dblasphemy.com/personal/MUSTANG.html
Re: Hablemos de polígonos. (techies, os invoco)
Brutal el vídeo. Supongo que todo el entorno es real y le habrá aplicado un tracking en 3D.
Y respecto al bajo número de polígonos... no se nota.
Re: Hablemos de polígonos. (techies, os invoco)
Cita:
Iniciado por
Findor
si hay interés puedo preguntar por la poligonización y como lo hizo...
Ya estás tardando! Es impresionante el video ese, parece mentida que sea tan real.
Re: Hablemos de polígonos. (techies, os invoco)
Cita:
Iniciado por
Sheldon
Ya estás tardando! Es impresionante el video ese, parece mentida que sea tan real.
Pues le preguntaré a ver, lo que no sé es cuanto tardará en conseguirme una respuesta, primero porque mi colega está liado con la primera Alpha del Farcry 2 y luego porque ha de indagar al autor del video.
Pero vamos, en cuanto pueda poner una explicación la pongo.
Re: Hablemos de polígonos. (techies, os invoco)
Cita:
Iniciado por
Deimos
Brutal el vídeo. Supongo que todo el entorno es real y le habrá aplicado un tracking en 3D.
La primera respuesta (simple) que tengo es que TODO es modelado 3D, incluido el escenario... :juas Mi colega está en proceso a ver si consigue un resúmen de datos.
Seguiremos informando.