Dudas sobre renderizado


  • 0

    Buenas. Desde hace unas semanas me he empezado a meter en el mundo del renderizado de una forma un poco tangencial: no hago diseños en 3DS ni renderizo pero unos colegas lo han empezado a hacer de forma profesional y me han pedido recursos en forma de PCs para renderizar.

    En este tiempo he aprendido algo sobre cómo funciona 3DStudio a la hora de renderizar y tengo hay algún concepto que no termino de comprender. Te trata de que 3D Studio no utiliza la tarjeta gráfica para renderizar: tan solo el procesador. Da igual que tenga una Quadro pollúa (he tenido la oportunidad de probarla) o una tarjeta integrada Intel (también se ha renderizado ahí). Lo importante es tener un procesador muy potente: con muchos nucleos y mucha frecuencia. He podido comprobar que el tiempo de renderizado el proporcional exclusivamente al procesador: un procesador el doble de rápido (ya sea por tener el doble de núcleos o el doble de frecuencia en la misma plataforma) tarda la mitad.

    El otro día que estabamos con 3 PCs renderizando lo estuve hablando con esta gente (que no tienen mucha idea de ordenadores) y les dije que en el mundo de los videojuegos se renderizan imágenes con texturas muy detalladas, luces y sobras en tiempo real a varias decenas frames por segundo. Me decía que eso no podía ser, que mirara cómo 3DS (a 0.02 fps en un un 3570K con 8Gb de RAM). Yo les decía que sí, pero que en los videojuegos era así. No me creían así que le baje y les ejecute el LightMarks y me dijeron que eso era un video, que no podía ser. Les enserñé el Battlefield 3 y se quedaron con cara de tontos.

    La cuestión es que yo, al igual que ellos, no me explico cómo puede 3DS ser tan lento. Entiendo que es lento porque no usa aceleración 3D (aunque en varios foros dicen que en las próximas versiones habrá asistencia de aceleración 3D).

    Sé que en 3DS se usan texturas de tamaño descomunal (a veces imágenes de más de 500mb) y que los detalles son superiores, pero los tiempos son demasiado elevados.

    La pregunta es simple ¿por qué 3DS es tan lento? ¿Por qué no se usan las mismas técnicas que en los videojuegos?



  • 1

    Pero se supone que las quadro son específicamente para autocad y 3dstudio. Se que hay un añadido a los drivers para hacerlos funcionar y que usan los cuda para acelerar bastante los cáiculos. Será por eso que está tirando de cpu y no de gráfica. Es la gráfica que se usa en las estaciones de resonancias magnéticas por su potencia.
    Pero también estoy interesado en alguien que domine el tema nos lo explique de forma más completa.



  • 2

    @garfield:

    Pero se supone que las quadro son específicamente para autocad y 3dstudio. Se que hay un añadido a los drivers para hacerlos funcionar y que usan los cuda para acelerar bastante los cáiculos. Será por eso que está tirando de cpu y no de gráfica. Es la gráfica que se usa en las estaciones de resonancias magnéticas por su potencia.
    Pero también estoy interesado en alguien que domine el tema nos lo explique de forma más completa.

    Es curioso el tema de las gráficas para diseño y renderizado. 3D Studio usa la tarjeta gráfica SÓLO para la previsualización de la escena. Es decir, cuando lo estás "dibujando" todo y puedes moverte, girar y demás, ahí sí se usa la gráfica. Pero en esa previsualización no hay cálculo de luces y sobras.

    La cuestión es que la diferencia entre una tarjeta gráfica enfocada a juegos (por muy potente que sea) y una Quadro en este ámbito es que cuando te mueves por esa previsualización, la Quadro mantiene las texturas durante el movimiento mientras que con la tarjeta enfocada a juegos, las texturas desaparecen y se muestran solo gráficos vectoriales. Cunado sueltas el ratón y dejas la escena estática, reaparecen las texturas.

    Por otra parte, las Quadro permite una previsualización de la animación más fluida que una tarjeta gráfica normal.

    Pero a la hora de renderizar, es decir, de sacar todos los fotogramas a archivos de imagen con el cálculo de luces y sobras, antialiasing y demás, la tajeta gráfica no hace absolutamente nada. Tan solo trabaja el procesador.

    Puedo poder otro ejemplo de lo lento que es todo esto: escena SIN texturas y antialiasing activado, vamos, algo muy simple exceptuando el antialiasing. En el 3570K tardó 40 horas en renderizar 900 fotogramas.



  • 3

    Pues ya se algo que antes no sabía. Entonces por lo que comentas, la ram del equipo sería sólo para la previsualización, y necesitarías un micro con muchos núcleos para finalizar la imagen, y el equipo muy bien refrigerado. Si pueden haría la prueba con un Xeon, que tiene mucha más caché a ver si eso ayuda, con placas duales; o AMD que tienen más nucleos, pero menos instrucciones por ciclo.
    Y si no les queda usar servidores para realizar la animación con tropocientos micros,
    Pero lo raro es que se supone que las kleper las sacaron presisamente para que ellas realizacen los cálculos de luces y sombras. Es curioso porque es parecido a lo del corel. Da igual la gráfica que uses, cuando metes muchos elementos el pc se pone al 100%, con una hd3000 o una ati6850.

    Estoy preguntando, no afirmando, porque como dije, en esto estoy perdido.



  • 4

    Para ese tipo de programas , lo que funciona es un procesador muy potente y cuantos mas nucleos mejor
    mucha memoria y una grafica media es suficiente tipo HD 7770

    saludos



  • 5

    @garfield:

    Pues ya se algo que antes no sabía. Entonces por lo que comentas, la ram del equipo sería sólo para la previsualización, y necesitarías un micro con muchos núcleos para finalizar la imagen, y el equipo muy bien refrigerado. Si pueden haría la prueba con un Xeon, que tiene mucha más caché a ver si eso ayuda, con placas duales; o AMD que tienen más nucleos, pero menos instrucciones por ciclo.
    Y si no les queda usar servidores para realizar la animación con tropocientos micros,
    Pero lo raro es que se supone que las kleper las sacaron presisamente para que ellas realizacen los cálculos de luces y sombras. Es curioso porque es parecido a lo del corel. Da igual la gráfica que uses, cuando metes muchos elementos el pc se pone al 100%, con una hd3000 o una ati6850.

    Estoy preguntando, no afirmando, porque como dije, en esto estoy perdido.

    Sería interante la prueba con un micro con mucha caché. La verdad es que no sé de qué forma influye pero de momento no hay ninguno disponible. Por lo visto resulta sencillo hacer una granja de procesamiento con 3DS (paralelizar un solo trabajo entre varias máquinas). He estado pensando en el tema y creo que lo más eficiente económicamente es montar varias torres de simple-procesador que una sola biprocesador. Lo bueno de esto es que sólo te tienes que fijar en tener un buen micro ya que es la única variable que interviene así se puede conseguir fuerza bruta por relativamente poco dinero.

    @ferelxyx:

    Para ese tipo de programas , lo que funciona es un procesador muy potente y cuantos mas nucleos mejor
    mucha memoria y una grafica media es suficiente tipo HD 7770

    saludos

    Eso depende mucho del uso y del fin. Para el que se vaya a dedicar de forma profesional a esto yo le recomendaría que tuviera al menos un PC con una Quadro porque tener previsualización fluida es importante. Por otra parte no se requieren grandísimas cantidades de RAM: con 4 nucleos el tema consume 5-6 Gb de RAM por lo que con 8 vas suficiente y con 16 muy sobrado. La cuestión es que esta gente trata imágenes de tamaños absurdos con Photoshop y ahí a veces con 16 Gb van justitos.

    Una vez que se tiene el PC con la Quadro, se pueden tener otros con tarjetas pencas pero con buenos micros a los que se les mande trabajos remotamente.



  • 6

    Buscando sobre el tema, que no se si servirá y si no tengo el inglés oxidado:
    http://www.legitreviews.com/nvidia-kepler-versus-fermi-in-adobe-after-effects-cs6_2127
    Legit Reviews: NVIDIA Kepler versus Fermi in Adobe After Effects CS6 - AnandTech Forums
    NVIDIA CUDA: Kepler Vs. Fermi Architecture | The GPU Blog

    Dice que las GTX5xx son más ràpidas en after effects que las GTX6xx, que las fermi son más rápidas que las kepler. Esto es porque en Adobe han activado los drivers para su programa.
    Pero sólo hablan de las de juegos, no de las quadro.

    Y en otro foro de nvidia comentan que hay drivers nuevos para iray, que puede ser lo que necesites:
    fermi & kepler mixed for iray

    y para quadro:
    3ds Max Performance Driver | NVIDIA

    No se si servirá



  • 7

    Tengo un poco oxidado este tema, pero el renderizado en tiempo real es muy diferente al de diseño que utiliza el 3DS u otros. Los juegos utilizan un sistema de polígonos simple (aunque sean miles) mientras que aplicaciones de diseño los multiplican en complejidad. En los juegos se utilizan muchos objetos precocinados (como las texturas pre-renderizadas) mientras que el renderizado de 3DS se calcula todo. Muchos de los efectos como las luces y sombras en juegos son relativamente simples (muy complejos para hacerse en tiempo real, pero relativamente simples en su aplicación) pero 3DS lo calcula absolutamente todo. Por último, gran parte de los efectos visuales que 3DS calcula en la renderización, los juegos lo hacen con filtros en post proceso (como el blur, antialiasing, etc.).

    Las aplicaciones de renderizado no explotan la tarjeta gráfica porque los procesadores gráficos están especializados en el render en tiempo real que básicamente es la aplicación de las texturas ya renderizadas previamente en los polígonos, los cálculos de luces y los filtros postproceso. Seguramente programas como 3DS podrían utilizarlas de forma más eficiente, pero no creo que merezca mucho la pena. Vamos, que básicamente 3DS es cálculo matemático puro y eso lo hace mejor el procesador que la GPU.

    El renderizado en tiempo real tiene aberraciones que nos pasan desapercibidas en el juego, como los efectos de vegetación o la deformación de texturas cuando se aplican a determinados polígonos, que no ocurren al hacer el render en 3D studio al calcularse en cada aplicación.

    Dicho todo sin ser un experto en la materia …



  • 8

    @lforos:

    Tengo un poco oxidado este tema, pero el renderizado en tiempo real es muy diferente al de diseño que utiliza el 3DS u otros. Los juegos utilizan un sistema de polígonos simple (aunque sean miles) mientras que aplicaciones de diseño los multiplican en complejidad. En los juegos se utilizan muchos objetos precocinados (como las texturas pre-renderizadas) mientras que el renderizado de 3DS se calcula todo. Muchos de los efectos como las luces y sombras en juegos son relativamente simples (muy complejos para hacerse en tiempo real, pero relativamente simples en su aplicación) pero 3DS lo calcula absolutamente todo. Por último, gran parte de los efectos visuales que 3DS calcula en la renderización, los juegos lo hacen con filtros en post proceso (como el blur, antialiasing, etc.).

    Las aplicaciones de renderizado no explotan la tarjeta gráfica porque los procesadores gráficos están especializados en el render en tiempo real que básicamente es la aplicación de las texturas ya renderizadas previamente en los polígonos, los cálculos de luces y los filtros postproceso. Seguramente programas como 3DS podrían utilizarlas de forma más eficiente, pero no creo que merezca mucho la pena. Vamos, que básicamente 3DS es cálculo matemático puro y eso lo hace mejor el procesador que la GPU.

    El renderizado en tiempo real tiene aberraciones que nos pasan desapercibidas en el juego, como los efectos de vegetación o la deformación de texturas cuando se aplican a determinados polígonos, que no ocurren al hacer el render en 3D studio al calcularse en cada aplicación.

    Dicho todo sin ser un experto en la materia …

    Excelente, me despejaste muchas dudas



  • 9

    En mi modesta opinion …

    3ds es lento por que su motor de render es realista. Prueba con Vray, y veras que es aun más lento :)

    Los juegos usan un motor de render no tan realista, con trucos y atajos que no se usan en un motor de render real.

    El tema de las texturas ..es otra cosa. Hay texturas que son fotos, y texturas que son matematiicas ... intenta hacer un render en tiempo real de esas texturas :)

    Con las GPU las cosas cambian algo, porque son más potentes en calculo matemoatico que las CPU ... pero hay que mirar que GPU y qe CPU :)
    un i7 es muy superior a una nvidia 610 ...

    Luego ... esta el tema de la resolucion de salida del render . He visto que mucha gente se pone a renderizar directamente en Full HD para hacer pruebas ... incluso finales... y luego tienen que reescalar a resoluciones inferiores ... o al reves...

    En fin ... es un tema complejo ...





Has perdido la conexión. Reconectando a Hardlimit.