![]() |
|
Bienvenido a Foros 3DPoder.. Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! ! Si usted tiene algún problema con su registro, por favor , díganoslo aquí.
|
![]() ¿Te ayudo? |
|
|||||||
|
|
|
|
#1 |
|
Miembro Nuevo
Fecha de Ingreso: mayo-2004
Mensajes: 16
|
Buenas, estoy aqui de nuevo leyendo y leyendo el tutorial de dideje y creo por fin empezar a entender el comportamiento y cualidades de este motor de render, sin embargo sigo teniendo algunas dudas (he buscado la respuesta usando el Buscador del foro y no la he encontrado, por eso es que llego a esta instancia) Voy a tratar de ser lo màs claro que pueda, me refiero a las Hsph Subdivs y a Interpolate samples para el calculo del irradiance map, citando a dideje "¿Pocos rayos o pocas muestras o poca interpolación? Partiendo del hecho de que cada escena es un mundo, creo que, lo mejor es optar por un termino medio. Un exceso o una falta de cualquiera de esos tres ingredientes suele dar lugar a problemas." Bueno el asunto es que no logro encontrar una relacion de valores aplicable para cada tipo de escena que tengamos, lo unico que halle fue algo asi como: "Con un numero alto de HSph Subdivs las Interp. Samples deben ser bajas para evitar que aparezcan artefactos (iluminación en esquinas...). Un valor alto mayor calidad en el render, pero peores tiempos" yo me pregunto ¿cuanto seria mucho y cuanto seria poco? Vean el ejemplo al que me refiero, en el render final de la escena_pruebas.rar dideje uso los siguientes parametros: HSph. Subdivs: 35 Interp. Samples: 45 Mientras que en la de Luz_natural_inicio.rar el uso unos valores asi: hsph 35 inter 35 y he visto valores de lo màs raros, como en algunos video tutoriales de Evermotion utilizaban 20,20 y en exteriores la relacion hsph 30 inter 10 (en un tutorial de osmosis) quiero aclarar primero que todo que comprendo que son estos dos parametros los cuales estan muy bien explicados por dideje en la pag10 del post "Interior con luz artificial" pero no hace ninguna referencia a que representan estos valores, algo que si se hace por ej en aclarar que significa el valor de 1 en Max density del calculo de fotones en el cual 1 es la unidad del sistema en el que estemos trabajando (metros, centimetros, milimetros) me gustaria tener alguna referencia en cuanto a posibles valores que adopten estos parametros segun la escena que tengamos. Bueno espero haber sido lo màs concreto, y por supuesto si esto esta respondido en algun post o seccion de alguno les agradeceria que me den el link al mismo, y no se enojen conmigo porque la verdad es que llevo horas tratando de encontrarlo y no lo he logrado. |
|
|
|
|
|
#2 |
|
H = E + L
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
|
Hola.
Ante todo decir que no soy precisamente la persona más indicada para explicarte todo este tema sin cometer ciertas imprecisiones. Programar un renderer como VRay no es fácil (en realidad es bastante jodido) y las cuestiones técnicas que nos encontramos ante este tema también son complejas de responder. Dicho esto, intentaré explicarte lo mejor que pueda en qué consisten los parámetros Hsph. Subdivs e Interp. samples. Empezamos con las Hsph. Subdivs. Básicamente, un raytracer lo que hace es lanzar rayos (primary rays) desde el punto de vista del observador (la cámara) entonces se va viendo cada rayo en qué punto colisiona. En un raytracer sin soporte para GI, una vez que el rayo intersecta en un punto de una superficie, se calcula las componentes de la iluminación para dicho punto (diffuse, specular...) y listo. En ciertas situaciones en las que se tenga que calcular una reflexión o una refracción, se vuelve a lanzar otro rayo (secondary rays) para llevar a cabo dicho cálculo (en realidad se lanzan tantos rayos como máxima profundidad le demos a la reflexión). Vale, esto es en un raytracer donde no se soporta GI. Ahora veamos el caso de la GI. Al igual que antes, se lanza un rayo desde la cámara y éste intersecta en algún punto de una superficie. Llegados a este punto es donde se encuentra la gran diferencia entre calcular o no la GI. Sin GI dije que se calculaba la iluminación para ese punto y listo. Pues bien, con GI, lo que hay que hacer es ver la contribución de toda la escena en la iluminación de dicho punto. ¿Cómo se hace esto?. Pues básicamente lanzando más rayos (secondary rays) desde el punto en cuestión. La pregunta ahora es, ¿cuántos rayos y en qué dirección lanzamos dichos rayos?. Aquí es donde entra en juego el parámetro Hsph. Subdivs. Lo que se hace es que se construye un hemisferio (semiesfera) imaginario sobre el punto actual y con una dirección igual a la normal de dicho punto. Esta semiesfera tendrá tantas subdivisiones como le indiquemos en el parámetro Hsph. Subdivs (es como cuando construímos una esfera y le asignamos el número de segmentos). Evidentemente, a más subdivisiones, más rayos secundarios se lanzarán por lo que la GI será de mayor calidad y por supuesto el tiempo de cálculo será mayor. Aquí cabe aclarar que si pones un número de 50 subdivisiones, en realidad no estás lanzando 50 rayos sino 2500, es decir, el número de rayos lanzados será igual a Hsph. Subdivs al cuadrado. Otra pregunta que uno se puede hacer es en qué dirección salen estos rayos. ¿Se distribuyen uniformemente sobre el hemisferio?. Lo cierto es que no. Lo que se hace es lanzar rayos aleatoriamente utilizando el algoritmo QMC (Quasi Monte Carlo). Para ilustrar todo esto, os adjunto la Imagen1 donde podéis ver el punto que se está calculando actualmente (la esfera roja), el hemisferio que utilizaremos para lanzar los rayos secundarios y los propios rayos secundarios. Como veis en la imagen, algunos rayos impactarán en el muro de la izquierda, otros impactarán en el suelo, otros en la esfera y otros lo harán con el environment que en este caso es de color azul. Así, si un rayo impacta en el environment (color azul), ese azul contribuirá en una determinada cantidad al color del punto que estamos tratando actualmente (el punto representado por la esfera roja). Ahora bien, no todos los rayos contribuyen por igual ya que no todos los rayos llegan a impactar contra una superficie. Bueno, en realidad sí que llegan a impactar todos pero habrán impactos que se producirán muy lejos del punto en curso y por lo tanto no deberán contribuir al color final del punto. Mi teoría es; y aquí es donde voy a especular un poco ya que no consigo encontrar la ayuda de alguna versión reciente de VRay (tengo la de la v1.0), que el parámetro Dist. thresh indica la distancia máxima a la que el impacto de un rayo tendrá efecto. Por ejemplo, imaginad que pongo un Dist. thresh de 0,5 unidades. Lo que conseguiré con esto es que los rayos que impacten a una distancia mayor de 0,5 unidades, no serán tomados en cuenta en el cálculo final. Pero como digo, esto es sólo una suposición. Si alguien puede decirme dónde encontrar el manual de la última versión de VRay se lo agradecería. Ahora voy a intentar explicar el significado de Interp. samples. VRay almacena un determinado número de muestras (samples) en el irradiance map. El número de estas muestras y su disposición espacial va a depender de forma directa (aunque no es lo único que determina esto) de los parámetros Min. rate y Max. rate. Evidentemente, cuantas más muestras se almacenen en el irradiance map, mayor será su calidad pero más tiempo tardará en calcularse. Si os fijáis, VRay, cuando le damos a render, empieza a calcular el irradiance map. El número de pasadas que se utilizarán para calcularlo dependerán, como he dicho, de los parámetros Min. rate y Max. rate. Así, si ponemos unos valores de (-3, 0), VRay calculará el irradiance map en 4 pasos. Esto lo podéis ver cuando VRay empieza a renderizar, cuando pone Current task: prepass 1 de 4, etc. Pues bien, imaginemos que VRay ya ha terminado de calcular el irradiance map. Ahora llega la hora de utilizar este irradiance map para generar la escena final. Aquí es donde entra en juego el parámetro Interp. samples. Lo que VRay hace es que interpola los samples del irradiance map. Cuanto mayor sea la interpolación, más suave será la imagen final. Una interpolación demasiado baja, da como resultado los tipicos manchurrones. Esto es porque al realizar una interpolación pobre, la diferencia de intensidad entre samples es demasiado acusada. Para entender mejor esto, mirad la Imagen2. En ella podéis observar dos samples sacados del irradiance map (estos son los colores de los extremos, es decir, el negro y el gris claro). En la fila de arriba, hemos especificado una interpolación de 4, por lo que se generan 4 samples intermedios, resultantes de la interpolación de los samples originales (los 2 de los extremos). En la fila de abajo, tenemos los mismos samples originales pero en esta ocasión hemos especificado una interpolación de 2, por lo que VRay genera 2 samples intermedios. Ahora, aplicamos un gaussian blur (todo esto lo he hecho en photoshop por lo que no quiere decir que VRay haga esto) a la fila superior y a la inferior (ver Imagen3). Como podéis obervar, en la fila en la que hemos utilizado un mayor número de interpolaciones, la transición entre un sample y otro es suave mientras que en la fila inferior, donde utilizamos únicamente 2 samples de interpolación, se nota la transición de un sample a otro, lo cual genera los típicos manchurrones que mencioné anteriormente. Bueno, pues hasta ahí llego. Espero que te haya aclarado un poco las cosas. La verdad es que explicar esto de forma que se entienda bien es bastante complicado y si encima uno no llega a entender el VRay al 100% (para eso tendría que haber programado un renderer con soporte GI y lo máximo a lo que llegué fué a un raytracer bastante simple Saludos. |
|
|
|
|
|
#3 |
|
Miembro Nuevo
Fecha de Ingreso: mayo-2004
Mensajes: 16
|
Una explicacion magistral, muchisimas gracias HalfVector, desde ya muy agradecido, me quedan mucho màs claro como se configuran estos valores.
|
|
|
|
|
|
#4 |
|
Moderador
Fecha de Ingreso: diciembre-2002
Mensajes: 1,051
|
Felicidades HalfVector :D Muy clarito todo
Lo unico mal es lo dl valor del dist thresold.Ya se explico en el post d iluminacion.Este valor sirve para controlar la cantidad d muestras q vray cogera en la distancia entre 2 objetos o superficies. (buenisimo para colocar muestras en esqinas Si t parece bien voy a copiar la pregunta d firefly y tu explicacion en mi post q creo q vendra muy bien y asi no se pierde y estaras mas accesible.Ademas d cara a recopilarlo todo ordenadamente es perfecto (si hay tiempo ya se ira haciendo Un saludo :D |
|
|
|
|
|
#5 |
|
H = E + L
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
|
Gracias.
La verdad es que los valores que VRay ponía por defecto al parámetro Dist. Thresh me parecían muy bajos para ser lo que yo decía. Ahora ya está claro. Saludos. |
|
|
|
|
|
#6 |
|
Miembro Nuevo
Fecha de Ingreso: marzo-2008
Mensajes: 2
|
Hola,
ante todo, soy muy novata con el tema del 3D, así que puede que os parezca estupida alguna de las preguntas que pueda hacer... Pero estoy intentando renderizar con Mental Ray y me aparecen unas manchas fosforescentes verdes, magenta, azules... En plan caprichoso, cada vez que repito el render aparecen en distintos lugares.... Alguien sabe cómo puede solucionarse esto??? Un saludo y gracias de antemano |
|
|
|
![]() |
| Etiquetas Identificativas |
| dudas, hsph, interpolate, mas, samples, subdivs |
| Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes) | |
| Herramientas | |
|
|
|
|