Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Rowan, posted on August 18, 2000

Image Description, by Rowan

These are a few screen shots from a winamp visualisation plugin I am working on. Of course, it all looks much nicer if you can see it running in real time and reacting to the music. The plugin combines 'traditional' 2d vector field transforms with some 3d alpha and motion blur effects (if a 3d accelerator is present).

There are separate optimised assembler code pathways for MMX, PentiumIII and Athlon processors. The Athlon code goes about twice as fast as the MMX code (~40fps at 640x480x32 bit on my A600). I haven't actually been able to test the PentiumIII code yet, as I don't actually have access to a if anyone out there with a P3 wants to test me :) Oh and i'm also looking into putting in a K6-2/3 pathway, as I think I can get a fair bit of extra performance over standard MMX.

Anyways, as soon as I know the P3 code path is working, I'll put the plugin up on the net for people to download.


Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
Timothy Barnes

August 18, 2000, 10:08 AM


pretty cool. Full of eyecandy.


August 18, 2000, 10:23 AM


I was just wondering how you mix the 2d-effects with the 3d-accelerated effects.. Do you software-render it to a texture and upload every frame or something ?


"Computers are useless. They can only give you answers." - Pablo Picasso


August 18, 2000, 12:38 PM

Hey, the bottom left looks like that cutscene in FF7 where cloud was going into the planet. ;)

Matt Gibson

August 18, 2000, 02:14 PM

Wow...VERY nice job!

I've been trying to do something like that for a while now, but I've been stuck, because I can't figure out how to
warp a 2-D image like you're doing...I know it's got something to do with tables...but my limited math skills ain't
helping much...Any help any of you could give me would be awesome.


Navreet Gill

August 18, 2000, 03:27 PM

Looks very cool, I appreciate that you are planning to do some K6-2/K6 III optimizations :).

Paul Holden

August 18, 2000, 10:00 PM

Matt - have a look at - there's a good article there about Warp Mapping. In my experience it's not so much the warping, but the generation of warp maps that's difficult (esp. if you want to resize them in real-time as I did with FunkyFX).


Rowan Wyborn

August 18, 2000, 10:57 PM


I've never seen any articles on how to do these types of effects, maybe i'll write one sometime :) Anyways, the basic warping algorithm i use is to just have a massive lookup table the size of the screen, which maps each pixel onto another 'source' pixel. So then every frame you apply this map to the current buffer, setting the colour of each pixel to the colour of its source pixel. Simple eh? :)

There are 2 difficult bits though:

1. Generating the lookup table: I get the polar coords of each pixel, modify them a bit (eg increasing radius and angle slightly would create a rotating, zooming effect), and then convert the modified polar coords back into linear coords to get the offset of the source pixel.

2. Mapping each pixel directly to another pixel looks very very ugly. When generating the lookup table, i store all values as 32.16 fixed point coordinates, and then when applying the lookup table, i use the fractional part to perform bi-linear interpolation on every pixel.

oh, and the thrid difficult bit i guess is that to get this all working in realtime you *have* to use at least MMX (SSE, 3dNow are even better), which means everything has to be done in assembler.

oh and the 3d effects vary from just overlaying 3d stuff on top of the 2d stuff to yes, actually using the 2d stuff as a texture every frame.



August 19, 2000, 08:17 AM

Winamp kicks ass, I sat my 4 yr old in front of it with the Whitecap effect cycling and she sat there for a long time

I like the top right and bottom left images best


August 21, 2000, 06:53 AM

Bottom right looks a bit like this Sonique plugin:

(Play it, the sites chosen screenshot is lame!)

Did this plugin play any part in your one?


This thread contains 9 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.