CMR wrote:A może jest tak, że współrzędne osad składowane są w liczbach całkowitych, ale w innej skali niż piksele na obrazkach. Przy generowaniu obrazka trzeba te współrzędne przeliczyć i zaokrąglić do pełnych pikseli. W zależności od punktu widzenia może dochodzić do niewielkich przesunięć.
To samo dokładnie założenie przyjąłem kiedyś, zaczynając bawić się cantryjską kartografią.
W czasie prac nad mapą świata, opływanego statkiem i mierzonego sekstantem, wyszła mi z obliczeń pewna prosta zależność. Jej wyliczenie było banalnie proste już przy pracach nad mapą Fic (bo to dłuuuga kiszka) ale potwierdziło się w czasie prac nad mapą świata. Zwłaszcza wtedy, kiedy dotyczyło mapy pewnego Największego Lądu albo innego Lądu na północy, a także odległości morskich.
Mianowicie jednostka sekstantu nie jest całkowitą wielokrotnością piksela, tylko ułamkiem. Jeżeli chcesz, Grzybi, to poszperam i sprawdzę, ile mi wyszło z obliczeń, że ona w przybliżeniu wynosi, i wyślę na PM. Ale chyba szybciej będzie Ci sprawdzić to samemu.
Konsekwencje tego są takie, że mapka musiałby pokazywać ułamki pikseli, co jest oczywiście niemożliwe. Stąd konieczne musi być zaokrąglenie.
Przyjmijmy dla przykładu zmyślone uproszczenie, że 1 js. (jednostka sekstantu) = 5,3 piksela:
Jeżeli teraz z punktu A do punktu B odległość zmierzona sekstantem wynosi 72 js, to na mapce byłoby to 381,6 piksela. Ale ponieważ każdy obrazek składa się z całkowitej liczby pikseli, to na obrazku odległość zostanie pokazana w postaci 382 pikseli (pojawi się "dodatkowy pasek" szerokości 0,4 piksela).
Płyniemy dalej w linii prostej, z B do C. Mierzymy odległość. Odczytujemy dajmy na to 69 js, a więc 365,7 piksela. Na mapce mamy tymczasem 366 pikseli.
W końcu docieramy (nadal na wprost) z C do D. Odległość 39 js, a więc 206,7 pikseli. Na mapce widzimy 207 pikseli.
Po złożeniu mapek w całość z punktu A do punktu D mamy 382+366+207=955 pikseli. Tymczasem faktyczna odległość wynosi 180 js, a więc 954 piksele. I nasza mapka jest o jeden piksel "za duża".
To oczywiście tylko przykład, bardzo uproszczony, bo w rzeczywistości cantryjskiej rozwiązano to jeszcze inaczej.
Niektóre "kółka" z map składają się w całości z idealnych kwadratów o boku równym x pikseli.
Ale już o dwie czy trzy tury statkiem dalej otrzymujemy kółeczko, na którym jedna (przykładowo lewa) krawędź każdego kwadratu jest jaśniejsza bądź ciemniejsza, jakby lekko przezroczysta. Krawędź ta ma grubość 1 piksela. Po kolejnych turach "przezroczyste" stają się obie krawędzie (prawa i lewa), tak że nawet nie wiemy, która krawędź należy do którego kwadratu, bo zdają się nachodzić na siebie, a na koniec krawędzie znów staja się stopniowo "wyraźne", z tym że krawędź między nimi przesunęła się właśnie o ten 1 piksel. W ten sposób poprzez swoiste "przenikanie", "przezroczystość" czy też "nachodzenie na siebie" elementarnych kwadratów mapa eliminuje nadmiarowy piksel. Oczywiście, zjawisko to działa zarówno w kierunku góra-dół (zachód-wschód), jak w kierunku prawo-lewo (północ-południe).
Jednocześnie nie da się wskazać, gdzie po drodze ten piksel został zgubiony. Jedyne, co możemy zrobić w photoshopie, to sami zdecydować, co ile teleskopowych "kółek" przesuwamy nasz obrazek o piksel, i gdzie najlepiej zrobić "oszustwo".
W praktyce pytanie "gdzie najlepiej" nie ma absolutnie żadnego znaczenia, bo na mapie oglądanej w grze, w skali 1:1 oko nie wyłapie żadnych różnic, o ile przejścia są "miękkie". Ma to znaczenie tylko dla purystów i idealistów, bo tak zrobioną mapę (dowolnie ogromną) można mierzyć w photoshopie i natychmiast podawać odległości w jednostkach sekstantu. Postać w grze ma gorzej: musi mierzyć mapę sznurkiem albo listwą i jeszcze mieć "oko" do oszacowania skali i stopnia dokładności mapy.
I na koniec:
Gdyby "kółka" z teleskopu składały się wyłącznie z pełnych wyraźnych kwadratów, szybko przybywałoby nam dodatkowych pikseli i pomiary sekstantem bardzo znacząco przeczyłyby mapie (albo na odwrót). Dlatego okazało się, że te (znienawidzone kiedyś przeze mnie) rozmazane i niepasujące kwadraty w gruncie rzeczy pozwalają stworzyć mapę idealną.
Dla przykładu odległości między punktami na północnym i południowym wybrzeżu Największego Lądu świata zgadzają się co-do-piksela z tymi, zmierzonymi w grze sekstantem (!). Jest to możliwe i sprawdza się w praktyce. A dotyczy naprawdę wielkich odległości.
Pozdrawiam i ewentualnie zapraszam na PM.
[*]...