Trazado de rayos con conos: cobertura, triángulos superpuestos y contiguos

10

En su artículo clásico Ray Tracing with Cones , John Amanatides describe una variación en el trazado de rayos clásico. Al extender el concepto de un rayo en un ángulo de apertura , convirtiéndolo en un cono, se pueden reducir los efectos de alias (incluidos los que se originan en muy pocas muestras de Monte Carlo).

Durante la intersección cono-triángulo, se calcula un valor de cobertura escalar. Este valor representa la fracción del cono que está cubierta por el triángulo. Si es menor que , significa que el triángulo no cubre completamente el cono. Se requieren más pruebas. Sin embargo, sin el uso de técnicas más avanzadas, solo sabemos cuánto está cubierto el cono, pero no qué partes.1

Amanatides afirma:

Como actualmente solo se usa el valor de cobertura fraccional para mezclar las contribuciones de los diversos objetos, las superficies superpuestas se calcularán correctamente pero las superficies contiguas no.

Esto no tiene sentido para mi. Desde mi punto de vista, es al revés. Tomemos un ejemplo: tenemos dos triángulos colindantes , uno verde y uno azul, cada uno de los cuales cubre exactamente el 50% de nuestro cono. Están a la misma distancia del espectador.

Triángulo verde y azul

El triángulo verde se prueba primero. Tiene un valor de cobertura de 0,5, por lo que el triángulo azul se prueba a continuación. Con el valor de cobertura del azul de 0.5 nuestro cono está completamente cubierto, así que terminamos y terminamos con una mezcla 50:50 verde-azul. ¡Excelente!

Ahora imagine que matamos el triángulo azul y agregamos uno rojo a cierta distancia detrás del verde, superpuesto . Greeny nos da un valor de cobertura de 0.5 nuevamente. Como ya no tenemos el azul para probar, miramos más abajo en el cono y pronto encontramos el rojo. Esto también devuelve un valor de cobertura mayor que 0, que no debería porque está detrás del verde.

Entonces, de esto concluyo que los triángulos colindantes funcionan bien, mientras que los triángulos superpuestos necesitarían más magia como máscaras de cobertura para ser correctos. Esto es lo contrario de lo que dice Amanatides. ¿Entendí mal algo o es un error en el periódico?

David Kuri
fuente

Respuestas:

3

Implementé un trazador de rayos basado en el trabajo de Amantides pero, como fue hace años, mi memoria del papel está un poco oxidada.

Sin embargo, ignorando este caso particular, en general cuando se trata de trabajar con cobertura fraccional, por ejemplo, composición alfa, (ver "A sobre B" ), entiendo que la suposición habitual es que los elementos que se componen no están correlacionados.

Por lo tanto, si A con X% de cobertura está encima de B con Y% de cobertura y C en segundo plano, se supone que se verá
X% * ​​A + (100-X%) * Y% * B + (100-X %) (100-Y%) * C

¿Tiene sentido? Obviamente, esto dará "fugas" en el caso en que A y B estén fuertemente correlacionadas.

Yo creo que podría tener poner una pequeña máscara de bits de los rayos para evitar estos problemas, pero fue hace mucho tiempo.

Simon F
fuente
Con esa explicación tiene mucho sentido, ¡gracias! En caso de que recuerde, ¿cómo fue su experiencia con el trazado de conos en comparación con el trazado de rayos normal? Por supuesto, es una aproximación, pero ¿logra una aceleración considerable con una calidad aceptable?
David Kuri
Oh, Dios, fue hace mucho tiempo. En realidad, solo implementé el trazado de cono. Si realmente intenté apagar la parte del radio, simplemente no puedo recordarlo, pero si tengo tiempo, intentaré recordar los pros y los contras de seguir la ruta del trazado del cono.
Simon F