harold

Members
  • Content count

    366
  • Joined

  • Last visited

Community Reputation

0

About harold

  • Birthday 04/19/1990

Profile Information

  • Gender
    Not Telling
  • Location
    Netherlands
  • Interests
    Programming (asm, C, C++, C#), gaming (mainly Guild Wars)
  1. Ok thanks. Putting it in OnSetRenderInfo.
  2. Isn't still a bit of a hack?
  3. "Content Aware Resize" is a little effect I've written in a couple of hours that uses Seam Carving to make an image less wide in a way that somewhat respects the content. It probably shouldn't really be an effect because it effectively changes the size of the picture, but there is little choice.. so it just leaves some transparent space, which works well enough. As you can see in the source, I use an ugly hack to render only once. It's fundamentally impossible to render it in parts - it has to calculate the globally least-energy seam, which means it has to look at the entire image all at once (well the entire selection really, but I had no idea how to do that). Once it knows the seam it could theoretically build the output row by row, I suppose. Is there a good way to render just once, preferrably in a way that handles rectangular selections? edit: I know the code is lame and I recalculate far too much for every seam, I'll fix that later.. ContentAwareResize.zip
  4. Clicking it leads to http://searchale[link intentionally broken]com/
  5. OpenCL automatically comes with the graphics driver in nvidia's case (very recently only, older drivers offer no support) ATI and Intel etc seem to be running behind, wikipedia says ATI has their OpenCL support in beta and that they would supposedly support R700/R800 GPUs and SSE3 capable CPUs So that's pretty much a lose. Can we still use it in effects though?
  6. It can fall back to CPU though I'm not sure what ATI is doing with OpenCL atm, do their drivers support it already? If I could get my hands on their OpenCL.dll then I could try to make it work edit: I don't have an ATI gpu so I couldn't test it, oh well.. btw making an actual effect from this is not very easy - is there an easy way to get the entire render region instead of those small 2pixel-high rectangles?
  7. Hm ok box.net requires you to sign up and I was feeling lazy so here is a mediafire link: http://www.mediafire.com/?jomqm3mnikt
  8. Lol sorry, which site do you want me to put it on?
  9. So we were recently given OpenCL, and nVidia was so nice as to provide both a 32bit and a 64bit version. Since GPU programming is cool I made a nice wrapper for it (currently unfinished but (and this is the best part) workable) in C#, and did a couple of tests with it. I found out that (on at least my GPU) there is a smallish limit on the output size, which is a shame, but we could of course come up with some clever tiling scheme. A 1024x1024 mandelbrot render with 250 max iterations takes approximately 23 milliseconds - depending of course on what part you are looking at and your GPU (GTX260 in my case) etc etc, but 23 milliseconds is so incredibly fast that none of the details really matter here. Copying the result back to normal ram took an other 20 milliseconds which is pretty much instantaneously. These kinds of speed won't be beaten by your average CPU. Compiling the OpenCL code takes a while, but this only needs to be done once per session. The wrapper is written in pure C# and works in both 32bit and 64bit modes (although it currently only supports nvidia GPU's and requires their OpenCL capable drivers), and will be released into the public domain as soon as I feel comfortable with it (ironed out some bugs and added some more functionality etc) for now you can link to the binary in your project (but you really shouldn't as it is not finished) and edit the source as long as you don't make it available (but honestly, what's going to happen if you do it anyway?) The reason I'm posting here is that this wrapper may be interesting to plugin writers, at least until Paint.NET exposes something like DirectCompute/OpenCL itself (any plans, Rick?) In the mean time you can all get a copy of the temporary wrapper + test project (mandelbrot) here (mediafire) (too big to upload it to the forum) And yes, most of the error codes are translated to throw new Exception() which sucks, it is not finished. ps: sorry if this is the wrong forum small status update: it looks to me like there is a bug in clEnqueueNDRangeKernel when called with a dimension of 2 (haven't tested 3), it throws a division by zero exception seemingly for no reason (I gave it reasonable arguments), so for now I'm cheating and using code like int id = get_global_id(0); int ix = id % pxwidth; int iy = id / pxwidth; Which works fine but probably costs some extra time (well that's an extra % and / you normally wouldn't have, and since their argument is not a constant they can not be free) It looks like a hack and that's exactly what it is, but until I find out where that odd division by zero is coming from you/I won't be able to use multidimensional kernels.
  10. Cool Would you mind giving me a quick overview of the changes that were necessary to make it work again?
  11. If you have the specs of the format I might be able to make a plugin for them.
  12. This thread is a bit old, but hey, my internet just got a little boost: Upload is a little slow.. Will have 80mbit/s (download, new upload speed is unknown) later this year!
  13. Actually, I would. Sorry! But I pm-ed it to you.
  14. Well feel free to remove it, you're the admin after all
  15. I tried writing a FileType plugin for it, but I got that darned "WindowsBase version 3.0.0.0" error I'll get back to you after I fix that edit: Ok here you go, I couldn't find any way to make PDN use this plugin for 32bit BMP's other than giving it a different extension, so you'll have to rename your BMP's to bmpx if you want to open them with this plugin. It's not very well tested, but it worked with the 32bit BMP's from visual studio - at least for as much as I tested. It shouldn't work on any other type of bmp. Edit: Removed zip. Please post in Plugins section instead.