Ian Mallett wrote:
On Sun, Mar 9, 2008 at 9:22 AM, Richard Goedeken
<SirRichard@xxxxxxxxxxxxxxxxxxxxxxx
<mailto:SirRichard@xxxxxxxxxxxxxxxxxxxxxxx>> wrote:
But be warned that it will be quite a bit
slower than a pure scaling function.
Why? 3D engines like OpenGL can do this operation for thousands of
quads each frame while maintaining a great framerate. Doing it for one
quad shouldn't be too hard.
Because I wrote vector assembly code in MMX to accelerate the smooth scaling function, plus I used some algorithmic simplifications. But this warping operation requires rasterization, which is a more complicated algorithm, and I was only planning to write it in C. The execution time would be proportional to the size of the transformed quad, so for a few small quads it would be fast. But scalar C code can't get close to the performance of hand-written vector code running on dedicated hardware (GPUs); not even MMX code can get close.
Richard