Domanda

qualcuno può indicarmi un documento / algoritmo / risorsa / qualunque cosa mi dica come implementare un filtro di minimizzazione delle trame (si applica quando i texel sono più piccoli dei pixel) in un raytracer?

grazie!

È stato utile?

Soluzione 4

grazie ragazzi per le vostre risposte, ma dal momento che non ho trovato alcuna tecnica appropriata ho creato qualcosa che si è rivelato funzionare molto bene:

presumo che il mio raggio sia un cono con un coneradius di mezzo pixel sul piano dell'immagine. quando il raggio colpisce una superficie, calcolo l'ellisse che viene proiettata sulla superficie (l'ellisse dall'intersezione piano-cono). Quindi, usando le derivate coordinate testuali nel punto di intersezione, proietto questa ellisse nello spazio delle trame. ora so quale parte della trama si trova sotto il mio pixel e può sottocampionare quest'area

Uso anche RipMaps per migliorare la qualità e ho scelto il livello RipMap in base alla dimensione dell'ellisse in Texturespace

Altri suggerimenti

Dal momento che stai utilizzando il ray tracing, sospetto che tu stia cercando un filtro di alta qualità che cambi dinamicamente il campionamento in base alla quantità di "errore". Sulla base di questo presupposto direi di dare un'occhiata a "differenziali di raggio". C'è un bel documento su questo qui: http://graphics.stanford.edu/papers/trd/ e prende in considerazione effetti come la rifrazione e la riflessione.

La tua risposta a te stessa suona come l'approccio giusto, ma poiché altri potrebbero inciampare nella pagina, aggiungerò un collegamento di risorse come richiesto. Oltre a discutere del mipmapping (il ripmapping è fondamentalmente un mipmapping più avanzato), discutono gli effetti della riflessione e della rifrazione sui derivati ??e sulla selezione a livello di mip.

Homan Igehy. "Differenziali dei raggi di tracciamento." 1999. Atti del SIGGRAPH. http://graphics.stanford.edu/papers/trd/

A una lettura più ravvicinata vedo che Rehno Lindeque ha menzionato questo documento. All'inizio non si è reso conto che era il riferimento giusto perché afferma che il metodo campiona in modo dinamico in base all'errore del campionamento, che non è corretto. Il filtro viene eseguito in base alla dimensione del footprint del pixel e utilizza solo un raggio, proprio come descritto.

Modifica: Un altro riferimento che potrebbe essere utile ( http: //www.cs.unc. edu / ~ awilson / class / 238 / # sfide ). Scorri fino alla sezione "Derivati ??delle coordinate delle trame". Suggerisce la mappatura all'indietro dei derivati ??della trama dalla superficie allo schermo. Penso che ciò non sarebbe corretto per i raggi riflessi e rifratti, ma è probabilmente più facile da implementare e dovrebbe andare bene per i raggi primari.

Penso che intendi mipmap 'ing.

Ecco un articolo parlando di usarli.

Ma i Nether dicono come scegliere quale mipmap usare, ma sono spesso mescolati (la mipmap sempre più grande).

Ecco un altro articolo su come funziona Google Earth , e parla di come stanno distruggendo la terra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top