A.D.A. Amiga Demoscene Archive

  Welcome guest! Please register a new account or log in

  

  

  

log in with SceneID

  

Demos Amiga Demoscene Archive Forum / Coding compos / Rubber challenge!
 Page:  ««  1  2  3  
Author Message
rloaderro
Member
#1 - Posted: 17 May 2018 10:48 - Edited
Reply Quote
There is a named technique to do this effect on a generic video stream.
I got the name on the tip of my tongue but I can't seem to recall it. Something to do with sliced,tilt,shift.... video

It can make you immediately realize the basic ingredients of this effect.

1) A video
2) A per y-line selection from the different frames of the video to form the current frame.

Here is some newschool code for this effect

while( true )

for y = 0 to 256
for x = 0 to 320
output_buffer[y*320+x] = video[clamp(frame+y)][y*320+x]
next x
next y

display(output_buffer)
frame++

loop

... probably with bugs..
UnlkA0
Member
#2 - Posted: 23 May 2018 18:05
Reply Quote
Thanks for the explanation, now I understand it!

In the intros made by Slummy, Paradroid or Blueberry, do they fill the memory with all the steps of the rotating "normal" cube before displaying the twisting cube? Or do they refresh the cubes history with a new step at each new frame?

Were there some special tricks involved?
rloaderro
Member
#3 - Posted: 26 May 2018 13:30
Reply Quote
"Were there some special tricks involved?"

Yes, IIRC the three all had different approaches on how to store the cubes' historic images. I believe Slummy's approach had dynamic cache of the cube's spans in chip while a more extensive history was either stored in fast ram or were recalculated on demand if not in the cache (can't remember). If it is not already on his "Coding with balls" blog it would make a nice addition to the series.
Angry Retired Bastard
Member
#4 - Posted: 29 May 2018 11:52
Reply Quote
rloaderro:
I believe Slummy's approach had dynamic cache of the cube's spans in chip while a more extensive history was either stored in fast ram or were recalculated on demand if not in the cache (can't remember). If it is not already on his "Coding with balls" blog it would make a nice addition to the series.


No dynamic cache involved, just a plain pre-calculated pyramid of bitplane span data + a large history-buffer with per-scanline info.

Good idea on doing a write-up though! I'll put it on the list. (I just have to make sure I get time to code something new inbetween.. ) :)
UnlkA6
Member
#5 - Posted: 31 Oct 2018 14:07 - Edited
Reply Quote
I already posted on Pouet, but don't know if Amiga coders will read it so here I am :) (sorry for creating a new account, I lost my old one "UnlkA0" and can't remember the email address I used)

I succeed to code a rubber vector BUT I still have a "bug" when twisting it.

See at the bottom of this:
my rubber vector

I make a rotation of 1 degree at each line. If I make a rotation of 0.5 degrees, the problem disappears but the twisting is less impressive...

When watching Paradroid, Slummy or Blueberry's rubber vectors, they don'y seem to have this problem even though they have wide twisting.

Can you please give me some tips to avoid this awful problem?
Angry Retired Bastard
Member
#6 - Posted: 1 Nov 2018 21:46
Reply Quote
It's kinda hard to say for sure without seeing it in motion but it might just be that it's the "wrong" motion pattern. It's definitely possible to make stuff look bad / weird with my implementation as well :)
Try rotating by different amounts on the 3 axes and see if that gets you better results.
(Also, rotating by 1 whole degree each frame sounds a bit much, but then again: it should be ok for a small cube.)

Could also be interesting to test how it looks if you rotate by much larger values and see if it breaks down further.

Good luck! :)
UnlkA6
Member
#7 - Posted: 10 Nov 2018 21:22
Reply Quote
Thank you for your answer, it helped me a lot and now it works fine! I rotated each frame too much...
 Page:  ««  1  2  3  

  Please register a new account or log in to comment

  

  

  

 

A.D.A. Amiga Demoscene Archive, Version 3.0