Super Turrican II
category: general [glöplog]
you should play mickey mania on genesis for some silly effects.
features a bumpmapped twistbar tower with a fire under it and the enemies are spikeballs
and some mode7 like things with an odd elg
features a bumpmapped twistbar tower with a fire under it and the enemies are spikeballs
and some mode7 like things with an odd elg
chock, if bilinear interpolation really attenuated frequencies present in the original signal (those which are, as i said, below the original nyqvist, nice borders between pixels don't count), how come that in case of a 1:1 pixel/texel mapping you get the original image? Where's the filtering?
ep, getting a 100% perfect timing is impossible because of Windows' architecture - and every way around this would possibly break a few things. But if you make sure you don't overload any of the components (CPU, GPU, Bus, VRAM, etc) and pre-warm every cache and your process' virtual address range, it goes pretty smooth. At least on your own hardware, that is.
ep, getting a 100% perfect timing is impossible because of Windows' architecture - and every way around this would possibly break a few things. But if you make sure you don't overload any of the components (CPU, GPU, Bus, VRAM, etc) and pre-warm every cache and your process' virtual address range, it goes pretty smooth. At least on your own hardware, that is.
kb: No, in case of a 1:1 pixel/texel mapping you don't get the original image. You can see this by applying bilinear filtering again and again (and thus multiplying the attenuation of the filter). I mean move the image 1/2 pixel, and then render the result again 1/2 pixel moved (maybe the other direction) and repeat that again and again. You will eventually get a one-color image, as all the frequencies except 0 will be filtered away. This wouldn't happen if the origianl frequencies stayed intact in every step. I'm too lazy to code that, but it really is like that (or I'm completely off right now, which also isn't that impossible :-)
Consider the 1-D picture:
0 0 1 1 0 0
1st linear filtering
0 0.5 1 0.5 0 0
2nd linear filtering
0 0.25 0.75 0.75 0.25 0
3rd linear filtering
0.125 0.5 0.75 0.5 0.125 0
and so on, it will eventually be.. erm...
0.3 0.3 0.3 0.3 0.3 0.3 or something close to that :-)
Consider the 1-D picture:
0 0 1 1 0 0
1st linear filtering
0 0.5 1 0.5 0 0
2nd linear filtering
0 0.25 0.75 0.75 0.25 0
3rd linear filtering
0.125 0.5 0.75 0.5 0.125 0
and so on, it will eventually be.. erm...
0.3 0.3 0.3 0.3 0.3 0.3 or something close to that :-)
blur! \o/
So, therefore the proper way to do smooth scrolling would be to move the original image over by fractional pixels, filter, display, then go back and move the ORIGINAL image, filter and display it, go back and move the original again, etc etc.
Although what chock describes sounds like an interesting blur effect.
Although what chock describes sounds like an interesting blur effect.
chock: You ARE completely off, that's why you had to weasel around my question so much. With 1:1 pixel mapping i meant pixel==texel, not inbetween.
What you're describing is a box filter. Which is, yes, what happens exactly when you do what you do. In case of 1/2 pixel displacement, bilinear interpolation acts as box filter, repeated box filtering leads to higher order filters (as you nicely proved by writing that scaled version of pascal's triangle down ;), and now it's up to the reader to make an easy and fast RTT blur implementation with it. :)
But that's not the point. If you had said from the beginning: "depending on the phase difference of original and sampled signal, certain frequencies will get dampened" you'd been right, but you described linear INTERPOLATION (which conceptually leaves the original samples and thus all original information intact) and made the reader think that it would always reduce high frequency content, which it doesn't. In fact its filtering characteristics depend only on the phase difference (what your parameter 'b' was in your first example) which is true of every kind of information.
Ironically even with perfect interpolation that acts as brick-wall filter at the original data's nyqvist frequency, scrolling will flicker. But that's only because of the various shortcomings of the sampling theorem as soon as we have to deal with real-world signals, and way out of the scope of this thread :)
But as I said, high-frequency content sucks It'll get horribly ugly anyway as soon as anyone tries to run your scroller at a different resolution or if your chosen resolution is not the native one of the display device. Or if your refresh rate is different. If we just see a rendered image on screen as it is - a sampled representation of an arbitrary moment of our virtual world - we'll get much further than with "OMG OLD5K00L FTW!!11" ;)
What you're describing is a box filter. Which is, yes, what happens exactly when you do what you do. In case of 1/2 pixel displacement, bilinear interpolation acts as box filter, repeated box filtering leads to higher order filters (as you nicely proved by writing that scaled version of pascal's triangle down ;), and now it's up to the reader to make an easy and fast RTT blur implementation with it. :)
But that's not the point. If you had said from the beginning: "depending on the phase difference of original and sampled signal, certain frequencies will get dampened" you'd been right, but you described linear INTERPOLATION (which conceptually leaves the original samples and thus all original information intact) and made the reader think that it would always reduce high frequency content, which it doesn't. In fact its filtering characteristics depend only on the phase difference (what your parameter 'b' was in your first example) which is true of every kind of information.
Ironically even with perfect interpolation that acts as brick-wall filter at the original data's nyqvist frequency, scrolling will flicker. But that's only because of the various shortcomings of the sampling theorem as soon as we have to deal with real-world signals, and way out of the scope of this thread :)
But as I said, high-frequency content sucks It'll get horribly ugly anyway as soon as anyone tries to run your scroller at a different resolution or if your chosen resolution is not the native one of the display device. Or if your refresh rate is different. If we just see a rendered image on screen as it is - a sampled representation of an arbitrary moment of our virtual world - we'll get much further than with "OMG OLD5K00L FTW!!11" ;)
"...of every kind of INTERPOLATION" i meant, sorry.
Back to topic: Super Turrican II was a freaking great game and responsible for a two weeks delay in this prod's release schedule.
For any further inquiries, here's a girl on a donkey:
Back to topic: Super Turrican II was a freaking great game and responsible for a two weeks delay in this prod's release schedule.
For any further inquiries, here's a girl on a donkey:
Turrican? I hate those newschool games. I'm off for a round of dig dug.
That donkey makes me kinda horny, though, can't really decide what to do now...
That donkey makes me kinda horny, though, can't really decide what to do now...