J'ai le même problème, je n'ai pas compris l'explication technique jusqu'à ce que je lise votre question. Ce que j'ai fait est de traduire l'origine des coordonnées de la souris & puis de le diviser ou de le diviser par un facteur afin que les petits mouvements de la souris puissent être grossis à une plus grande échelle, loin derrière,
Difficile je n'ai pas compris mon problème est de perspective & champ de vision, c'est la souris se déplace sur l'écran ou la lentille de la caméra, et l'échelle que j'essaie de déplacer est loin derrière et plus grand, encore j'ai fait les maths pour le faire fonctionner. juste parce que je l'ai vu la différence d'échelle exponentielle, est simple
C'est ce que je l'ai fait
translated-X = { mouse-X + (screenwidth/2) }/2.7;
translated-Y = {-mouse-Y + (screenHeight/2)}/2.8;
et méthode avec les valeurs actuelles adapte bien pour mes réglages actuels, qui sont
- appareil photo est à (0,0,260)
- pour chaque article j'ai coordonnées (x, y, 0), donc ils sont à X & Y avion
- ma résolution d'écran, PreferredBackBufferWidthxHeight est 1024 x 768
seulement pour les trois conditions ci-dessus fonctionne mon équation.
mais si le changement l'une des valeurs ci-dessus je vais devoir ajuster les équations selon les scénarios, de sorte que ces valeurs codées en dur 2.7 & 2.8 auront des variables & devront être calculées en fonction de la position de la caméra & Résolution de l'écran
ce 2.7 & 2.8 maintient l'échelle jusqu'à un certain point, maintenant
la formule générique pour la traduction, je pourrais formuler que, par la technique appelée Analyse numérique, je suis bon à cela, mais pour cela j'ai besoin de données que je ne peux pas obtenir par moi-même, je dois trouver la distance de la caméra, paramètres de perspective à laquelle certaine résolution est entièrement dans le champ de vision. C'est-à-dire, si ma résolution est de 1024x768, à partir de la distance de la caméra en regardant l'origine, nous voyons réellement 1024 points autour de l'axe des x et 768 points autour de l'axe des y. De même, j'ai besoin d'au moins deux lectures supplémentaires pour des résolutions plus élevées.
Et je ne peux pas obtenir ces valeurs parce que mon vieux moniteur stupide soutient au maximum 1024x768, je ne peux pas aller plus haut. Si vous pouvez me donner la distance de la caméra pour plusieurs résolutions, je vais formuler une relation et proposer une formule générique.
il
votre titre de la question devrait être: Comment faire évoluer le mouvement de la souris sur un champ de vision avec une certaine profondeur. – Moon