W sumie jeszcze tego nawet nie zaczalem kodowac ale, ze w sumie nigdy nie skonczylem swojej wektorowki (w realtimie) na c64 to stwierdzilem, ze moze warto nadrobic zaleglosci.
A wiec chcialbym sie dowiedziec czy tak ja to sobie rozplanowalem ma sens czy gdzie jakis fatalny blad popelniam lub ewentualnie mozna to zrobic lepiej.
Zalozenia - wektory na znakach (czyli 128px x 128px)
1) Robie tablice o wielkosci 256 bajtow na SIN i COS - Oczywiscie uwzgleniam tu 360 stopni, tablice do perspective projection (takze o wielkosci 256 bajtow)
2) wartosci punktow i katy obroty wokol oi trzymam w jednym bajcie (oczywiscie na kazda wartosc)
3) wykonuje dzialanie czyli
punkt*cos,x - kazda z wartosci jest 8 bitowa wynik uzyskuje 16 bitowy
punkt*sin,x - tak samo jak wyzej
otrzymane wartosci 16 bitowe odejmuje (lub dodaje w zaleznosci od tego wokol ktorej robie osi)
4) otrzymana wartosc zamieniam na 8 bitowa (aby moc robic nastepne przeksztalcenia mnozacz dwie 8 bitowe wartosci) - i tutaj sie zastanawiam czy nie strace na dokladnosci
5) obracam wokol osi ktore potrzbuje stosujac punkt 3 i 4
6) nastepnie robie perspective projection stosujac tablice wykonana w punkcie 1 mnozac punkt X (czy Y). W tym przypadku znowu mnoze dwie wartosci 8 bitowe i biore tylko wyzszy bajt.
Zrobilem sobie te obliczenia w Excelu (aby sprawdzic czy nie bedzie za duzych zaokraglen) i wynik wyglada na zadawalajacy (minimalne odchylenia)
Resumujac chcialbym wiedziec zanim zaczne to pisac na c64 czy tak jak chce to zrobic jest ok? A moze da sie zrobic to lepiej?