2010-01-25 20 views
0

Ce n'est pas vraiment un problème fonctionnel, mais plutôt une question stratégique. Je suis nouveau à la programmation 3D et en regardant des tutoriels et des exemples, je reconnais que les coordonnées sont généralement entre -1 et 1.Quelles valeurs utiliser dans mon espace 3D

Il me semble plus naturel d'utiliser des entiers comme coordonnées, je pense. Y a-t-il des raisons particulières pour lesquelles de petites valeurs flottantes sont utilisées, peut-être la performance ou autre chose? Je ne suis pas encore arrivé si loin que peut-être cette question est un peu trop tôt pour demander, mais lors de la création d'objets/textures que je vais importer, ils sont créés dans des applications où les coordonnées ont généralement des tailles en nombres entiers , Je suppose (par exemple Photoshop pour les textures). Est-ce que cela n'a pas d'importance pour la façon dont je définis mes tailles x/y/z?

Merci d'avance!

Répondre

1

Je n'ai jamais vu de si petites plages utilisées. Cela risque d'introduire des problèmes dans les calculs, dirais-je. Un style plus commun est d'utiliser une échelle du monde réel, donc 1 unité = 1 mètre. Et l'utilisation de valeurs à virgule flottante est plus réaliste - vous avez besoin de valeurs fractionnaires car lorsque vous faites pivoter quelque chose, les nouvelles coordonnées seront presque toujours non intégrales. En utilisant des entiers, vous rencontrerez des problèmes d'échelle et de précision.

+0

Merci beaucoup! C'est plus comme je le veux, et je comprends le point en utilisant float au lieu de int. J'ai trouvé les petits nombres dans ce tutoriel excelent http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html (Viewports et perspectives) et dans au moins un autre endroit que j'ai oublié. Donc, il est là-bas ... – Nicsoft

+0

Dans les fenêtres, les nombres ** sont souvent mis à l'échelle de ce type de plage, mais ce sont des coordonnées d'écran en 2D corrigées en perspective avec une profondeur Z. l'utilisation de [-1, + 1] le rend indépendant de la résolution de l'écran. –