Forum AmigaOne Zone
http://forum.amigaone.pl/

O grafice planarnej Amigi słów kilka
http://forum.amigaone.pl/programowanie-f13/o-grafice-planarnej-amigi-slow-kilka-t785.html
Strona 1 z 2

Autor:  Hextreme [ sobota, 30 sty 2016, 23:20 ]
Tytuł:  O grafice planarnej Amigi słów kilka

Przeklejam tu mój komentarz z eXeca. Przedstawiam w nim zalety budowy planarnej w komputerach Amiga. Okazuje się, że budowa Chunky wcale nie jest taka niezbędna i grafikę planarną można stosować do wielu celów wykorzystując akcelerację grafiki w Amidze (bez użycia CPU) - nawet do tekstur. Może kogoś zainteresuje:

Grafika planarna przysłużyła się Amidze w jej sukcesie! Choćby wspaniały efekt paralaksy w wielu wyśmienitych grach. Poza tym możliwość uzyskania wiele ponad 32 barw mimo takiej ilości banków kolorów w kościach OCS/ECS.

Procesor wideo w Amidze - Copper ma zasadnicze znaczenie w działaniu komputera. To jest tożsamość Amigi. Bez niego grafika nie byłaby tak szybka i wspaniała. Procesor CPU nie musi zajmować się obróbką grafiki prawie w ogóle. Blitter jest stworzony do grafiki planarnej. Blitter nie musi rysować całego ekranu, ponieważ procesor wideo ma wystarczającą ilość pamięci graficznej, by wyrysować całą scenę i zamiast rysować cały ekran - przeskoczyć do odpowiedniego miejsca w pamięci graficznej.

W przypadku grafiki Chunky to w gruncie rzeczy nie jest ona potrzebna w Amidze. Dlatego, że jak mamy 32 kolory (5 bitplanów) to nie ma sensu przedstawiać grafiki w postaci bajtów. W przypadku 256 kolorów (8 bitplanów) sens jest większy, ale warto zauważyć, że jak mówimy o kolorach to raczej przedstawiamy pewne atrybuty kolorów. Nie interesuje nas indeks (numer) koloru, ale pewne własności, które on posiada.

Te własności to może być np. nasycenie koloru czerwonego, niebieskiego, zielonego, purpurowego, żółtego itp. bądź jasność, kontrast czy intensywność barwy. Cechy powinny być tak określone by można je było swobodnie mieszać. Jak połączę żółty z czerwonym to powinienem uzyskać kolor pomarańczowy.

Te cechy powinny być wpisane w poszczególne barwy. Tak się składa, że jeden bitplan odwzorowuje jedną cechę! Zatem jeśli chcemy zmodyfikować jedną cechę danego zbioru pikseli używamy CPU albo Blittera (dla obszarów) by zmodyfikować jeden bitplan.

Oszczędzamy całkowicie czas procesora, zaś Blitter ma niewielkie zadanie do wykonania: operację logiczną maski, gdzie jedynki to piksele do modyfikacji na jednym bitplanie. Możemy w ten sposób mieszać barwy, rozjaśniać/ściemniać piksele, nadawać konkretną barwę itd.

Ważne to znać podstawowe zalety filozofii komputera.

W przypadku grafiki 3D może zaistnieć potrzeba użycia procesora CPU do celów obliczeniowych. Ale tekstury z powodzeniem mogą być planarne zgodnie z techniką, którą powyżej opisałem. W tej technice procesor CPU nie musi spacerować po kolejnych pikselach - bajtach, co oczywiście oszczędza jego czas.

Oczywiście Amiga od zawsze miała możliwość podpięcia karty graficznej. No niestety nie było to ani tanie ani popularne. Dlatego większość amigowców ma konfigurację OCS, ECS lub AGA.

P.S. Grafika Chunky też może być przydatna, ale koszt zwyczajnej konwersji jest dość wysoki. Dlatego lepiej stosować tylko w konsoli Amiga CD32.

Autor:  swinkamor12 [ niedziela, 31 sty 2016, 01:07 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Nie drogi Robercie.
Bitplany były szybkie i fajne jak było mniej bitów na kolor niż 8.
Już za czasów AGA bitplany były bez sensu, i już na nawet na AGA chunky plus c2p było szybsze.
Fajna technologia za czasów a500 ale potem do niczego.

Autor:  Mufa [ niedziela, 31 sty 2016, 08:59 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Sposób realizacji wyświetlania grafiki planarnej w Amidze miał swoje wielkie zalety, o których dobrze wie każdy, kto próbował grać w np. w Pinballe na Ami i na PC w pierwszej połowie lat 90-tych. Trzeba to uczciwie oddać, natomiast trudno się zgodzić ze stwierdzeniem, że karty graficzne są mało popularne ze względu na to, że standardowa grafika Amigi jest taka super. Że nie jest tak super to pokazałeś, chociażby linkując niedawno do filmiku z Doomem na Vampire, gdzie pomimo szybszego procka w A600 od tego w A4000 gra nadal rwała.

Ja kilka dni temu bardzo chwaliłem każde zdanie Andrzeja Bobka uznając, że z mojego punktu widzenia nie ma się tam, do czego przyczepić. Tak naprawdę jest jednak jedno "malutkie coś" co podczas słuchania wzbudziło mój lekki uśmiech, przy czym jest to zdanie stosowane tak nagminnie, że nauczyłem się po prostu nie zwracać na to uwagi i przechodzić nad tym do porządku dziennego. Chodzi oczywiście o stwierdzenie typu "Z Amigą wytrwałem naprawdę długo, bo aż do roku (i tutaj można sobie wstawić 1996, 1997 czy 1998)...." W zasadzie prawie każdy z zaproszonych gości do podcastu Radzika począwszy od Jubiego, czy też każdy z powracających "synów marnotrawnych" na forum PPA nie powie Ci nigdy, że z Amiga był krótko, zawsze stwierdzi, że była tak długo, jak się tylko dało ;)

Tymczasem w mojej ocenie długo to jest Szaman z Execa, to o ile liczyć to za jakąś formę amigowania, są mosowcy typu Krashan czy MDW i jeszcze może nastu, może maksymalnie dziestu ludzi w naszym środowisku. Oni nie wysiedli z amigowego autobusu w drugiej połowie lat 90-tych, nie zrobili tego w latach dwutysięcznich i jakoś nieprzerwanie są z Amigą do dziś. Tak się składa, że i ja należę do grupy ludzi, która niemal od ćwierćwiecza nie ma żadnej przerwy w amigowaniu, więc chyba mogę się wypowiedzieć nie jako rekonwalescent, który powraca na nostalgii po latach i akceptuję tylko to, co pamiętał z dzieciństwa, czyli A500 rozbudowaną o dodatkowe 0.5MB RAM, tylko jako człowiek, który na bieżąco obserwował zmieniające się trendy w czasie całej historii Amigi.

Z tej perspektywy powiem Ci tylko tyle że w końcówce lat 90-tych niemal każdy chciał mieć kartę graficzną w Amidze. Jak wygląda komfort pracy, prędkość działania oraz oferowane możliwości w takich programach jak Personal Paint czy nawet True Brillance względem ukierunkowanego na karty graficzne TvPaint chyba tłumaczyć nie muszę. TvPaint nie był popularny, bo nie były popularne karty graficzne to fakt. No ale czemu nie były popularne karty graficzne :?: Przecież nie dlatego że były gorsze od wbudowanych gnatów Amigi, gdyby oferowały mniejsze możliwości, to po co było je produkować ;)

Były niepopularne tylko dlatego, że 95% amigowców to użytkownicy tzw. małych Amig, gdzie kart graficznych nie dało się podpiąć. Gdy jednak pod koniec lat 90-tych stało się to możliwe A1200, ludzie natychmiast zaczęli to kupować. Sam pamiętam ile zachodu kosztowało mnie by dostać w 1999 roku swoją BVision PPC, która była niemal nie do dostania, gdyż schodziła jak ciepłe bułeczki.

Reasumując grafika planarna oraz standardowe układy graficzne Amigi to jest coś, co miało w świecie informatycznym swoje 5 minut i dobrze, że nasz ulubiony komputer potrafił się wstrzelić w ten czas, natomiast od dobrych dwudziestu lat światem rządzi chunky co oznacza, że każdy, kto oczekuje od Amigi czegoś więcej niż odpalenia SuperFroga z dyskietki powinien mieć kartę graficzną. Inna sprawa, że na fali retro-poworotów 90% to są właśnie ludzie od SuperFroga, traktujący "przyjaciółkę" jak starą konsolę do gier, tak więc fałszywy pogląd, że Amidze niepotrzebna karta graficzna, gdyż kości OCS, ECS, AGA są lepsze, będzie się tylko utrwalał.

Autor:  radzik [ poniedziałek, 1 lut 2016, 11:15 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Ja też wróciłem po latach, no może małej paroletniej przerwie. Oczywiście zaczęło się od budowy klasyka na nowo, kupna A2000 i uruchomienia MOS i AOS4 na 1200. Zrobiliśmy w miedzy czasie z kumplem party AmiWigilia w Poznaniu, a ja kupiłem Pega aby używać OS4.1, bo mi się spodobało.
Jednak mam wrażenie, że ludzie, którzy nie mieli przerwy niestety nie mają trzeźwego spojrzenia na amiświat. Dla nich być może faktycznie jest lepiej niż było, bo jest. Jednak nie czarujmy się jak popatrzy się na to na chłodno to co się dzieje jest nie do końca normalne. Stagnacja i niestety brak sensownych rozwiązań, nie mówiąc już o inwestorach. Zarówno użytkownicy jak i programiści są niechętni współczesnym rozwiązaniom, technologii i wszyscy traktują to jako hobby. Wszystko jest robione po godzinach, jak się komuś w ogóle chce zrobić cokolwiek.

A to, że ludzie odchodzi, większośc wiadomo dla gier. Ale taki człowiek jak mój gość zarabiał na tym kasę i niestety na Amidze się nie dało, co wyrazem było odwrócenie się czołowych firm od platformy. Commodore dało kolokwialnie rzecz ujmując dupy, a teraz po tylu latach resztki środowiska robią to samo.

Autor:  Mufa [ poniedziałek, 1 lut 2016, 12:21 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Cytuj:
Zarówno użytkownicy jak i programiści są niechętni współczesnym rozwiązaniom, technologii

Zauważyłem że zwłaszcza na początku tego roku pesymizm jest w modzie. Nie neguję tego że taki Krashan czy Szaman na fali retro postanowili wrócić do klasyka. Natomiast nie jest tak że przepływ jest tylko w jedną stronę. Sam niedawno czytałem nomen omen Twój wywiad dla Amigazynu. Twój rozmówca to był człowiek który wrócił do amigowania właśnie na fali retro i oczywiście zaczął od A1200. Szybko jednak zrozumiał że granie w stare gierki nie daje pełnej satysfakcji z hobby i postanowił spróbować nowoczesnych rozwiązań. Zaczął... oczywiście od najtańszego i najbardziej oczywistego rozwiązania czyli AROSA, zaliczył z nim jednak tylko krótki epizod uznając że to mu nie pasuje. Potem spróbował ... oczywiście drugiego w kolejności taniego i dostępnego rozwiązania czyi MOSa, ale i ten nie przypadł mu do gustu. Przeszedł więc na AmigaOS 4, co więcej nie poprzestał na zwykłym amigowaniu, tylko popróbował swych sił w tworzeniu nowego softu, który dzisiaj można kupić na Amistore.

A wrócił do amigowania zaledwie w 2011 roku, czyli można go uznać za dopływ świeżej krwi dla środowiska AmigaOS 4. Jaki z tego wniosek? Ano taki że moda na retro wcale nie musi nieść za sobą zagrożeń, czy też końca świata nextgenów, ta moda może okazać się także szansą na nowych użytkowników a nawet na nowe oprogramowanie.

Autor:  radzik [ poniedziałek, 1 lut 2016, 15:39 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Ba, ta moda to jest według mnie duża szansa aby ją wykorzystać. Ale jednak jeśli rozwój dalej tak będzie wyglądał nie da się tego zrobić. Nawet mój gość mówił, że 99% kompów to internet. A co oferuje AmigaNG? Przeglądarkę średnik aktualna i wolną i koniec. Gdzie Dropbox, Google, które łatwo sportować. Ze Skype mogę zrozumieć, że się nie da, ale dla narzędzie open source czy z dostępnym API nie mieć klienta to jest wstyd. Więc jak chcesz ludzi przyciągnąć, nie mówiąc już o cenach.

Być może ten pesymiz wynika z tego, że nie idzie to w takim kierunku powinno iść.

Poza tym nigdy nie wierzyłem, że ciężko się skontaktować z Hyperion i A-EON. Niestety muszę przyznać racje tym co tak mówili. Mimo nawiązania pierwszego kontakt, a potem próby ustalenia konkretów, wielokrotnie powielonych prośbach jestem regularnie olewany. Z takim podejściem, tak dbając o PR no to cóż... pozytywnych opinii niestety nie mogę mieć.

Autor:  parallax [ poniedziałek, 1 lut 2016, 17:13 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

I te 99% kompów nie używa Dropboxów i tego typu wynalazków ;) Oczywiście dobrze by było, gdyby pod najnowszym AmigaOS to chodziło, bo tym 1% by się przydało, chociaż w tym wypadku trochę więcej, bo nowa Amiga nie jest dla każdego już pomijając cenę ;)

Trzeba się z tym jak jest pogodzić :roll:

Autor:  Hextreme [ poniedziałek, 1 lut 2016, 20:32 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

swinkamor12 napisał(a):
Nie drogi Robercie.
Bitplany były szybkie i fajne jak było mniej bitów na kolor niż 8.
Już za czasów AGA bitplany były bez sensu, i już na nawet na AGA chunky plus c2p było szybsze.
Fajna technologia za czasów a500 ale potem do niczego.

Znalazłem bardzo ciekawe archiwum z zastępnikiem konwersji chunky-to-planar. W praktyce jest to jak posiadanie trybu Chunky w Amidze z AGA.

http://aminet.net/package/dev/src/blitscreen

Nie potrzebuje pamięci FAST, wystarczy sama pamięć CHIP. Świetnie nadaje się dla słabszych Amig z 68020 lub 68030. To rozwiązanie nie wymaga czasu procesora, więc może zająć się obliczeniami i renderować bezpośrednio piksele Chunky na ekran!

Autor pisze, że to nawet lepsze i szybsze rozwiązanie niż VGA ma. :)

Ktoś miał świetny pomysł.

Warto odnotować też, że procesor od 68040 wzwyż potrafi dokonać konwersji chunky-to-planar w czasie rzeczywistym.

Autor:  swinkamor12 [ poniedziałek, 1 lut 2016, 21:22 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

My amigowcy używamy nowych lepszych amig bo są fajne bo są szybkie.
Nowe amigi to świetne zabawki dla programistów żeby coś sobie w weekend podłubać.
O wiele przyjemniej się dłubie się różne rzeczy na czymś co ma proca sto razy szybszego niż stare amigi od commodore, a grafikę dziesięć tysięcy razy szybszą, a przy okazji się nie sypie jak klasyki.
Jest to fajne bo z jednej strony super szybkie, z drugiej kompatybilne.
Niektórzy ludzie mają ból d..., bo nie chcemy zmienić na x86.
Tylko że nie ma po co zmieniać na x86.
Nie ma na x86 amigowego rozwiązania wartego używania.
Amiga Os na x86 to powinno być amigowe gui i grafika na unixie.
Czegoś takiego nie ma. Jak nie było dwadzieścia lat temu działającego klona open source mui, tak nie ma do dzisiaj.
I nikt nad tym nie pracuje, cała para idzie w dowalanie ppc.
Z niewiadomych dla mnie powodów różni tacy sądzą że jak amigowcy nie będą mieli wyjścia to się przekonają do x86.
To głupie jest. Na x86 jest wiele innych fajnych możliwości jak windows, linux, os x.
I jak długo nie będzie amigowego rozwiązania na poziomie ludzie nie zrezygnują z ppc.
Jeśli komuś się nie podoba obecna sytuacja to jedyne wyjście to wzięcie się do roboty.

Autor:  parallax [ środa, 3 lut 2016, 21:14 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Hextreme napisał(a):
Nie potrzebuje pamięci FAST, wystarczy sama pamięć CHIP. Świetnie nadaje się dla słabszych Amig z 68020 lub 68030. To rozwiązanie nie wymaga czasu procesora, więc może zająć się obliczeniami i renderować bezpośrednio piksele Chunky na ekran!


Robiłeś już może jakiś test praktyczny ile można zyskać?

Autor:  Hextreme [ czwartek, 4 lut 2016, 19:58 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

parallax napisał(a):
Hextreme napisał(a):
Nie potrzebuje pamięci FAST, wystarczy sama pamięć CHIP. Świetnie nadaje się dla słabszych Amig z 68020 lub 68030. To rozwiązanie nie wymaga czasu procesora, więc może zająć się obliczeniami i renderować bezpośrednio piksele Chunky na ekran!


Robiłeś już może jakiś test praktyczny ile można zyskać?

Dzisiaj skończyła się sesja egzaminacyjna na studiach, na które uczęszczam, więc mam czas żeby przetestować. :geek:

Autor:  Hextreme [ piątek, 15 wrz 2017, 12:12 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Wiem, że na tym forum próżno szukać drugiego fana Amigi 1200, mimo to chciałbym podzielić się procedurą konwertującą piksele z formatu "chunky" do formatu "planar", którą opracowałem przez wiele ostatnich dni.

Procedura jest mocno zoptymalizowana. Charakteryzuje się konwertowaniem 32 liniowo ułożonych pikseli "chunky" i korzysta wyłącznie z rejestrów procesora, łącznie z maskami, bez buforów pośrednich w pamięci.

Oto kod źródłowy. Wypuszczam na zasadzie "freeware", czyli można używać do woli, zaś rozprowadzać wyłącznie w całości i z adnotacją o autorze.

Mam w planach program testujący tą procedurę, ale to pewnie dopiero w październiku (teraz nie mam na to czasu).

Jeśli macie jakieś uwagi, czy pytania śmiało piszcie.

Uwagi do kodu: Procedura może być używana do prostej konwersji 32 pikseli w rejestrach, lub w pętli. W przypadku pętli do dyspozycji pozostaje jeden wolny rejestr - A6, pod który można podpiąć dowolne dane/adresy itp. oraz stos - A7, gdzie można np. odkładać rejestry.

Na końcu pętli są wolne dwa rejestry danych: D0 i D1.

Wynik obliczeń jest w tych rejestrach:
A2: plan 0
A0: plan 1
A3: plan 2
A1: plan 3
D2: plan 4
D4: plan 5
D5: plan 6
D3: plan 7

http://coreprogramming.pl/Chunky/c2p.txt

Autor:  Hextreme [ piątek, 15 wrz 2017, 14:57 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Zrobiłem mały skoroszyt, żeby obliczyć koszt i wyniki są naprawdę ciekawe:

Na razie wyniki teoretyczne.

Wyniki są dla procesora MC68020 i przeciętnego przypadku:

Procedura zużywa zaledwie 14,25 taktów zegara na jeden piksel.

Jeden ekran 320x200 konwertuje przy zegarze 50MHz w ciągu 18,24 milisekund (ms) co daje 54 FPS.

Jednak w realnych warunkach wskaźnik FPS dla takiego ekranu jest trochę mniejszy niż 50 (przy włączonych przerwaniach i wielozadaniowości), przynajmniej dla procesora MC68030.

Ale przy odrobinie mniejszym ekranie pełne 50 FPS można bez problemu osiągnąć.

Procesor wówczas będzie miał spory zapas mocy, by obsłużyć algorytmy o podobnym koszcie (adekwatnie do liczby pikseli).

Przypominam, że Doom został napisany dla 30 FPS. Przy takim "framerate" ekran spokojnie może być nawet 320x256.

W każdym razie procedura się przyda. Trzeba ją tylko opakować w procedurę wyświetlającą.

Ma ktoś pomysł i doświadczenie do czego można jej użyć? Ja jestem zielony w temacie efektów chunky (nigdy nie robiłem efektów do dem). ;)

Autor:  swinkamor12 [ sobota, 16 wrz 2017, 10:40 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

Nie obraź się, ale coś tu nie jest tak.
Skąd Ci wyszło 14,25 cykli na pixel?
Przy tej długości kodu powinno być więcej nawet jak liczysz dla wielu pixeli i wyciągasz średnią.
Kod tej długości nie zmieści się do cache - trzeba to też uwzględnić przy liczeniu cykli.
Czy masz gdzieś ten skoroszyt udostępniony?
Nie widzę tu też pobierania i zapisu danych - co też wpływa na prędkość.
Czy próbowałeś zastosować ten kod w praktyce?
Np zrobić jakiś program który wczyta i wyświetli np bmp ?

Autor:  Hextreme [ niedziela, 17 wrz 2017, 20:46 ]
Tytuł:  Re: O grafice planarnej Amigi słów kilka

swinkamor12 napisał(a):
Nie obraź się, ale coś tu nie jest tak.
Skąd Ci wyszło 14,25 cykli na pixel?
Przy tej długości kodu powinno być więcej nawet jak liczysz dla wielu pixeli i wyciągasz średnią.
Kod tej długości nie zmieści się do cache - trzeba to też uwzględnić przy liczeniu cykli.
Czy masz gdzieś ten skoroszyt udostępniony?
Nie widzę tu też pobierania i zapisu danych - co też wpływa na prędkość.
Czy próbowałeś zastosować ten kod w praktyce?
Np zrobić jakiś program który wczyta i wyświetli np bmp ?

Nie mogę w tej chwili testować tej procedury w praktyce, ale:
- każda operacja MOVE Rn,Rm, AND Rn,Rm, EOR Rn,Rm oraz EXG Rn zajmują przeciętnie po 2 takty procesora,
- instrukcja LSR.L #x,Dn, LSL.L #x,Dn oraz SWAP Dn zajmują po 4 takty.

Sumarycznie wychodzi 456 taktów na konwersję 32 pikseli, czyli 14,25 cykli na piksel.

Procedura ma służyć do pobierania danych z pamięci/rejestrów, konwersji i zwrócenia rezultatu w rejestrach.

Co zrobi dalej procedura nadrzędna zależy od niej. W każdym razie piksele są już skonwertowane.

Strona 1 z 2 Strefa czasowa: UTC + 1 [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/