Question

quelqu'un peut-il m'indiquer un papier / un algorithme / une ressource / quoi que ce soit qui me dise comment implémenter un filtre de minification de texture (s'applique lorsque les texels sont plus petits que des pixels) dans un traceur de rayons?

merci!

Était-ce utile?

La solution 4

merci les gars pour vos réponses, mais comme je n’ai trouvé aucun techinque approprié, j’ai créé quelque chose qui a très bien marché:

Je suppose que mon rayon est un cône avec un coneradius de un demi-pixel sur le planplan. quand le rayon frappe une surface, je calcule l'ellipse qui est projetée sur la surface (l'ellipse de l'intersection plan-cône). Ensuite, en utilisant les dérivés texturecoordonner au point d'intersection, je projette cette ellipse dans un espace de texture. Maintenant, je sais quelle partie de la texture se trouve sous mon pixel et peut sous-échantillonner cette zone

J’utilise également RipMaps pour améliorer la qualité - et j’ai choisi le niveau RipMap en fonction de la taille de l’ellipse dans Texturespace

Autres conseils

Puisque vous utilisez le traçage de rayons, je suppose que vous recherchez un filtrage de haute qualité qui modifie l’échantillonnage de manière dynamique en fonction de la quantité "d'erreur". Sur la base de cette hypothèse, je dirais, jetez un oeil sur les "différentiels de rayons". Il existe un article intéressant à ce sujet ici: http://graphics.stanford.edu/papers/trd/ et il prend en compte des effets comme la réfraction et la réflexion.

Votre réponse à vous-même semble être la bonne approche, mais comme d'autres personnes risquent de trébucher sur la page, j'ajouterai un lien de ressource comme demandé. En plus de discuter de mappage (le ripmapping est fondamentalement un mappage plus avancé), ils discutent des effets de la réflexion et de la réfraction sur les dérivés et la sélection au niveau mip.

Homan Igehy. "Différentiels de rayons tracés". 1999. Actes de SIGGRAPH. http://graphics.stanford.edu/papers/trd/

En lisant de plus près, je constate que Rehno Lindeque a mentionné ce document. Au début, il ne s'est pas rendu compte que c'était la bonne référence car il dit que la méthode échantillonne de manière dynamique en fonction de l'erreur d'échantillonnage, ce qui est incorrect. Le filtrage est effectué en fonction de la taille de l'empreinte du pixel et utilise un seul rayon, comme vous l'avez décrit.

Modifier: Une autre référence qui pourrait être utile ( http: //www.cs.unc. edu / ~ awilson / class / 238 / # challenges ). Faites défiler jusqu'à la section "Dérivés des coordonnées de texture". Il suggère de mapper en arrière les dérivés de texture de la surface à l'écran. Je pense que cela serait incorrect pour les rayons réfléchis et réfractés, mais est peut-être plus facile à mettre en œuvre et devrait convenir pour les rayons primaires.

Je pense que vous voulez dire mipmap 'ing.

Voici un article parler de les utiliser.

Mais rien n’indique comment choisir le mipmap à utiliser, mais ils sont souvent mélangés (le mipmap plus grand et plus petit).

Voici un article de plus sur la comment Google Earth fonctionne , et il explique comment ils cartographient la Terre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top