Pregunta

¿alguien puede señalarme un papel / algoritmo / recurso / lo que sea que me diga cómo implementar un filtro de minificación de textura (se aplica cuando los texels son más pequeños que los píxeles) en un raytracer?

¡gracias!

¿Fue útil?

Solución 4

gracias a todos por sus respuestas, pero como no encontré ninguna técnica apropiada, creé algo que funcionó muy bien:

supongo que mi rayo es un cono con un radio de medio píxel en el plano de la imagen. cuando el rayo golpea una superficie, calculo la elipse que se proyecta sobre la superficie (la elipse desde la intersección plano-cono). Luego, usando las derivadas de coordenadas de textura en el punto de intersección, proyecto esta elipse en el espacio de texturas. ahora sé qué parte de la textura se encuentra debajo de mi píxel y puedo submuestrear esta área

También uso RipMaps para mejorar la calidad, y elegí el nivel RipMap en función del tamaño de la elipse en Texturespace

Otros consejos

Dado que está utilizando el trazado de rayos, sospecho que está buscando un filtrado de alta calidad que cambie el muestreo de forma dinámica en función de la cantidad de "error". Basado en esta suposición, diría que eche un vistazo a los "diferenciales de rayos". Hay un buen artículo sobre esto aquí: http://graphics.stanford.edu/papers/trd/ y tiene en cuenta efectos como la refracción y la reflexión.

Tu respuesta a ti mismo suena como el enfoque correcto, pero dado que otros pueden tropezar con la página, agregaré un enlace de recursos según lo solicitado. Además de discutir mipmapping (ripmapping es básicamente un mipmapping más avanzado), discuten los efectos de la reflexión y la refracción en los derivados y la selección de nivel mip.

Homan Igehy. " Diferenciales de trazado de rayos " 1999. Actas de SIGGRAPH. http://graphics.stanford.edu/papers/trd/

Al leer más de cerca, veo que Rehno Lindeque mencionó este artículo. Al principio no se dio cuenta de que era la referencia correcta porque dice que el método muestrea dinámicamente en función del error del muestreo, que es incorrecto. El filtrado se realiza en función del tamaño de la huella del píxel y utiliza solo un rayo, tal como lo describió.

Editar: Otra referencia que podría ser útil ( http: //www.cs.unc. edu / ~ awilson / class / 238 / # desafíos ). Desplácese a la sección "Derivados de coordenadas de textura". Sugiere el mapeo hacia atrás de los derivados de textura desde la superficie hasta la pantalla. Creo que esto sería incorrecto para los rayos reflejados y refractados, pero posiblemente sea más fácil de implementar y debería estar bien para los rayos primarios.

Creo que te refieres a mipmap 'ing.

Aquí hay un artículo hablando de usarlos.

Pero a continuación no se dice cómo elegir qué mapa MIP usar, pero a menudo se mezclan (el mapa MIP más grande y más pequeño).

Aquí hay un artículo más sobre cómo funciona Google Earth , y habla sobre cómo mipmapping la tierra.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top