1. Biorę sobie okrąg i obliczam powiedzmy 64 (albo 32) pozycje plotów z niego i zapisuję pozycje dotów mieszczące się na ekranie - to daje mi najmniejsze możliwe przesunięcie o kąt 360/64 czyli około 6 stopni.
Zapisanie pozycji tych plotów to raptem 128 bajtów albo można zapisać już przeliczone ich pozycje jako adresy na bitmapie i pozycje bitu do nich jako trzeci bajt co da 192 bajty na okrąg.
2. Przesuwam mój okrąg do tylu w osi Z i powracam do punktu 1.
W taki sposób robię 9 razy i mam pozycje dla 10ciu okręgów dla 640 dotów co raptem daje mi zajęcie 1280 lub 1920 bajtów.
Po tak zapisanej trajektorii mogę przesuwać moje wybrane pointy sprawiając wrażenie 3d tunelu i dodatkowo:
Biorę sobie przykładowo jakiś wycinek funkcji f(x) = 1/x i:
(Zapisanie wartości może zająć powiedzmy 256bajtów lub także jako offsety na bitmapie osobno dla X i osobno dla Y)
Dodając wartości funkcji do Y (pointów) – wyginam tunel do góry w pionie
Odejmując od Y – wyginam tunel w dół w pionie
Dodając do X wyginam tunel w prawo obserwatora
Odejmując od Y wyginam tunel w lewo
Dalej jeszcze dodając w X i odejmując w Y wyginam tunel w prawo dół
Etcetera
Przesuwając „pozycję tunelu we funkcji” kontroluję wielkość wygięcia tunelu.
Pozostaje tylko zapalać i gasić wybrane pointy i przesuwać je po trajektorii jakiejś funkcji.
Poprawcie mnie gdzie się mylę bo jak jest dobrze to zapewne pierwszy na to nie wpadłem.
Idea skonstruowania dot tunelu:
wegi, znajdź sobie platformę, na której będziesz mógł prototypować efekty, np. Processing, czy C++ z czymś co postawi framebuffer, ja używam SDL + QuickCG i mam tam absolutnie wszystko, czego potrzeba. Prototypowanie efektów zdecydowanie oszczędza czas - możesz szybko sprawdzić swoje idee, i uniknąć bugów przy pisaniu na 6502.
Jak coś, to napisz, pomogę
Jak coś, to napisz, pomogę
Odkopałem jakieś stare źródło dot tunelu jakie kiedyś robiłem. Nie pamiętam, która to wersja bo było ich kilka w różnych technologiach. Ten to "ciurkacz" z tablicami przeliczonymi w jakimś BASICu (chyba) i datowany pewnie na 94/95. Całość przekonwertowana na pecetowy TASS KM'a. Wystarczy pewnie skompilować plik !TUNNEL.ASS a potem pewnie uruchomić pod $0810 jeśli pamiętam.
- Załączniki
-
- dot_tunnel_kmeg_95.ZIP
- dot tunnel kmeg 1995
- (27.09 KiB) Pobrany 514 razy