17.06.2026 22:39

mPainter: niezależne krzywe nacisku i czyste końce kresek

⏱️ 3 min read
Share:

Niezależne krzywe nacisku — i koniec z „kropkami" na końcach kresek

Tym razem zajrzeliśmy pod maskę silnika pędzla. Trzy rzeczy, które realnie czuć przy rysowaniu piórem: osobne krzywe nacisku dla każdej dynamiki, koniec z przypadkowymi kropkami na końcach pociągnięć oraz lżejsze stemplowanie.

Osobna krzywa dla rozmiaru, krycia i flow

Dotąd wszystkie trzy dynamiki nacisku — rozmiar, krycie i flow — dzieliły jedną wspólną krzywą transferu. W praktyce znaczyło to, że edytując krzywą w oknie „Nacisk → Krycie" zmieniałeś przy okazji odpowiedź rozmiaru. A podgląd w oknie krycia i tak pokazywał zmianę rozmiaru — bo to rozmiar jest domyślnie sterowany naciskiem.

Teraz każda dynamika ma własną, niezależną krzywą:

  • Rozmiar może narastać ostro — cienko przy lekkim dotyku, grubo przy mocnym dociśnięciu,
  • Krycie — łagodnie, dla miękkich przejść,
  • Flow — wedle uznania,

i żadna edycja nie wpływa na pozostałe. Okno „Nacisk → …" edytuje oraz pokazuje w podglądzie wyłącznie swój parametr. Stare presety i zapamiętane ustawienia narzędzi z jedną krzywą migrują automatycznie — wszystkie trzy dziedziczą dotychczasową krzywą, więc nic nie wygląda inaczej, dopóki sam nie rozjedziesz krzywych.

Koniec z „kropkami"

Zdarzało się, że przy rysowaniu — zwłaszcza na początku i końcu kreski — pojawiała się lita kropka, jakby niezależna od rozmiaru pędzla. To była kombinacja dwóch rzeczy:

  • przy znikomym nacisku rozmiar daba zapadał się do podłogi 1px, identycznej dla pędzla 20px i 200px,
  • a krycie nie było obniżane (domyślnie nacisk nie steruje kryciem), więc ten jednopikselowy ślad był w pełni kryjący — lita kropka.

Do tego pióro raportujące dokładnie zerowy nacisk (typowe przy odrywaniu) było traktowane jak pełny nacisk, co zostawiało pełnowymiarową plamę na końcu kreski.

Teraz daby mniejsze niż piksel renderują się na podłodze 1px, ale z proporcjonalnie obniżonym pokryciem — czubek wygasa płynnie zamiast zostawiać kropkę. A prawdziwe zero nacisku z pióra nie jest już podbijane do pełni (rozróżniamy pióro z czujnikiem nacisku od urządzenia bez niego). Końce kresek są czyste.

Lżejsze stemplowanie

Przy okazji uprościliśmy gorącą pętlę rysowania. Stemplowanie daba i scalanie pociągnięcia z warstwą rozwiązywały kafel obrazu osobno dla każdego piksela (wyszukiwanie w mapie + sprawdzenie kopiowania-przy-zapisie). Teraz robią to raz na kafel — tak samo jak wypełnianie prostokąta. Wynik rysowania jest identyczny, ale przy dużych pędzlach i przy zatwierdzaniu pociągnięcia ubywa narzutu CPU.

Co to daje

Pełna kontrola nad tym, jak pióro przekłada się na ślad — osobno dla grubości, krycia i flow, bez wzajemnych zależności. Czyste, wygasające końce kresek bez przypadkowych kropek. I trochę lżejszy silnik pod spodem.

📚 Related posts

27.08.2026 20:55

Data, której nie cofniemy nawet my

Każdy certyfikat autorstwa dostaje datę zapisaną w blockchainie Bitcoina — takiej nie podważy nikt, my też nie. Sprawdzisz ją bez konta i bez Moonligh...
Continue reading →
27.08.2026 19:35

Twój kolor, wszędzie

Trzy tryby i siedem akcentów, wspólnych dla strony i Moonlight Animate. Motyw jedzie z kontem, profil pokazuje gościom Twoje kolory, a harmonogram sam...
Continue reading →
27.08.2026 18:31

Kto moderuje i na jakiej podstawie

Moderator to teraz osobna rola z własnym zakresem, a nie administrator w przebraniu. Odrzucenie treści wymaga powodu, który trafia do autora razem z d...
Continue reading →

📧 Stay up to date!

Join the waitlist to get notified about new Dev Blog posts and Moonlight platform launch.