2009-10-06 4 views
2

La question est assez explicite. Je demande en termes d'utilisation de coordonnées de texture qui pourraient provenir de n'importe où (un uniforme, un variant, un autre fetch de texture). Supposons par exemple que je fasse une texture sur une texture mipmapped (ou anisotropically filtrée), et j'utilise le carré d'un variant qui a été défini dans le vertex shader. Je suppose que glsl ne peut pas déterminer la dérivée d'une fonction arbitrairement complexe comme celle-ci, alors comment sait-il quel niveau de MIP utiliser?Comment opengl décide quel niveau de MIP utiliser?

Merci.

Répondre

4

Il utilise généralement la cohérence spatiale. Il calcule la même valeur sur un bloc d'au moins 2x2 pixels et calcule la différence discrète entre les voisins. C'est assez d'une approximation pour le dérivé.

+1

Merci. J'ai ajouté la cohérence spatiale à mes recherches sur Google (je ne me suis pas souvenu auparavant) et c'est arrivé ... http: //developer.amd.com/media/gpu_assets/03_Clever_Shader_Tricks.pdf. Confirme ce que vous dites et vous donne des conseils sur la façon de gérer les difficultés de ramification liées à cela. – DaedalusFall

Questions connexes