Grafika na C+4. Część 2 – Bitmap Multicolor

Dzisiaj kontynuujemy tematykę grafiki na C+4. Po wprowadzaniu w tematykę palety kolorów dzisiaj przechodzimy do omówienia jednego z podstawowych trybów graficznych – multikolorowej bitmapy.

Dzisiaj w tym materiale (zwłaszcza video) będzie sporo teorii, ale myślę że może się przydać aby lepiej zrozumieć jak działa bitmapa na C+4. Zacznijmy od tego, że…

Analogie do C64

… są dość duże. Bitmap Multikolor, podobnie jak na C64 tak i na C+4 to tryb graficzny oferujący rozdzielczość 160×200 z tzw grubymi pixelami (prostokątnymi). Jeśli podzielimy taki obraz na kratki o wymiarach 4×8 pixeli to w każdej z nich będziemy mogli używać różnych kolorów. Na C64 mogliśmy w każdej takiej kratce użyć koloru tła + 3 dodatkowych kolorów. W C+4 Mamy prawie tak samo. W plus-czwórce możemy użyć:

  • koloru tła
  • drugiego koloru ustalonego dla całego obrazka
  • i dwóch dowolnych kolorow z palety 121 dostępnych.

Czyli innymi słowy mamy kolor tła, jeden kolor stały i dwa różne kolory co kratkę 4×8. Pokazuję to w filmie i na poniższym obrazku. Z punktu widzenia grafika można też powiedzieć, że ten ustalony kolor będzie określał w jakimś sensie ogólny „odcień” obrazka. Jeśli tak jak poniżej zdecydował bym się użyć tego białego kolory jako ustalonego to wszędzie tam gdzie będę potrzebował użyć jasnego koloru użyję tego białego bo mam go niejako „za darmo” i oprócz niego mogę użyć jeszcze dwóch pozostałych dostępnych w 4×8. Przy okazji – do dyspozycji mam niby tylko 2 dowolne kolory na kratkę, ale jeśli dobrze zaplanować ich użycie można spokojnie używać dobrodziejstw palety C+4.

121 kolorów? Ile to zajmuje RAMu?

W filmie tłumaczę jak poukładane są bajty w pamięci i za jakie pixele odpowiadają, ale działa to tak jak w C64. Najważniejsze liczby jakie trzeba zapamiętać są takie:

  • 1 bajt to 4 pixele – po dwa bity na pixel i dla tego pixele w tym trybie są prostokątne
  • potrzeba 40 bajtów aby uzyskać 160 pixeli w jednej lini
  • rozdzielczość 160×200 czyli 40 bajtów*200 = 8000 bajtów = $1f40 szesnastkowo
  • czyli prawie 8 kilobajtów zajmuje sama bitmapa bez kolorów
  • mamy dwie mapy kolorów po 40*25 = 1000 bajtów. Czyli razy dwa to będzie 2000 bajtów.
  • łącznie grafika bitmapowa z kolorami zajmuje 10000 bajtów czyli prawie 10 kb

Pamięć obrazka w bitmap multikolor zajmuje tyle samo co w C64! Więc jak to się dzieje skoro C+4 ma dużo więcej kolorów i wydawać by się mogło że obrazek będzie zajmował więcej pamięci? Otóż dzieje się tak dla tego że wprowadzono dodatkowe ograniczenie o którym mowa punkt wyżej – czyli ten dodatkowy stały kolor dla całego obrazka. Dzięki temu w dwóch mapach kolorów (tych po 1000 bajtów) można zapisać:

  • w jednej z nich oba kolory w danej kratce. np $34 dla kratki pierwszej będzie oznaczało aby użyć kolorów 3 i 4 albo $a8 oznacza użycie kolorów a (10) i 8
  • w drugiej określa się jasność tych kolorów (jest 8 poziomów jasności). np $22 oznacza użycie poziomów jasności (luminacji) 2 i 2 dla obu kolorów.

Nieco dokładniej i obrazowo pokazuję to w filmie rysując moje gryzmoły. Wklejam to co na filmie narysowałem ale zachęcam do obejrzenia bo tak bez kontekstu to ilustracja poniżej nie wiele może mówić ;).

Bitmapy a Basic

Basic 3.5 jaki jest zaimplementowany w serii komputerowy 264 posiada instrukcje graficzne. Dzięki temu możliwa jest praca z trybem graficznym Bitmap Multikolor. do uruchomienia tego trybu służy komenda: GRAPHIC

  • GRAPHIC 3 – tryb multicolor na cały ekran czyli 160×200
  • GRAPHIC 4 – tryb graficzny multicolor + tekst czyli 160×160 grafika oraz 40×5 znaków trybu tekstowego pod grafiką – jednocześnie

W filmie pokazałem jak przygotować grafikę w narzędziach wymienionych poniżej. Najważniejsza rzecz jaką należy zapamiętać to fakt że Basic widzi grafikę bitmapową od adresu $1800 a rozkłada się to tak:

  • $1800 – $1c00 tablica (mapa) jasności dla dwóch kolorów
  • $1c00 – $2000 tablica kolorów dla każdej kratki
  • $2000 – $3f40 bitmapa

Kolory tła, ramki i dodatkowy kolor ustalony wpisuje się odpowiednio do rejestrów TEDa: $ff15, $ff19, $ff16 o czym też mówię i pokazuję w filmie.

Zastosowanie i narzędzia

Jeśli stworzylibyśmy grafikę w programie do rysowania to bez problemu można taki plik wczytać do pamięci od adresu $1800, użyć komendy GRAPHIC3 a naszym oczom ukaże się obrazek. Fajnie prawda?! To także pokazałem na filmie.

Zastosowanie takiego trybu to przede wszystkim statyczne obrazki np jako ekrany tytułowe do gier. Jak napisałem grafika zajmuje prawie 10 kilo co np w komputerach C16 i C116 nie zostawia zbyt wiele pamięci do wykorzystania na program. Włączając tryb GRAPHIC 3 w Basicu zostaje nam wtedy jakieś 4 kilobajty (albo 2 zależy jak liczyć:) ) na program w Basicu. Mało? Mało, ale nawet na C16/116 są programy graficzne do rysowania w tym trybie. Najważniejszy jaki należy wymienić to program Multi Boticelli. Pozwala on rysować używając wszystkich kolorów a z wyglądu podobny jest do Art Studio z C64.

Aby zacząć przygodę w rysowanie na C+4 zachęcam do poznania programu Multipaint który ma świetne wsparcie dla omawianego trybu (wspiera także inne platformy). Program działa na Mac OS, Windows, Linux i niedawno wyszła nawet nowa ulepszona wersja – polecam. Program ten zapisuje grafikę w standardzie Multi Botticelli. Tak się jednak składa, że w formacie tym grafika ładowana jest od adresu $7800. W filmie pokazałem jak małym hack’iem przerobić plik na adres $1800 i załadować w Basicu.
Jeśli chodzi o narzędzia to ja jeszcze używam mojego ulubionego Timanthesa, ale jak i do czego to opowiem już w kolejnych odcinkach serii.

Zapraszam do obejrzenia filmu, komentowania i zadawania pytań, tutaj, na kanale albo na forum. Chętnie pomożemy.

Carrion



Kategorie:Artykuły, C plus/4, Film, Grafika

Tagi: , , , , , , , ,

5 replies

  1. Proszę Pana, ja już obliczyłem. Jest sto dwadzieścia jeden kolorów. Czuwaj! 😉

    Polubienie

  2. I co my robimy tymi kolorami?
    My otwieramy oczy niedowiarkom… 😉 ehem … Atarowcom?

    Polubienie

  3. To jest niesamowita sprawa jako że jestem posiadaczem aktywnym kilku C64 I tylko C64 zastanawiam się po tych kształcących artykułach o grafice nad kupnem komputera z rodziny C ale nie kolejnego C64 bo mam akurat atomowy zapas. Szczerze najpierw poćwiczę na Multipancie i poszukam jakiejś intratnej oferty kupna w sieci. Faktycznie technicznie wszystko zbliżone do poczciwego C64 ale kolorystyka powala. Dziękuję za ten jakże klarowny i zrozumiały artykuł pozdrawiam Redakcje;-)

    Polubienie

  4. KAton. Dzięki! Zerknij jeszcze na wcześniejszy artykuł o kolorach. No chyba że już zerknąłeś 😉

    Polubienie

  5. Czytałem w pierwszej kolejności;-)

    Polubienie