Po co dodawać punkty ekstremalne podczas projektowania czcionek?

9

Najwyraźniej importowanie polega na dodawaniu punktów kontrolnych na ekstremie poziomej i pionowej ścieżek podczas projektowania glifów czcionki. Większość edytorów czcionek ma funkcje, które je dodają i wyświetla błąd, jeśli je pominiesz.

Ale czasami łatwiej i naturalniej jest rysować ścieżki w ten sposób:

wprowadź opis zdjęcia tutaj

Zwróć uwagę na różne kąty i brak punktów w większości ekstremów.

Poniżej znajduje się lepsza ścieżka, ale jeśli zaczynasz od czegoś takiego jak pierwszy obraz, przejście do tego oznacza dodatkowy krok w procesie (czasami trzeba odtworzyć oryginał):

wprowadź opis zdjęcia tutaj

Dlaczego więc musimy nawet dodawać punkty ekstremalne i jakie praktyczne problemy napotkam, jeśli tego nie zrobię?

Cai
źródło

Odpowiedzi:

7

Jak już wspomniano, ekstrema jest potrzebna do renderowania czcionek, aw szczególności do podpowiedzi.

Aby to zrozumieć, najpierw przyjrzyjmy się, co z grubsza dzieje się, gdy autohinting glifu z ekstremą jako kotwicą (zieloną) w regularnej siatce pikseli¹: Aby czcionka wyglądała ładnie i wyraźnie, pionowe i poziome pociągnięcia powinny dokładnie wpaść w siatkę pikseli. Arbitralnie umieszczony glif² zwykle nie spełnia tego kryterium, dlatego renderer nieznacznie go zniekształca w tym celu, mianowicie poprzez przesunięcie skrajności, ponieważ definiują one pociągnięcia w pionie i poziomie:

ilustracja kluczowej części procesu podpowiedzi

Ten proces wymaga zgadywania przez renderer, dlatego projektant może zdefiniować kilka rzeczy (zaznaczone pnie, niebieskie wartości), które wspierają renderer w tym procesie. Zauważ, że jest to tylko jeden z pierwszych kroków i po tym wiele się dzieje, na co nie musimy się przejmować tym pytaniem.

Przypuśćmy teraz, że nie tylko użyliśmy ekstremy do zdefiniowania glifu, ale także między nimi ukośne kotwice. Następnie te kotwice musiałyby być stopniowo przesuwane, gdy ekstrema jest przenoszona, co znowu wymaga zgadywania, ale w przeciwieństwie do przenoszenia ekstremy, projektant czcionek nie może wiele z tym zrobić, ze względu na złożoność sytuacji. Dlatego przeniesienie tej nadwyżki jest istotnym źródłem błędu, zwłaszcza jeśli kotwice znajdują się w pobliżu skrajności.

Wreszcie możemy wrócić do pytania i zastanowić się, co się stanie, jeśli nie zdefiniujemy żadnych kotwic na skraju. W takim przypadku moduł renderujący musi automatycznie określić ekstrema (co może to zrobić z łatwością) przed przeniesieniem ich i wszystkich innych kotwic wraz z nim. Ponieważ to, co naturalnie wybrałbyś jako kotwicę, jest bliskie ekstremum dla wielu rodzajów krojów pisma, wiąże się to z ryzykiem złych domysłów z powodów przedstawionych powyżej.

Podsumowując powyższe: Extrema odgrywa kluczową rolę podczas renderowania i dlatego lepiej jest, jeśli twój glif jest na nich zbudowany, więc renderer nie musi zgadywać.

cytaty

Z patentu US 7068276 B2 - Metody i systemy czcionek podpowiedzi :

Podejście algorytmiczne opisane poniżej próbuje dopasować wyraźne węzły krzywej za pomocą takich cech, jak kierunek konturu i obecność ekstremy.

Z Wiki FontForge na temat podpowiedzi :

Kontury muszą mieć właściwy kierunek, w przeciwnym razie utrudnione jest przyciąganie do niebieskich stref. Im mniej punktów tworzy (dokładny) kształt, tym lepiej. Ale krzywe wskazane przez pnie H / V powinny mieć punkty na ekstremie, w przeciwnym razie nie zostaną przyciągnięte. Jest nieelegancki, jeśli taki punkt jest „domyślny”.


¹ niewiele różni się od podpowiedzi subpikseli
², co jest dużym uproszczeniem, ponieważ umieszczanie glifów z podpowiedziami jest bardziej skomplikowane; ale wystarczy w tym przykładzie

Wrzlprmft
źródło
3

Oto trzy powody, dla których „point in extrema” jest preferowaną metodą podczas pracy z krzywymi Beziera. W rzeczywistości, pracując nad literami, zauważyłem, że jest to opisane jako niezbędne :

  1. Poprawia (znacznie) autohinting i interpretację PostScript . Rzeczywiście ustawienie punktów na ekstrema jest jednym z pierwszych kroków podczas konfigurowania ręcznego podpowiedzi.
  2. Znacznie łatwiej jest później edytować kształt . Późniejsze edytowanie krzywych jest znacznie łatwiejsze dzięki punktom ekstremalnym. Przesuwanie punktów w ekstremach utrzymuje krzywe ładne przy minimalnym dodatkowym wysiłku.
  3. Ogólnie mniej punktów . Punkty Extremum również mają tendencję do uzyskiwania tych samych kształtów z mniejszą liczbą dodatkowych punktów ... co powoduje również mniejsze rozmiary plików.

Z tych powodów wiele programów do projektowania czcionek ma narzędzia do podświetlania i ustalania punktów nie na maksimach i minimach (extrema).

Mówiąc to wszystko, od dawna pracuję nad tym, by wszystkie moje punkty były ekstremalne, i nigdy nie udało mi się, ale nie uważam się za Ninja Beziera!

mayersdesign
źródło
Dostaję podpowiedź, chociaż moje czytanie specyfikacji pozwala mi wierzyć, że jest to problem z zaokrąglaniem symetrycznym. W niepowiązanych wiadomościach należy unikać punktów przegięcia. Jednak nie dostaję 2 innych powodów. Często są cytowani, ale nadal. Gdyby tak było, to obracane przedmioty mają różne optymalne uchwyty Béziera, co wydaje się nieprawdziwe, biorąc pod uwagę, że obiekt jest stały we wszystkich orientacjach. Tak więc te punkty są naprawdę wadami w narzędziach autorskich i / lub wadami w ludzkich mózgach.
joojaa
Jeśli wybierzesz 2 i 3, wolisz używać punktów przegięcia i być może punktów o największej krzywiźnie (zobacz moją odpowiedź ). (CC @joojaa)
Wrzlprmft
@Wrzlprmft tak, z czym się zgadzam, ponieważ punkty przegięcia są globalne do kształtu. Również silniki czcionek naprawdę nie lubią krzywych, które się odbijają, więc zabija 2 ptaki jednocześnie.
joojaa