I always found that to be an excellent motivating quote whenever I was feeling lazy.
One of the features I've been working on for 1. We've been using simply bilinear for too long, and it's time we had better quality zooms accelerated on the video card. Problem is, 3D pipelines aren't really set up for generic FIR filters, so the task is to convolute and mutate the traditional 4x4 kernel into something that a GPU understands.
To review, the 1D cubic interpolation filter used in VirtualDub is a 4-tap filter defined as follows: Applying this both horizontally and vertically gives the bicubic filter. The fact that you calculate the 2D filter as two 1D passes means that the 2D filter is separable; this reduces the number of effective taps for the 2D filter from 16 to 8.
We can do this on a GPU by doing the horizontal pass into a render target texture, then using that as the source for a vertical pass. As we will see, this is rather important on the lower-end 3D cards. Now, how many different problems did I encounter implementing this?
Let's start with the most powerful cards and work down: There really isn't any challenge to this one whatsoever, as you simply just bind the source texture to the first four texture stages, bind a filter LUT to the fifth texture stage, and multiply-add them all together in a simple PS1.
On top of that, you have fill rate that is obscene for this task so performance is essentially a non-issue. However, it chews up a ton of shader resources and burns a ton of clocks per pixel — I think the compiler said somewhere around 50 clocks. I'm not sure that's faster than a separable method and it chews up a lot of shader resources.
Did I mention it requires PS2.
It does compute a more precise filter, however. I might add a single-pass PS2. DX8 class card Pixel Shader 1. Now we run into a problem: Sadly, clamping to [0,1] occurs before blending and there is no way to do a 2X on the blend so we must throw away 1 LSB of the image and burn a pass doubling the image, bringing the total to five passes.
And no, I won't consider whacking the gamma ramp of the whole screen to avoid the last pass. DX7 class card Fixed function, two texture stages: Only two texture stages means we can only compute one tap at a time, since we need one of the stages for the filter LUT. This means that 9 passes are required, four for the horizontal filter, four for the vertical, and one to double the result.
As you may have guessed a GF2 or GF4Go doesn't have a whole lot of fill rate after dividing by nine and I have trouble getting this mode working at 30 fps above about x That sucks, because my development platform is a GF4Go I came up with an alternate way to heavily abuse the diffuse channel in order to do one tap per texture stage: Unfortunately, this turns out to be slower than the nine pass method.
I've been racking my brain trying to bring this one below nine passes, but I haven't come up with anything other than the method above that didn't work.
DX7 class card Fixed function, three texture stages: Yay for ATI and the third texture stage! Oh wait, this card doesn't support alternate framebuffer blending operations and thus can't subtract on blend.
On top of that, D3D lets us complement on input to a blending stage but not output, and we can't do the multiply-add until the final stage. How do we handle the negation? The result is the filtered pixel, shifted into the [0. The vertical pass is computed similarly, but with input complement on both passes to flip the result inverted to [0, 0.
The filtering operation is linear and can be commuted with the complement. The final pass then doubles the result with input complementation again to produce the correct output.
Rather fugly, but it does work.In MySQL , this option caused the server to behave as if the built-in InnoDB were not present, which enabled the InnoDB Plugin to be used instead. In MySQL , InnoDB is the default storage engine and InnoDB Plugin is not used.
This option was removed in MySQL How do I create a resume that will help me get a job as an online ESL teacher? This is a question that many people have asked so I thought this would be a good place to write a post.
Nov 22, · Get the latest international news and world events from Asia, Europe, the Middle East, and more. See world news photos and videos at kaja-net.com One-Stop Resume Posting Service.
Just one simple form makes your resume and job requirements instantly available to employers and recruiters on up to 85 of the very best career web sites. Old news 5/15/ News: Bicubic resampling. Long, lengthy rant^H^H^H^Hdiscourse on 3D to follow.. One of the features I've been working on for is the ability to do bicubic resampling in the video displays using hardware 3D support.
I share tips, tools and tutorials for blogging, making money online, productivity and social media.