17 September 2015, 09:42 | #1 |
Registered User
Join Date: Aug 2013
Location: france
Posts: 20
|
Help for code an effect called "Blitter Tornado"
Hi everybody,
as soon as I have time I start to code the Amiga. I use WinUAE (a big thank Toni for that. Verily this emulator is great !) I would like someone to explain to me how to do on A500 OCS an effect called "Blitter Tornado" ( invented by Virtual Dreams if I remember right ) [ Show youtube player ] I have the sources of this intro, I looked into but I understand nothing :-( thank you for advance. Best regards Powergoo |
17 September 2015, 10:22 | #2 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
|
17 September 2015, 16:01 | #3 | |
Code Kitten
Join Date: Aug 2015
Location: Montreal/Canadia
Age: 52
Posts: 1,178
|
Quote:
For those who have difficulties reading Javascript the overarching principle is the following: 1 - divide your screen in rectangular areas 2 - copy each area in a new screen, slightly shifted in a given direction 3 - in the new screen areas where no copied pixels are present, introduce random pixels 4 - display the new screen and swap old/new screen 5 - go to step 1 Code:
+---------------------+ +----------+----------+ | | | | | | CHEEKY KITTY | | CHEEKY | KITTY | | | | | | | | +---> +---------------------+ +-+ | | | | | | | WITTY BUNNY | | WITTY | BUNNY | | | | | | | | ----------------------+ -----------+----------+ | | +------------------------------------------------------------+ | +----------+ | | +-+---------+ +-----------N+--------- | | ^ | | | | CHEEKY |O| | | | | | | +-> | | |P| KITTY | | +----------+ | | +----------+Q| | +-> +----------+ +---------+ +---> ABCDEFGHIJKLM+--------- +-+ | | +---------+ | |RVWXYZ012345 | | <-+ | | | | |WITTY |S| | | | | | v | | |T| BUNNY | | -----------+-+ | ----------+U----------+ | ----------+ | | +-------------------------------------------------------------+ | +----------+N---------+ | | CHEEKY |O | | | |P KITTY | | | |Q | +-> ABCDEFGHIJKLM---------+ +----> Repeat! \(^o^)/ | RVWXYZ012345 |WITTY S | | T BUNNY | -----------U----------+ From this simple principle you can then add a lot of variations: copy only one of each pixel every time (alternating which are left/copied every frame), reuse the previous images in a second/third/fourth bitplane, vary the shifting directions over time, copy some bobs in the image from time to time and watch them deform, etc. the possible variations are infinite and I think there are still a lot of nice results yet to be seen. Last edited by ReadOnlyCat; 17 September 2015 at 16:15. Reason: Cleaned "graphics". :) |
|
17 September 2015, 17:02 | #4 | |
Registered User
Join Date: Aug 2013
Location: france
Posts: 20
|
Quote:
Nice explanation ReadOnlyCat I will try to code it now |
|
17 September 2015, 22:41 | #5 |
ex. demoscener "Bigmama"
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,643
|
@ReadOnlyCat
that's not completely correct - the new frame will not have any 'empty' areas (i.e. areas not copied to), because it's the new frame that is divided into a grid, becoming the destination of the block copies. The source of each block copy is the one that is slightly shifted. I know it's a minor difference, albeit an important one.. |
18 September 2015, 00:02 | #6 |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,108
|
I did this one in Sinclair BASIC a while ago - you can see the code in the video:
[ Show youtube player ] But I'll paste it here as it might be more readable! Code:
10 DIM buffer(2) BASE 0: FOR f=0 TO 1: WINDOW NEW buffer(f),0,-60,800,600: NEXT f: WINDOW HIDE buffer(1) 20 LET sz=32,ps=0,xs=800/sz,ys=600/sz: DIM a$(xs,ys) BASE 0: WINDOW buffer(0) 30 FOR y=298 TO 302: FOR x=284 TO 288: PLOT INK RND*256;x,y: NEXT x: NEXT y 40 LET shift=0: INC ps: FOR i=0 TO 4: LET shift=(shift SHL 1) | ((ps SHR i) & 1): NEXT i 50 FOR y=0 TO ys-1: FOR x=0 TO xs-1: WINDOW COPY buffer(0),x*sz+shift+(16-y)-x,y*sz+shift+x+(16-y),sz,sz TO buffer(1),x*sz+shift,y*sz+shift+16: NEXT x: NEXT y 60 WINDOW COPY buffer(1),0,0,800,600 TO buffer(0),0,0 70 WAIT SCREEN : GO TO 30 D. |
18 September 2015, 08:20 | #7 |
move.w #$4489,$dff07e
Join Date: Sep 2005
Location: Norfolk, UK
Age: 43
Posts: 2,351
|
@Dunny Nice
|
20 September 2015, 22:36 | #8 |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,108
|
Thanks. I'm not entirely happy with it - It's not centred on the screen and I'm at a loss as to how to fix that; it seems to only work if the random pixels are placed at a particular point on the screen no matter how I alter the algorithm to match!
D. |
21 September 2015, 00:56 | #9 |
Join Date: Jul 2008
Location: Sweden
Posts: 2,269
|
The vector field that defines the motion is the sum of a horizontal displacement of the columns, a vertical displacement of the rows, and a horizontal and vertical skewing.
The center of motion in this case will be where the displacements net zero, plus half the grid size, but you forget that you have a wider screen, so if you change the terms -x and x into -(x-3) and x-3, or maybe -(x-4) and x-4, for your source coordinates, then you should get the center of motion close to the center of your screen. |
21 September 2015, 04:16 | #10 | |
Code Kitten
Join Date: Aug 2015
Location: Montreal/Canadia
Age: 52
Posts: 1,178
|
Quote:
I did not realize the random pixels are not needed if the copied areas sources are chosen to cover all pixels of the destination. (Except at the "center" obviously where new input is needed.) I guess what I described could be considered a variation where additional information is introduced somewhere else than at the "center" of the transformation. I wonder if it would produce a nice result. |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
"Reminder "Lincs Amiga User Group aka "LAG" Meet Sat 5th of January 2013" | rockape | News | 4 | 30 January 2013 00:06 |
Looking for a game called "Search" | intelli78 | request.Old Rare Games | 2 | 03 January 2013 19:57 |
One "hole" in each scan line to turn off blitter nasty? | mc6809e | Coders. Asm / Hardware | 1 | 03 July 2012 12:12 |
So called "History of Videogames" on Times "Month" CD | Antiriad | Retrogaming General Discussion | 11 | 26 May 2009 15:41 |
Search info about a strange game called "Roboter" | Daff | request.Old Rare Games | 3 | 01 September 2007 20:09 |
|
|