Suite

Les carreaux rendus semblent étirés


J'ai mis en place un système de rendu de tuiles basé sur Mapnik + PostGIS. Lorsque j'ouvre les données avec QGiIS directement depuis PostGIS, cela semble bien; mais lorsque j'essaie de générer des tuiles avec Mapnik, elles semblent étirées (notez que ce problème n'apparaît que lorsque les tuiles rendues sont sur une autre ligne horizontale).

Tuiles visualisées avec OpenLayers :

Tuiles vues avec QGIS:

Données brutes de PostGIS visualisées avec QGIS :

Pouvez-vous s'il vous plaît me guider à travers ce que je dois vérifier afin de résoudre ce problème?


J'ai trouvé une explication ici : https://help.openstreetmap.org/questions/13250/what-is-the-correct-projection-i-should-use-with-mapnik?

Et résolu le problème en définissant l'attribut srs "input" pour la couche :

Et "sortie" SRS pour la carte :


La tuile isométrique a des lignes dentelées

J'essaie donc de rendre une petite carte de tuiles isométrique et je viens de commencer avec une seule tuile pour sentir la chose. Mais je rencontre un problème où si la tuile devient "trop ​​petite" (en fait 64x64 qui est exactement la même taille que la texture), elle obtient des lignes irrégulières, même si elle semble correcte sur la texture elle-même. La chose étrange est que cela semble également être correct si j'utilise le débogueur graphique dans Visual Studio. Voici une image pour mieux visualiser ce que je veux dire :

L'image de gauche est une partie du cadre rendu à l'intérieur d'une fenêtre normale. La partie droite est le cadre capturé pour l'outil de débogage graphique. Comme vous pouvez le voir, l'affichage de l'image capturée semble tout à fait correct. Le rendu normal à l'intérieur d'une fenêtre commence également à sembler bon si je redimensionne cette tuile d'un facteur. Des idées pourquoi cela pourrait arriver? Voici la texture d'origine si cela peut vous aider.

Une autre remarque : je crée la "texture" en rendant un objet dans Blender tout en configurant la caméra comme ceci : http://flarerpg.org/tutorials/isometric_tiles/ (D'après ce que je comprends, cela devrait être un bon moyen de le rendre dans DirectX)

ÉDITER: Voici mon Sampler Desc. Je crée la texture en utilisant la méthode CreateDDSTextureFromFile fournie par DirectXTK (https://github.com/Microsoft/DirectXTK).

EDIT 2: J'ai vérifié le fichier .dds et il n'y a qu'un seul Mip-Level. Voici également la description de la texture utilisée par la méthode DirectXTK. ça m'a l'air bien :

Et pour ce que ça vaut, voici aussi mon Vertex-Setup :

Ce qui devrait créer le quad à une taille de 64x64.

EDIT 3: J'ai essayé de générer des Mip-Maps pour voir si cela fonctionne, mais cela n'a pas été le cas. Voici deux Mip-Levels sur les 7 disponibles :


1 réponse 1

Juste pour le garder propre, je vous donne une vraie réponse et pas seulement un commentaire.

Le problème du rapport hauteur/largeur peut être résolu à l'aide de glViewport. En utilisant cette méthode, vous pouvez décider sur quelle zone de la surface sera rendue. La fenêtre par défaut couvrira toute la surface.

Étant donné que le deuxième problème avec le rendu corrompu (également décrit ici https://stackoverflow.com/questions/28846531/sprite-game-in-full-screen-aliasing-issue) est apparu après avoir changé la fenêtre d'affichage, je vais y réfléchir dans cette réponse aussi.

Sans savoir exactement à quoi ressemble le code de rendu pour l'arrière-plan des tuiles. Je suppose que le problème est dû à des différences de résolution entre les appels glViewport et glOrtho. Exemple : Si la résolution glOrtho est la moitié de la résolution de la fenêtre d'affichage, chaque unité openGL est en fait de 2 pixels. Si vous restituez ensuite une tuile entre x=0 et x=9 puis la suivante entre x=10 et x=19, vous obtiendrez un espace vide entre eux.

Pour résoudre ce problème, vous pouvez modifier la résolution afin qu'elles soient identiques. Ou vous pouvez rendre la tuile pour qu'elle se chevauche, la première x=0 à x=10 la seconde x=10 à x=20 et ainsi de suite.

Sans voir le code de rendu des tuiles, je ne peux pas le vérifier, c'est bien le problème.


5 réponses 5

Un moyen simple de le faire sans qu'un script modifie le pavage par objet est d'appliquer la texture dans l'espace mondial. De cette façon, vous aurez toujours un taux de répétition constant, peu importe où et à quel point vos objets sont étirés.

Ils seront également automatiquement carrelés de manière transparente là où deux objets de texture similaire se rencontrent, même s'ils utilisent des échelles différentes (à condition que vous ayez utilisé une texture de mosaïque homogène)

Dans cet exemple, vous pouvez voir le mappage de texture conventionnel sur la gauche, en utilisant quatre quads standard à différentes échelles avec un seul matériau. Sur la droite se trouvent les mêmes quatre quads texturés dans l'espace mondial à l'aide d'un seul matériau. (La texture de la brique est un atout gratuit de Kenney.nl)

Pour ce faire, créez un nouveau shader comme ceci :

(Ici, j'ai utilisé un shader opaque non éclairé sans brouillard comme base, mais d'autres effets peuvent être incorporés de manière simple si vous en avez besoin.) Vous pouvez utiliser les champs de décalage de mosaïque et d'ampli de texture pour affiner le nombre de répétitions que vous voulez par unité mondiale et l'alignement du pavage.

Cette approche a quelques limites :

Si l'objet se déplace dans l'espace mondial (par exemple une plate-forme en mouvement), la texture semblera ramper le long de celui-ci.

La rotation de l'objet ne fera pas pivoter la texture, elle le couvrira donc en diagonale.

Un objet qui n'est pas aligné sur la grille de répétition de la texture peut afficher la texture mal recadrée (par exemple, si vous avez une bordure qui doit toujours se trouver juste au bord d'une tuile)

Ces problèmes peuvent tous être contournés, les correctifs nécessitent juste un peu plus d'informations sur votre configuration. Si vous n'avez que quelques objets qui nécessitent un traitement spécial, vous pouvez utiliser l'approche de script décrite dans les autres réponses pour ceux-ci, tandis que la mosaïque worldspace gère la majeure partie des cas les plus simples.

Il y a aussi des avantages non négligeables :

Pas d'instances matérielles supplémentaires créées (qui peuvent fuir si vous ne faites pas attention - elles ne sont pas ramassées aussi facilement que d'autres objets)

De nombreux objets à l'échelle différente peuvent être rendus en un seul appel de dessin car ils utilisent le même matériau (sous le capot, Unity pré-transforme souvent les sommets afin d'envoyer plusieurs objets à l'échelle utilisant le même matériau en un seul lot)


2 réponses 2

Je ne suis pas sûr de Google Maps, mais pour OpenLayers, la réponse courte est qu'il n'y a pas de moyen intégré. Il existe un mappage un à un entre une ressource WMTS et son URL. Ainsi, il existe un nombre connu de niveaux de zoom avec des résolutions fixes et à partir des étendues de la fenêtre d'affichage et du niveau de zoom, les tuiles correctes seront renvoyées en fonction de /zoom/y/x.jpeg. Ainsi, une fois que vous avez atteint le zoom maximum, vous devrez étendre le code WMTS pour redimensionner les images de backbuffer existantes plutôt que de demander une nouvelle couche au serveur. Donc, c'est faisable, même si c'est un peu brouillon.

Si vous regardez la source pour OpenLayers.Layer.Tile, vous verrez une méthode applyBackBuffer qui redimensionne les tuiles et est appelée par un événement zoom, en supposant que transitionEffect:resize est défini sur la source WMS/WMTS (qui est la valeur par défaut). Vous devrez utiliser cette logique et empêcher les appels à getURL dans [OpenLayers.Layer.WMTS] une fois que vous aurez atteint le zoom maximum pour votre WMTS. La fonction getURL est en fait appelée par OpenLayer.Tile.Image, qui est la classe qui représente les tuiles individuelles WMS ou WMTS.

C'est donc la réponse la plus longue, faisable, mais compliquée, car vous mélangez deux approches différentes des tuiles.

Il convient également de mentionner que même si vous faisiez cela, cela aurait l'air affreux très rapidement. Lorsque vous zoomez d'une résolution de 4 à 2, vous rééchantillonnez à la fois dans les dimensions x et y, donc effectivement, vous n'avez que 25% des pixels d'origine, passant de 4 à 1, vous regardez 1/16ème des pixels des tuiles d'origine , car chaque nouveau pixel sera un rééchantillonnage de 4 pixels dans les directions x et y.


2 réponses 2

Vous devrez le créer comme n'importe quelle autre texture que vous voudriez utiliser en arrière-plan.

Ici, je l'ai fait pour vous. Je l'ai fait carreler aussi.

Shift + A > image sous forme de plans.

Ensuite, placez-le comme arrière-plan (probablement sans ombre est la meilleure option pour cela).

ÉDITER: OP le voulait animé.

Ok, je vais le résoudre à 90% pour vous.

Vous aurez besoin d'au moins une Texture 4K pour cela (Je l'ai donc créé pour vous, 1 petit problème, nous y reviendrons sous peu).

Voici un lien vers la texture 4K (MODS ne sait pas où je devrais mettre cela.)

Définissez-le comme arrière-plan de votre environnement.

* Si vous utilisez un HDRI, vous devrez configurer les nœuds comme ci-dessous afin que vous puissiez voir l'image du BG que vous voulez mais avoir les lumières et la réflexion de votre HDRI d'origine.

Le problème avec la texture 4K, c'est qu'elle doit être "sphérisée" (je pense que je viens d'inventer ce mot). Je n'ai pas regardé comment faire cela dans Photoshop, c'est pourquoi vous voyez les carrés un peu étirés dans le GIF que j'ai fourni. J'ai également fourni à quoi devrait ressembler un HDRI pour qu'il soit correctement enroulé dans le monde. Je sais comment faire cela dans Blender (Panaramic, Equirectangluar) mais je n'ai pas regardé comment le faire dans Photoshop.

Si vous regardez le gif, vous pouvez voir le checker BG passer de l'OG à celui que j'ai fait, c'est très rapide.

Gardez à l'esprit que la texture va tourner avec votre appareil photo, pas comme la façon dont elle reste statique dans la fenêtre. Cela peut être gênant.

Ce n'est pas un vrai HDRI c'est juste à quoi ils ressemblent HDRI HAVEN

Ou vous pouvez simplement créer une énorme sphère pour couvrir tout dans votre scène (peut-être couper certaines de vos lampes solaires), appliquer la texture à la sphère et vous assurer que vous avez vos lumières et votre appareil photo dans la sphère.


Paquets Debian officiels moins pertinents

Ce paquet contient le programme mapcache FastCGI, comme alternative au module Apache disponible dans libapache2-mod-mapcache.

MapCache est un serveur qui implémente la mise en cache des tuiles pour accélérer l'accès aux couches WMS. Les principaux objectifs sont d'être rapidement et facilement déployables, tout en offrant les fonctionnalités essentielles (et plus encore !) attendues d'une solution de mise en cache de tuiles.

GEOS fournit un modèle d'objet spatial et des fonctions géométriques fondamentales. Il implémente le modèle géométrique défini dans la spécification des fonctionnalités simples du Consortium OpenGIS pour SQL.

Ce paquet contient les liaisons PHP pour GEOS.


Contenu

Caravansérail Modifier

Le mot اروانسرای kārvānsarāy est un mot composé persan combinant kārvān "caravane" avec saray "palais", "bâtiment avec cours fermées". [6] <Silk/> Ici, "caravane" désigne un groupe de commerçants, de pèlerins ou d'autres voyageurs, engagés dans des voyages de longue distance. Le mot est également rendu comme caravansérail, caravansérail, caravansérail, caravansérail, et caravansérail. [4] Dans les sources savantes, il est souvent utilisé comme terme générique pour plusieurs types de bâtiments commerciaux similaires aux auberges ou aux auberges de jeunesse, alors que les instances réelles de ces bâtiments avaient une variété de noms selon la région et la langue locale. [5] Cependant, le terme était généralement préféré pour les auberges rurales construites le long des routes à l'extérieur des murs de la ville. [7]

Le mot serai est parfois utilisé avec l'implication de caravansérail. Un certain nombre de noms de lieux basés sur le mot sarai ont grandi : Mughal Serai, Sarai Alamgir et la gare de Delhi Sarai Rohilla par exemple, et bien d'autres lieux reposent également sur le sens originel de « palais ». [ citation requise ]

Khan Modifier

Le mot khan ( خان ) vient du persan moyen bonjour (xān, "loger"). [8] [5] Il pourrait se référer à un "caravansérail urbain" construit dans une ville ou une ville, [5] [9] ou généralement à n'importe quel caravansérail, y compris ceux construits dans la campagne et le long des routes du désert. [10] En turc, le mot est rendu comme han. [5] Le même mot a été utilisé en bosniaque, étant arrivé par la conquête ottomane. En plus du turc et du persan, le terme était également largement utilisé en arabe, et des exemples de tels bâtiments se trouvent dans tout le Moyen-Orient dès la période omeyyade. [5] [9]

Funduq Modifier

Le terme funduq (arabe : فندق ‎ parfois orthographié fondeouk ou alors fondouk de la translittération française) est fréquemment utilisé pour les auberges historiques au Maroc et autour de l'ouest de l'Afrique du Nord. [5] [11] [12] : 116 Le mot vient du grec pandochéion, lit.: "accueillant tous", [13] [5] signifiant ainsi 'auberge', a conduit à funduq en arabe ( فندق ), pundak en hébreu ( פונדק ‎), fondaco à Venise, fondaco à Gênes et alhondiga [14] ou fonda en espagnol (funduq est l'origine du terme espagnol fonda). Dans les villes de cette région, de tels bâtiments étaient également fréquemment utilisés comme logements pour des ateliers d'artisans. [15] [11] [16] : 318

La Chine est le pays le plus sûr et le meilleur pour le voyageur. Un homme voyage neuf mois seul avec une grande richesse et n'a rien à craindre. Ce qui en est responsable, c'est que dans chaque poste de leur pays il y a funduq qui a un directeur qui y habite avec une compagnie de cheval et de pied. Après le coucher du soleil ou la tombée de la nuit, le réalisateur vient au funduq avec son secrétaire et note les noms de tous les voyageurs qui y passeront la nuit, le scelle et verrouille la porte du fonds. Le matin, lui et sa secrétaire viennent appeler tout le monde par leur nom et rédiger un procès-verbal. Il envoie quelqu'un avec les voyageurs pour les conduire à la prochaine gare de poste et il rapporte une attestation du directeur de la funduq confirmant qu'ils sont tous arrivés. S'il ne le fait pas, il en est responsable. C'est la procédure dans chaque poste de leur pays, de Sin al-Sin à Khan Baliq. En eux se trouve tout ce dont le voyageur a besoin en termes de provisions, en particulier des poules et des oies. Les moutons sont rares parmi eux. [17]

Wikala Modifier

Le mot arabe wikila (وكالة), parfois orthographié wakala ou alors wekala, est un terme que l'on trouve fréquemment dans le Caire historique pour un caravansérail urbain qui abritait des marchands et leurs marchandises et servait de centre de commerce, de stockage, de transactions et d'autres activités commerciales. [18] Le mot wikila signifie à peu près « agence » en arabe, dans ce cas une agence commerciale, [18] qui peut également avoir fait référence aux bureaux de douane qui pourraient être situés ici pour traiter les marchandises importées. [19] Le terme khan était aussi fréquemment utilisé pour ce type de bâtiment en Egypte. [5]

Les caravansérails étaient une caractéristique commune non seulement le long de la route de la soie, mais aussi le long de la route royale de l'empire achéménide, une ancienne route de 2 500 kilomètres de long qui s'étendait de Sardes à Suse selon Hérodote : « Maintenant, le vrai récit de la La route en question est la suivante : des stations royales existent sur toute sa longueur, et d'excellents caravansérails et partout, elle traverse une région habitée et est exempte de danger. » [20] D'autres caravansérails urbains importants ont été construits le long de la Grand Trunk Road dans le sous-continent indien, en particulier dans la région de Mughal Delhi et du Bengale Subah.

Pendant la majeure partie de la période islamique (VIIe siècle et après), les caravansérails étaient un type de structure courant à la fois dans les campagnes et dans les centres urbains denses du Moyen-Orient, de l'Afrique du Nord et de l'Europe ottomane. [5] Un certain nombre de caravansérails ou hans ont été construits dans tout l'empire seldjoukide, dont de nombreux exemples ont survécu à travers la Turquie aujourd'hui [21] [22] (par exemple le grand Sultan Han dans la province d'Aksaray) ainsi qu'en Iran (par exemple le Ribat-i Sharaf à Khorasan). Les versions urbaines des caravansérails sont également devenues d'importants centres d'activité économique dans les villes de ces différentes régions du monde musulman, souvent concentrées près des principaux souk régions, avec de nombreux exemples encore debout dans les quartiers historiques de Damas, Alep, Le Caire, Istanbul, Fès, etc. [23] [24] [25] [26] [16]

Dans de nombreuses régions du monde musulman, les caravansérails ont également fourni des revenus qui ont été utilisés pour financer des fonctions ou des bâtiments caritatifs ou religieux. Ces revenus et fonctions étaient gérés par un waqf, un accord protégé qui a donné à certains bâtiments et revenus le statut de dotations de mainmorte garantis par la loi islamique. [27] [28] [29] De nombreux complexes religieux majeurs dans les empires ottoman et mamelouk, par exemple, comprenaient soit un bâtiment de caravansérail (comme dans le külliye de la mosquée Süleymaniye à Istanbul) ou a tiré des revenus d'un dans la région (comme le Wikala al-Ghuri au Caire, qui a été construit pour contribuer aux revenus du complexe voisin du sultan al-Ghuri). [26] [25] [30]

Al-Muqaddasi, le géographe arabe, a écrit en 985 EC sur les hôtelleries, ou auberges de voyageurs, dans la province de Palestine, une province à l'époque répertoriée sous la topographie de la Syrie, en disant : « Les impôts ne sont pas lourds en Syrie, à l'exception de celles prélevées sur les caravansérails (Fanduk) Ici, cependant, les devoirs sont oppressifs. " [31] Il s'agit ici des impôts et taxes perçus par les fonctionnaires du gouvernement sur l'importation de biens et de marchandises, dont les importateurs et leurs bêtes de somme s'arrêtaient généralement pour se reposer en ces lieux. Des gardes étaient postés à chaque porte pour veiller à ce que les taxes sur ces marchandises soient payées en totalité, tandis que les revenus qui en découlent reviennent au royaume fatimide d'Égypte.


Après quelques essais, j'ai trouvé que cela fonctionnait :

Honnêtement, je ne comprends pas exactement ma solution. Le sprite est probablement la cible de rendu et peut être transformé pour se projeter du modèle vers l'espace mondial. Je suppose que je n'ai pas besoin de la transformation de vue dans mon cas, car la caméra est censée être orthographique.

Pour mettre à l'échelle et déplacer les instances de sprite individuelles, je fais :

Taille est en pixels sur l'écran et d.x, d.y sont la position en coordonnées pixel.

Une autre chose que je ne comprends pas : j'ai dû retourner l'axe des y de la matrice de projection pour faire apparaître quoi que ce soit à l'écran, mais d'après ce que je comprends, ce serait différent de la façon dont Direct3D le gère en interne. Ça marche, mais c'est bizarre d'avoir à inverser ma traduction.

Bien que mon problème particulier ait été résolu par l'expérimentation, je serais très heureux de recevoir des réponses avec une approche meilleure (ou plus correcte) pour m'aider à comprendre.

Ajouts (après plus d'expérimentation):

Entre-temps, j'ai implémenté le dessin de sprites dans DX11 et j'ai mieux compris la convention sous-jacente : DirectX utilise généralement un système de coordonnées pour gauchers en 3D (avec l'axe des y pointant vers le haut), mais j'ai pensé aux coordonnées 2D (comme avec sprites) allant de haut en bas. Tout est plus facile, quand je m'en tiens à la convention 3D.

De cette façon, je n'ai pas à retourner de vecteurs de position, je suppose simplement que des valeurs y positives signifient aller en haut de l'écran. De plus, j'ai trouvé que la méthode SlimDX Matrice.OrthoLH me donne des résultats corrects, où OrthoOffCenterLH semble inverser l'axe des y, je ne sais pas si je ne l'utilisais pas correctement ou si cela pourrait même être un bug.

Tout fonctionne maintenant, mais je ne sais pas trop quelle serait la pratique courante. Actuellement, je multiplie l'échelle, la traduction et le rapport hauteur/largeur (taille de la fenêtre) dans la même matrice et je l'affecte au AfficherTransformer propriété. Il pourrait être plus courant de séparer ces transformations en vue, projection et espace mondial.


5 réponses 5

Ce type de distorsion dans les coins est l'un des compromis pour avoir une lentille rectiligne qui peut restituer un large champ de vision qui couvre une zone sphérique en une image rectangulaire plate. Si vous voulez que les choses près des bords d'un champ de vision aussi large apparaissent sans distorsion, alors vous avez besoin d'un objectif fisheye. Mais l'objectif fisheye ne produira pas une image rectangulaire, il produira une image sphérique. Et toutes les lignes droites dans le champ de vision apparaîtront courbes à moins qu'elles ne passent directement par le centre.

Le problème avec le contour de la balle qui n'est pas un cercle n'est pas un signe de distorsion en coussinet ou en barillet.

En effet, supposons une lentille parfaite idéalisée. Il y a un point focal (la distance de ce point au capteur est la distance focale). Maintenant, pour n'importe quel point d'un objet que vous photographiez, considérez simplement la ligne passant par ce point et le point focal. Cette ligne croisera (le plan contenant) le capteur en un point, ce point sera le point correspondant dans l'image. Imaginez maintenant une balle quelque part. Une ligne allant de la limite visuelle de la balle au point focal est une ligne passant par le point focal qui est tangentielle à la balle. Toutes ces lignes forment ensemble un cône. L'intersection de ce cône avec le capteur sera une ellipse. Ce ne sera un cercle que si la balle est exactement au centre de l'image. Plus la balle est éloignée du centre de l'image, moins elle ressemble à un cercle. Imaginez simplement que vous regardez le cône depuis la position de la balle, le capteur sera à un angle par rapport à la ligne qui vous sépare du point focal. Regardez les images pour les sections coniques.

Ce que vous décrivez sont des phénomènes fondamentaux.

Le premier phénomène illustré par la photographie d'un ballon et partiellement par une photographie de groupe de personnes résulte d'une mauvaise vision de l'image.

Le comportement optique de votre objectif est appelé cartographie rectiligne et il s'agit de référence de comportement optique : toutes les lignes conservent leur rectitude sur la photo finale :

En optique géométrique, la distorsion est un écart par rapport à la projection rectiligne, une projection dans laquelle les lignes droites d'une scène restent droites dans une image. C'est une forme d'aberration optique. https://en.wikipedia.org/wiki/Distortion_(optique)

Si vous avez placé un certain nombre de lignes droites autour de la balle, vous pourriez découvrir qu'elles sont toutes droites sur la photo. Ce n'est pas géométriquement possible si vous voulez que la boule soit ronde sur l'image et placée n'importe où sauf au centre de l'image en même temps.

Cependant, il existe un moyen de résoudre le problème : vous pouvez visualiser votre image à une distance telle qu'elle occupe le même angle de vue que dans la vraie vie.

Par exemple, une image non recadrée enregistrée à l'aide d'un objectif rectiligne 21,5 mm équivalent 135 reproduit 90 degrés de visée sur la diagonale (la distance focale est la moitié de la diagonale de 135 images). Si vous visualisez cette image à une distance égale à la moitié de la diagonale de l'image avec un œil fermé, vous ne verrez aucune irrégularité par rapport à ce que vous pourriez voir en personne avec un œil fermé (à l'exception des limitations du moniteur). Si vous utilisez cette astuce étant donné que vous connaissez la distance focale équivalente de votre objectif, vous pouvez voir une boule circulaire (ou vous pouvez vous rapprocher de l'écran LCD jusqu'à ce que la boule soit circulaire). Ce serait presque impossible pour les images prises avec des objectifs trop larges car le moniteur ne vous montrerait pas une bonne image (soit trop sombre, soit quelque chose de pire s'il est trop ancien) à cet angle de vue (considérez les coins qui sont vus sous l'angle le plus grand dans cet Cas).

C'est le seul moyen d'afficher des images sans aucun écart géométrique, et l'objectif fisheye (aka objectif avec une forte distorsion en barillet) ne vous permettra même pas d'utiliser cette astuce sans un moniteur incurvé en conséquence.

Vous remarquerez peut-être qu'aucune photo ne semble correcte lorsque vous la regardez sous un mauvais angle. La balle n'est pas circulaire à cause d'une chose similaire : vous ne la regardez pas sous un angle correct. Vous ne pouvez pas corriger une image donnée pour qu'elle paraisse naturelle à n'importe quel angle/distance de vision.

Aucune forme géométrique autre que la boule n'est différente : vous ne pouvez pas les représenter avec une photographie plate sans dire comment la regarder, la même chose se réfère aux visages des personnes sur la troisième photographie (mais ces visages sont plus délicats car leur apparence est également affectée par le deuxième phénomène ).

En voici une preuve simple : j'ai photographié la balle affichée sur mon moniteur sous le bon angle.

Le deuxième phénomène illustré par la deuxième image est une propriété très fondamentale de tous les systèmes d'imagerie compacts et s'appelle la perspective.

Des caméras ont été créées pour simuler la vision humaine. Si nous étions des abeilles, nos caméras simuleraient plutôt la vision des abeilles, mais ce n'est pas le cas. La plupart des caméras produites et l'œil humain suivent le concept du sténopé : il y a un point imaginable dans la réalité (le centre de la pupille d'entrée) et un vecteur qui lui est attaché (direction de la caméra) qui correspondent à chaque image prise.

Chaque objet qui occupe un nombre donné de lignes bleues aura la même taille sur le plan de l'image. Chaque objet plat placé dans le plan objet occupera le même espace même s'il est déplacé. Les caméras ne détectent pas la taille, elles détectent les secteurs occupés par les objets et leurs positions angulaires. Voir l'image suivante : l'objet le plus proche de la même taille occupe plus de secteurs FOV.

Le nombre de secteurs angulaires occupés par l'objet dépend de sa distance par rapport au plan pupillaire d'entrée de manière inversement proportionnelle. Chaque fois que vous sélectionnez votre objet et sélectionnez votre point de vue, vous fixez des distances d'objets à point de vue et chaque objet occupera l'espace sur le plan image qui correspond au nombre de secteurs angulaires qu'il occupe.

Je décrirai brièvement comment ces deux phénomènes interagissent avec les objets tout en essayant de deviner le terrain d'entente pour moi et vous.

Première photo : vous regardez l'image à une distance incorrecte et c'est ce qui rend la balle elliptique.

Deuxième photo : vous ne regardez généralement les étagères que lorsque vous vous tenez devant elles et votre appareil photo ne peut rien voir de différent de ce que vous voyez si vous le tenez près de l'œil. Les étagères inférieures sont plus éloignées du plan de la pupille (qui est incliné) et donc elles et tout ce qui se trouve sur elles sont plus petites et en plus de cela, les articles qui sont placés profondément à l'intérieur sont aussi plus éloignés et ils sont encore plus petits que ce qui se trouve sur le bord de l'étagère

Les lignes verticales (verticales uniquement en réalité) sont définies avec un espacement égal et cet espacement comme tout autre objet Euclid occupe moins de secteurs FoV s'il s'éloigne. La plus petite distance entre les lignes verticales au bas de l'image résulte du fait que le bas de l'image est situé plus loin du point de vue. Cela provoque la projection de la partie la plus proche des lignes avec une plus grande distance enregistrée en haut de l'image puis en bas de l'image.

Troisième image : le visage en haut à gauche est affecté par deux phénomènes réunis. Tout d'abord le visage est incliné pour que le coin supérieur gauche du visage soit plus proche du plan pupillaire et paraisse plus grand (vous pouvez le reproduire en vous regardant dans le miroir et en inclinant votre visage différemment : la partie du visage qui sera la plus proche du le miroir sera plus grand). Voir la photo à une distance incorrecte rend la situation encore pire.

L'image du mur : comme pour l'image des étagères, la partie inférieure du mur est plus éloignée du plan pupillaire, etc.

Cela rend encore plus complexe le fait que l'œil soit également un système d'imagerie rectiligne (vous ne verrez jamais de lignes se redresser et se courber en fonction de l'angle de vue), vous verrez donc des formes différentes à la périphérie de la vue qu'au centre de la vue .


Voir la vidéo: Tuliko kaakeleiden maalauksesta sutta..?!! (Octobre 2021).