Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Wektory  (Przeczytany 1353 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Jacek31

  • Gość
Wektory
« Odpowiedź #30 dnia: 13 Października 2010, 17:33 »
Tzn. ja akurat nie jestem zadnym szpecem od robienia grafiki na C64, ale tak na logike biorac problem, to tak:
Najpierw nalezalo by rozebrac silnik graficzny pod katem pamieciozernosci i nakladow obliczeniowych poszczegolnych jego elementow. Jezeli teraz wezmiemy pod lupe ten ulubiony teksturowany na drewniana skrzynie szescian, zbudowany z trojkatow, to mamy 12 poligonow skladajacych sie z 3 wspolrzednych, czyli 36 wektorow do obliczenia/ przeliczenia. Tekstura zeby miala jakis sens musi miec rozmiar 64x64 pixele czyli 4096 punktow do przeliczenia/sciane (maksymalnie), z korekta perspektywy dochodza do tego dodatkowe operacje dzielenia/pixel (ale tu mozna sprytnie oszukiwac akurat). juz tu widac ze obliczenia na wektorach, czyli cala geometria w przestrzeni 3D to zasadniczo maly ulamek obliczen, natomiast teksturowanie jest strasznie czasochlonne, nie dla tego ze jest skomplikowane, ale ze trzeba przeliczyc mase elementow.
Ja bym wiec z C64 zrobil Vertrx Shader, a z stacji dyskow Pixel Shader.
No dobra ale jak w stacji zmiescic teksture i program? wystarczy tylko program, ktory policzy na podstawie przeslanych wspolrzednych 3D po transformacjach (np. obrot, skalowanie itd.) co trzeba wysle do C64, adres pixela w teksturze ktory trzeba skopiowac i adres pamieci obrazu gdzie go trzeba skopiowac.
Oczywiscie ja to uproscilem, ale powinno sie to tak dac.

Klax__

  • Gość
Wektory
« Odpowiedź #31 dnia: 13 Października 2010, 18:23 »
                   
kisiel napisal:
niestety to bedzie \"zrzut kompo\"... bo kto ma 3 stacje, trzeba by sie zrzucic \"Wink\" Moze lepiej zamiast 1541, uzyc czegos innego ?


Niektorzy maja 3 stacje  \"Cool\" A czy dodatkowa pamiec (o ktorej wczesniej wspomnialem) w stacji nie bylaby pomocna? Tu sa chyba wektorki na stacji liczone http://noname.c64.org/csdb/release/?id=820 \"Smile\"

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Wektory
« Odpowiedź #32 dnia: 13 Października 2010, 19:19 »
Klax tak jak wszystko, najpierw to trzeba miec...\"Wink\"
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Wektory
« Odpowiedź #33 dnia: 13 Października 2010, 19:26 »
sorry ale dla mnie te wykorzystanie mocy drive-a, aby podniesc znaczaco wydajnosc to mzonki (shadery  heheheh). Na poczatku roku Wegi sie w to bawil http://noname.c64.org/csdb/release/?id=87341,
warto uruchomic i poczytac komentarze. Niezbyt wysublimowania wektorowka, a nawet nie osiaga pelnej plynnosci - gdzie tu mowa o srodowisku 3D.
Oczywiscie jako ciekawostka to jest to ok, ale glownie cala rzecz \"przepada\" przy synchronizacji komunikacji, obsluga tego, to wlasnie waskie gardlo - ktore w rezultacie daje gorsze efekty niz dobra kalkulacja wektorow na samym c64 (Andropolis).  \"Crying

fenek__

  • Gość
Wektory
« Odpowiedź #34 dnia: 14 Października 2010, 07:22 »
Hmm, nie pamietam juz jak to dokladnie bylo, ale jako ciekawostka
stacje mozna wykorzystac do generowania adresu jmp $xxxx.
Bity 7 i 6 $dd00 to chyba byl stan ze stacji.
W c64 byl kod rozdzielony na adresy $000x, $400x, $800x, $c00x
(jak sie korzysta z $000x to dwa banki VICa w plecy 0 i 1) i wykonuje
sie w krotkich liniach po 2 rastry (generuje tez te linie)i konczy instrukcja jmp ($ddff).
Mlodszy bajt pobierany jest z $ddff (chyba to nie bylo stabilne)
a starszy z $dd00. Stacja generuje adresy procedur ktore maja byc
wywolane przez c64 modyfikujac bity 7 i 6 $dd00 i generuje ten starszy bajt kodu.
Cos podobnego do jmp ($d011) z synchronizacja do lini rastra,
mlodszy bajt z $d011 i starszy z $d012.

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Wektory
« Odpowiedź #35 dnia: 14 Października 2010, 08:22 »
Oczywiscie ciekawe \"kruczki\", ja bym tam sie nawet nie bawil w jmp ($ddff) tylko wlasnie jmp($dd00) - czyli starszy bajt bylby w $dd01 [ Data Port B (User Port, RS232)] co by za bardzo nie komplikowalo, za to jmp juz bylby bezproblemowy -> kazdy $xx00,$xx40,$xx80,$xxc0.
Ale co masz na mysli :                    
fenek napisal:
) i wykonuje
sie w krotkich liniach po 2 rastry (generuje tez te linie)...


Teoretycznie tez jest w CIA,  Serial Port Interrupt.

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Wektory
« Odpowiedź #36 dnia: 14 Października 2010, 08:45 »
                   
skull napisal:
sorry ale dla mnie te wykorzystanie mocy drive-a, aby podniesc znaczaco wydajnosc to mzonki (shadery  heheheh). Na poczatku roku Wegi sie w to bawil http://noname.c64.org/csdb/release/?id=87341,
warto uruchomic i poczytac komentarze. Niezbyt wysublimowania wektorowka, a nawet nie osiaga pelnej plynnosci - gdzie tu mowa o srodowisku 3D.
Oczywiscie jako ciekawostka to jest to ok, ale glownie cala rzecz \"przepada\" przy synchronizacji komunikacji, obsluga tego, to wlasnie waskie gardlo - ktore w rezultacie daje gorsze efekty niz dobra kalkulacja wektorow na samym c64 (Andropolis).  \"Crying

Co do mozliwosci stacja-c64 warto zaznajomic sie z realtime demko by Victor/ESM, na ktoryms northcie to bylo.
Co do waskiego gardla, istnieje cos takiego w komciu jak USERPORT i sprzecik CIA 6526 ktory umozliwia sprzetowe potwierdzenie odbioru. Teoretycznie mozna przesylac tym portem 80kB/s, nie uwazam to za waskie gardlo. Ja w moim komciu mam wersje bursta na 10 kabli, jedyny program co uzywal ten patent to bodaj burstnibbler oraz jakis system load (nie pamietam). Standard 8 kabelkow, jest dziwny bo trzeba jeszcze potwierdzac softwarowo odbior / nadanie... lub robic to synchronicznie.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Wektory
« Odpowiedź #37 dnia: 14 Października 2010, 09:48 »
                   
kisiel napisal:
                   
skull napisal:
sorry ale dla mnie te wykorzystanie mocy drive-a, aby podniesc znaczaco wydajnosc to mzonki (shadery  heheheh). Na poczatku roku Wegi sie w to bawil http://noname.c64.org/csdb/release/?id=87341,
warto uruchomic i poczytac komentarze. Niezbyt wysublimowania wektorowka, a nawet nie osiaga pelnej plynnosci - gdzie tu mowa o srodowisku 3D.
Oczywiscie jako ciekawostka to jest to ok, ale glownie cala rzecz \"przepada\" przy synchronizacji komunikacji, obsluga tego, to wlasnie waskie gardlo - ktore w rezultacie daje gorsze efekty niz dobra kalkulacja wektorow na samym c64 (Andropolis).  \"Crying

Co do mozliwosci stacja-c64 warto zaznajomic sie z realtime demko by Victor/ESM, na ktoryms northcie to bylo.
Co do waskiego gardla, istnieje cos takiego w komciu jak USERPORT i sprzecik CIA 6526 ktory umozliwia sprzetowe potwierdzenie odbioru. Teoretycznie mozna przesylac tym portem 80kB/s, nie uwazam to za waskie gardlo. Ja w moim komciu mam wersje bursta na 10 kabli, jedyny program co uzywal ten patent to bodaj burstnibbler oraz jakis system load (nie pamietam). Standard 8 kabelkow, jest dziwny bo trzeba jeszcze potwierdzac softwarowo odbior / nadanie... lub robic to synchronicznie.

Kisiel mowisz o szybkosci transmisji - co w tym przypadku pelni role drugorzedna: moze byc i 1MBajt/s, najwazniejsza jest obsluga wyslij-odbierz, a to sie wiaze albo z opoznieniami (czekaniem) i po jednej i po drugiej stronie (a im test czestszy tym wlasnie zabiera wiecej mocy proca im zadszy tym wieksze sa czasy oczekiwania)- wlasnie wtedy \"cala para w gwizdek idzie\".
Nie mowie tez ze taki uklad nie przyspiesza obliczen - niestety jest to nieduzo wiecej.

Brakuje sprzetowego bufora danych.

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Wektory
« Odpowiedź #38 dnia: 14 Października 2010, 00:00 »
hmm a wiesz jak dziala realtime victora? c64 rysuje ramke i nie czeka na stacje bo stacja i tak szybciej przeliczy transformacje niz komcio wyrysuje ja na ekranie. Szybkosc portu nie ma znaczenia, bo to przekazywanie danych dla kilku punktow. Burst ma jedna zasadnicza zalete nie trzeba go cyklowac wiec mozna miec procki o roznych predkosciach i beda one dzialac bez bledow.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Wektory
« Odpowiedź #39 dnia: 14 Października 2010, 14:02 »
                   
kisiel napisal:
... c64 rysuje ramke i nie czeka na stacje ...

i to jest caly problem - NIE CZEKAC

fenek__

  • Gość
Wektory
« Odpowiedź #40 dnia: 14 Października 2010, 15:39 »
                   
skull napisal:
                   
fenek napisal:
) i wykonuje
sie w krotkich liniach po 2 rastry (generuje tez te linie)...

No jak zwykle moje skroty myslowe o ktorych mysle a zapominam opisac.
To mialo mniej-wiecej znaczyc, ze bylyby to maksymalnie 4 rozne porcje kodu do wykorzystania w efekcie ktory caly czas wywoluje na ekranie
krotkie linie. Taki kod zajmowal dwie linie rastra i te kombinacje ze skokiem i uzyciem stacji zastosowane sa z powodu braku cykli w rastrach na generowanie adresu kodu dla kolejnej lini ekranu. Uff...

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Wektory
« Odpowiedź #41 dnia: 14 Października 2010, 16:08 »
                   
fenek napisal:
                   
skull napisal:
                   
fenek napisal:
) i wykonuje
sie w krotkich liniach po 2 rastry (generuje tez te linie)...

No jak zwykle moje skroty myslowe o ktorych mysle a zapominam opisac.
To mialo mniej-wiecej znaczyc, ze bylyby to maksymalnie 4 rozne porcje kodu do wykorzystania w efekcie ktory caly czas wywoluje na ekranie
krotkie linie. Taki kod zajmowal dwie linie rastra i te kombinacje ze skokiem i uzyciem stacji zastosowane sa z powodu braku cykli w rastrach na generowanie adresu kodu dla kolejnej lini ekranu. Uff...


Hehe jeszcze bardziej zagmatwales - ale domyslam sie, ze chodzi o samo wyjscie z irq (-s) (czyli z tych krotkich linii-efektow), ktore \"przy okazji\" sprawdza czy \"doszlo\" cos ze stacji.
Jesli cos doszlo, to wektor skoku jmp($xxxx) skierowany jest na procedurke odbioru danych ze stacji [np. jmp($c0xx)], a gdy nie, to  skierowany na kontynuacje samego wyjscie z przerwania [np. jmp($80xx)]. Z tym, ze to \"przekierowanie\" wektora ustawia sama stacja poprzez rejestr $1800($dd00)  
- to o to chodzi ??

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Wektory
« Odpowiedź #42 dnia: 14 Października 2010, 16:47 »
Skull to ty demo piszesz?
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Wektory
« Odpowiedź #43 dnia: 14 Października 2010, 17:46 »
a bo co ? nie wolno ?  \"Cool\"

fenek__

  • Gość
Wektory
« Odpowiedź #44 dnia: 14 Października 2010, 19:38 »
Nom, rozumiemy sie, oto chodzi. \"Smile\"
Umiesz to sensownie i zrozumiale opisac, tak ze jak czytam to nawet
sam rozumiem \"Smile\" o co mi chodzi.