Demo sztuka

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

Demo sztuka

#1 Post autor: wegi »

Oglądałem sobie dema Samaru i kiedyś nie zwracałem na to uwagi, ale widzę od kranczu poprzez pasztet i opium dużo jest zsynchronizowane z muzyką - opium to kilka razy obejrzałem i mam pytanie do Prezesa - nakreśl mi ideę obrotów w 3d z zoomingiem i morphingiem dla tylu dotów jak można prosić oraz:

Ile dotów można w jednej ramce postawić ?

Czy czyszczenie pamięci jest zerowaniem całego bufora, czy bardziej opłaca się gasić ploty?

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#2 Post autor: Nitro »

Co do czyszczenia, to oczywiście, że opłaca się pojedynczo ploty gasić, jak stawiamy punkty, to modyfikujemy równocześnie kasujący speedcode sta $xxxx.

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

#3 Post autor: wegi »

Zielony jestem w tym ale czy też nie robisz przez eor, że raz postawisz a raz zgasisz, czy po prostu 8 dotów od razu gasisz??

Ile cykli na postawienie plota zużywasz??

Jak widzę, że Zielok miał 1024 to chyba szybko się da??

Awatar użytkownika
prezes
Posty: 213
Rejestracja: 15 wrz 2008, 17:40

#4 Post autor: prezes »

obroty obrotom nie rowne. mozesz obracac wokol 3 osi, wokol 2 i wokol 1 - im mniej tym obroty szybsze, mniej obliczen. najwiecej plotow w ramce mozna zmiescic dla 1 osi kiedy zmienia sie tylko jedna wspolrzedna - wtedy lecimy po petli 256 pozycji i jako bonus mozna wykorzystac sprajty. tylko ze IMHO to juz jest takie sciemnione 3d... :D

gaszenie oczywiscie przypisane do plota - lda#$00 sta$xxxx sta$yyyy ...

jesli mowa o opium - nie pamietam ile tam bylo cykli na plot - te ploty sa duzo starsze niz samo demo. na norcie 7 pokazalem kulke z plotow 3d - tam bylo ich wiecej
http://noname.c64.org/csdb/release/?id=8807

a dziela zieloka jeszcze nie widzialem, nie wypowiadam sie..

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

#5 Post autor: wegi »

Dobra, ale trajektorie były wcześniej przeliczone i w ramie były już przeliczone współrzędne, czy każdy dot z osobna liczony co wydaje się niemożliwe, czy policzony np. jeden i jego przesunięcie było jakimś współczynnikiem dla pozostałych?

No i ten morphing, zooming - no zdradź trochę więcej - idea...
Bo kapitalnie to wygląda w opium - wówczas Butt-man:)

No a kuleczka też bardzo ładna gratulacje :)

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#6 Post autor: Nitro »

Ile cykli na postawienie plota zużywasz??
Nie mam się czym chwalić, wychodzi coś koło 60'u z kasowaniem na pełnoekranowy.

Awatar użytkownika
prezes
Posty: 213
Rejestracja: 15 wrz 2008, 17:40

#7 Post autor: prezes »

Trajektorie są ofcoz realitime - prekalk nie zmieściłby sie w RAMie:
128 plotów (jak dobrze pamietam) x 25Hz x ~20s x 3(xyz) =~ 200KB

Morphing między dwoma obiektami działa tak:
dla każdego punktu dla wszystkich 3 współrzędnych jest liczona 2-bajtowa delta ze znakiem:
Delta x = (wsp. x obiektu#2 - wsp. x obiektu#1) / ilosc klatek przejscia

Delty są policzone w tle w czasie kiedy kręci się obiekt bez morphingu. W fazie przejścia w każdej klatce przed policzeniem obrotów do współrzędnej dodajesz delte i przesuwasz punkt - z przeniesieniem, zapisując w RAMie młodszy bajt do następnej iteracji:
X1lo X1hi = X0lo X0hi + DeltaXlo DeltaXhi
X1lo - zapisujesz,
X1hi - nowa wsp. punktu,
X0lo - zapisany z poprzedniej iteracji,
X0hi - stara wsp.

Powtarzasz tyle razy ile jest klatek przejściowych, aż dostaniesz obiekt wyjściowy.

Cykli na punkt jest napewno wiecej niz 60 - przy morphingu trzeba policzyć wsp. Z którą normalnie się pomija. No i dochodzi cieniowanie w multikolorze.

k.

#8 Post autor: k. »

wegi a co za problem dołożyć ramu :)

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

#9 Post autor: wegi »

Dzekuję bardzo Prezes i Nitro - jest to dobry kawałek koderskiej roboty :)

zielok
Posty: 438
Rejestracja: 07 lis 2008, 21:23
Kontakt:

#10 Post autor: zielok »

W "12 years later" ekran czyściłem przez zerowanie bufora czyli

lda #$00
sta $xxxx
sta $xxxx+1
sta $xxxx+2
itd.

Przy ilości 1024 plot było to szybsze niż kasowanie plotów (na 16x16char)

Przy fullscrenie szybsze może być czyszczenie plotów.

ODPOWIEDZ