2011-10-07 1 views
2

Voici le problème, j'ai une matrice ModelViewProjection (MVP) qui est faite à partir de MultiView ModelView avec projection; J'ai fait quelques fonctions qui font la même chose que glOrtho et gluPerspective pour se débarrasser de la fonctionnalité de pile de dépréciation OpenGL. Mes fonctions renvoient des valeurs doubles. Mes shaders utilisent modelviewprojection comme float. Existe-t-il une nécessité d'opérer avec double pour les matrices de perspective car finalement les flottants deviennent dans MVP? les matrices sont en float [16] ou en double [16]; S'il n'y a pas de bénéfice notable en double, alors j'épargne quelques ressources de cpu sur la projection de la matrice de projection en double pour flotter quelque part avant d'entrer dans les shaders.pourquoi la matrice de projection doit être double?

Répondre

2

Vous pouvez rester avec float.

Le matériel type DX10/GL3.x (tel que mon Geforce 9800GT) ne prend pas en charge les calculs en virgule flottante double précision. Les anciennes cartes ATI de classe DX9 ne supportaient même pas correctement les maths à virgule flottante à simple précision dans le matériel (elles supportaient quelque chose comme fp24 ou plus si je me souviens bien). Néanmoins, la projection fonctionne parfaitement à tous les égards sur une telle carte. Ce qui montre que la précision supplémentaire n'est pas vraiment nécessaire dans ce cas.

1

Vous pouvez utiliser l'un ou l'autre ou les deux, pour des raisons de performances, il est habituel que les gens utilisent uniquement des flottants pour le traitement graphique.

Questions connexes