dans le cas de l'exponentialisation de la composante spéculaire, en tout cas sur les radeon généralement c'est aquis comme étant plus rentable de le faire via l'opérateur math qu'une texture de lookup pour émuler.
par contre pour les Geforce Fx, nVidia semble plus recommander la texture de lookup par rapport au pow(), et une CubeMap par rapport à la normalisation par voie math.
pour les 6800, elle est censée exposer une normalisation en précision flottane 16 bits +ou- gratuite par pixel. (dumoins 1 fois +ou- gratuit dans le pixelshader).
mais au niveau du pipeline, ça dépends de plein de chose, dont le balancement lecture texture/opérations maths.
l'autre gain annexe, c'est que c'est plus économique au niveau CPU de changer une constante par matériau (le coefficient du pow()), que de changer de texture.
donc globalement passer de la texture au pow() peut permettre de réduire la bande-passante mémoire nécessaire au niveau pixel shader, avoir plus de précision pour le rendu, permet de réduire la pénalite au changement de matériau, et réduit la consommation de mémoire vidéo. (le tout étant lié, une texture => un upload quand elle est pas là, de la mémoire vidéo consommée, de la bande passante mémoire consommée à l'utilisation)
Message édité par bjone le 09-08-2004 à 04:45:15