Home Technical Talk

ratGPU : OpenCL raytracing renderer

2

Replies

  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Uploaded the 0.4.3 with some minor bugs corrected and Ubuntu 10(.04/.10) support.
    My first program for Ubuntu, yay!
  • Ben Apuna
    Options
    Offline / Send Message
    Linux support, nice! :)

    EDIT:

    I'm also really happy about the stand alone.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Here ya go: 0.4.4 with improved speed and openSUSE support. Fedora and FreeBSD next.
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    does the improved speed count for radeons too?
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    SpeCter wrote: »
    does the improved speed count for radeons too?
    Yep, but they're still a bit slower than NVIDIA's cards with the current implementation.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    I've just uploaded the 0.4.5 for MaxOSX. If anybody with a Mac can test I would be very thankful... this is my first program for MacOSX and xn4 depends a lot on the result :p
    thx
  • Stromberg90
    Options
    Offline / Send Message
    Stromberg90 polycounter lvl 11
    Keep up the good work :)
  • James Edwards
    Options
    Offline / Send Message
    James Edwards polycounter lvl 18
    dang jogshy! I'm on this! Will test on my mac when I get home tonight. Thanks for the build!
  • commander_keen
    Options
    Offline / Send Message
    commander_keen polycounter lvl 18
    How fast is OpenCL and Cuda compared to just doing direct shader programming? For example doing an ambient occlusion pass by raycasting triangles at each screen pixel in the frag program. I did this with direct shader programming and many passes to trace all triangles and it calculates at about 2-3 fps for that scene. Is that about what you would get with Cuda and OpenCL?
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    How fast is OpenCL and Cuda compared to just doing direct shader programming? For example doing an ambient occlusion pass by raycasting triangles at each screen pixel in the frag program. I did this with direct shader programming and many passes to trace all triangles and it calculates at about 2-3 fps for that scene. Is that about what you would get with Cuda and OpenCL?
    I'm my own experience NVIDIA's OpenCL is a bit slower than CUDA ( because it's made on the top of it so you add another onion layer plus you need a lot of care about the register pressure resultant from the JIT compiler/different drivers ).

    I've found OpenCL is bit harder to program than CUDA ( because CUDA supports C++ which makes all much easier and Nsight is a truly amazing debugger/profiler ).
    Another thing I don't like of OpenCL is that, to get good results, you must use two different code paths: one for NVIDIA and other for ATI. If not, the performance could suck. Although both are OpenCL-compliant, the hardware architecture is so different that you need to tweak a lot of things for each implementation.

    On the other hand, CUDA is like 2 years ahead OpenCL in the time, so OpenCL still needs some time to mature.

    However, OpenCL is multivendor... and that's priceless. My advice is: if you have the time and resources to do it, use CUDA for NVIDIA and OpenCL for the other IHVs. If not, just use OpenCL directly.

    About using ray-tracing in a pixel shader, I think it's simply too slow, specially if you have lots of animated models around ( because you must rebuild the spatial structures each frame and that cost a lot of time ). If your number of triangles is small you could just use brute force but if you have lots of triangles you'll need definitively an hierarchical spatial structure.

    For more-or-less static scenes OpenCL may be superior than implementing a raytracer using OpenGL because OpenCL has several nice features that OpenGL lacks ( for instance, the ability to read and write to a buffer vs read-only/write-only OpenGL's "complete" render targets, the possibility of use linked pointers for an A-buffer, better control of the syncronization, etc... )

    If you want nice realtime AO in a pixel shader I think the best solution is precomputed AO, SSAO or, if you like experiments, perform rasterized depth-based AO with a moderated number of samples.
  • commander_keen
    Options
    Offline / Send Message
    commander_keen polycounter lvl 18
    Thanks for the info. Yeah for realtime ssao is the way to go and the results are just as good as real ao in most cases. The reason Im experimenting with gpu raytracing is for accelerating things that actually require real raytracing such as light probes for radiosity (and other ways of doing radiosity). I also think GPGPU can help me accelerate many other calculations not directly related to rendering.
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    One big thing to consider is the resolution you are raytracing in.High resolutions will let the raytracer crawl on the ground.
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    Jogshy, i think ATI Users don´t need to download the whole OpenCL package.They have a driver package know which includes OpenCL stuff(i think, can´t say for sure)
    It´s called AMD Catalyst™ Accelerated Parallel Processing (APP) Technology Edition.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    SpeCter wrote: »
    Jogshy, i think ATI Users don´t need to download the whole OpenCL package.They have a driver package know which includes OpenCL stuff(i think, can´t say for sure)
    It´s called AMD Catalyst™ Accelerated Parallel Processing (APP) Technology Edition.
    Your right, in theory. In practise, I'm afraid the new Catalyst broke ratGPU so you'll need the 10.9 + the SDK v2.2
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    They had such a package for 10.9 too, will that work too? :P
    A shame that it broke ratGPU though :-/
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    I just uploaded the 0.4.6 for Windows:

    v0.4.6 Alpha

    - Extended the alpha to June 1, 2011.

    - Patched a problems with ATI cards that was causing some system hangs. Unfortunately, it has been “patched” and not really fixed. The patch will avoid a system hang but at the cost of some rendering speed.

    - Removed the version from the 3dsmax's plug-in filename because it was causing some duplicate GUID messages. Newer versions will just overwrite the file.

    - Fixed a color mismatch between 3dsmax and the standalone renderer.

    - Now the plug-in for 3dsmax uses the 3dsmax's gamma settings.

    - The gamma slider have been removed from the ratGPU's config dialog.

    - Recompiled using the latest libraries.
  • Lamont
    Options
    Offline / Send Message
    Lamont polycounter lvl 15
    Nice. Been watching since you first posted :D!!!
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Ok! Version 0.4.7 has been released!
    ATI cards should run ok now at the same speed as previous versions ( but without hanging ).
  • Bigjohn
    Options
    Offline / Send Message
    Bigjohn polycounter lvl 11
    So, just because I'm a little thick when it comes to these things, let me ask. This is basically the same thing as doing a raytrace render in Max by default, right? Only it uses the GPU instead of the CPU, which means it's a lot faster?

    Can you use this together with Render to Texture for fast AO bake within Max?
  • Stromberg90
    Options
    Offline / Send Message
    Stromberg90 polycounter lvl 11
    I think ratgpu uses path tracing, of course i could be very wrong, i havnt tested it myself.

    But i do have a love for unbiased path tracing engines :)

    Ok i was wrong, discovered so when i did read the topic title, sorry for that :P
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Bigjohn wrote: »
    This is basically the same thing as doing a raytrace render in Max by default, right? Only it uses the GPU instead of the CPU, which means it's a lot faster?
    Yep.
    Can you use this together with Render to Texture for fast AO bake within Max?
    Not currently, but I plan to do that in the future.
    ratgpu uses path tracing, of course i could be very wrong, i havnt tested it
    But i do have a love for unbiased path tracing engines
    Yep, path tracing by now... although I'm experimenting with Metropolis and also with progressive photon mapping.... but I'm focusing on pure GPU optimizations by now.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    I¡ll update the 0.5.0 soon with AA and texture support
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    I've just uploaded the 0.5.0 with AA and texture support.
    Btw, I'm looking for some examples if you want, my programmer art sux !
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    I've uploaded the 0.5.1. Fixed several problems with Catalyst 11.3 and added 3dsmax 2012 support.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Uploaded the 0.5.2:
    - Support for Radeon 4XXX
    - Improved speed for ATI cards ( 33%-100% ). Requires Catalyst 11.5 or above or the drivers will hang ratGPU.
    - Added Maya 2012 support.
  • shariqmushir
    Options
    Offline / Send Message
    Hi guys,

    I'm trying to activate the plugin inside of Maya2012. The x64 version of the plugin displays just fine but when I click on the Loaded button, Maya freezes to a still. In the Output window it says that it's looking for a ratGPU.mel file but that file is nowhere to be found. Has anyone else experienced this problem?

    BTW the standalone x64 version of the software works wonderfully with the sample files.

    Please help.
  • shariqmushir
    Options
    Offline / Send Message
    Thanks for updating the installer with the ratGPU.mel script file. It's working great now from within Maya 2012. I've noticed a few things thou. It doesn't support Nurbs models properly. Soft smoothing for polygons is not supported. And finally, how do I use ratGPU to render animations in Maya? Maya Batch doesn't seem to support ratGPU.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    It doesn't support Nurbs models properly
    NURBS are not supported currently. You must quadrangulate/triangulate them manually by now.
    Soft smoothing for polygons is not supported.
    Are you sure? I can render correctly the [ratGPU install dir]\maya_examples\balls_maya2012.mb file with both averaged and face normals.
    And finally, how do I use ratGPU to render animations in Maya? Maya Batch doesn't seem to support ratGPU.
    Currently you can render only the current frame. In the next version I'm preparing you'll be able to render animations using the batch renderer.

    In 3dsmax you can render animations currently. The Maya renderer is still a bit experimental :poly136:
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    uploaded the 0.5.4 with some bugs corrected and optimizations.
  • Fingus
    Options
    Offline / Send Message
    Fingus polycounter lvl 11
    So I gave this thing a whirl today. Tested out the standalone first and It looks pretty promising! However I didn't notice a big speed improvement compared to a normal raytracer, the crystal objects scene was running for 24 minutes and was roughly 1/3 done. Is this normal? I haven't really seen people talk about rendering speeds so far, but if it's unbiased raytracing then I imagine it would be costly. I tried an occlusion pass too by the way, and after a long render time (10-15 mins?) I just got a black image.
    I'm on a Mac with a GeForce 8600M GT. My processor is a 2.4 GHz Core 2 Duo. If you want more detailed hardware specs I'd be happy to supply that.

    I also tried to see how it worked in Maya but I couldn't find anything related to ratGPU in the plugin manager. Is it Win only so far?
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Fingus wrote: »
    the crystal objects scene was running for 24 minutes and was roughly 1/3 done. Is this normal?
    I'm on a Mac with a GeForce 8600M GT. My processor is a 2.4 GHz Core 2 Duo.
    Thanks for testing on a Mac.

    Well, the time really depends on the settings you use. I recommend you to run the benchmark pressing the button on the toolbar to compare times against other cards.

    Geforces 8/9 can perform ray tracing but its architecture it not really efficient. A GeForce 2XX is 10X faster and Fermi is 25X times faster. Pls, see this graph:
    http://www.xnormal.net/ratGPU/Images/BechmarkResults.png
    ( your 8400M is more or less equivalent to the AMD Fusion E350's GPU ).

    About if Monte Carlo ray tracing is superior to other techniques like photon mapping or Irradiance Cache... well... it's not clear. Both have their pros and cons. It's very questionable. I think MC is the future but we need to speed it up a lot yet to make it optimal.
    I also tried to see how it worked in Maya but I couldn't find anything related to ratGPU in the plugin manager. Is it Win only so far?
    Are you using Maya 2012? We support Maya 2012 (win+mac) only by the moment.
  • Fingus
    Options
    Offline / Send Message
    Fingus polycounter lvl 11
    jogshy wrote: »
    Thanks for testing on a Mac.

    Well, the time really depends on the settings you use. I recommend you to run the benchmark pressing the button on the toolbar to compare times against other cards.

    Geforces 8/9 can perform ray tracing but its architecture it not really efficient. A GeForce 2XX is 10X faster and Fermi is 25X times faster. Pls, see this graph:
    http://www.xnormal.net/ratGPU/Images/BechmarkResults.png
    ( your 8400M is more or less equivalent to the AMD Fusion E350's GPU ).

    Ah that makes sense. I was looking at the graph but wasn't sure where my GPU was in relation to the other cards. It is a pretty junky card so I'm not surprised. I can take the time to do a full render of it if you want that for the benchmark stats. Thanks for pointing out the benchmark button, I had completely missed that one.
    Oh, and at work I have a Quadro FX 1000 (yeah I know...) so if you want me to try it on a super shitty card I can do that.
    Are you using Maya 2012? We support Maya 2012 (win+mac) only by the moment.

    I'm using 2011 so that would explain it. I might grab a student copy of 2012 just to test this out though. Do I need to use special materials to render with it?
  • Fingus
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Btw, you can perform hybrid rendering to use both CPU and GPU. Just check in the devices you want to use. Usually, with a slow GPU it's better to enable both GPU+CPU. With a fast GPU it's usually better to enable only the GPU because the CPU will be much slower and it will only slowdown the process.

    I'm using 2011 so that would explain it. I might grab a student copy of 2012 just to test this out though. Do I need to use special materials to render with it?
    I've heard that Autodesk's products are now free for students :)
    http://students.autodesk.com/
  • Fingus
    Options
    Offline / Send Message
    Fingus polycounter lvl 11
    Yes they do, my Maya and Mudbox are student versions. :) I'll download 2012 later and try to render some assets I have laying around.

    My roommate has a beastly computer with two modern GeForce cards in SLI. I can try a benchmark on that one too. Does ratGPU support SLI?

    Thanks for the tip about hybrid rendering. I'll see how that effects my speed. :)
    By the way, it would be nice in the benchmarker if you could see how many seconds the different scenes took. Right now it just shows a total.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Fingus wrote: »
    My roommate has a beastly computer with two modern GeForce cards in SLI. I can try a benchmark on that one too. Does ratGPU support SLI?
    Yep. I've tested it with multiple GPUs connected to the PCI-express slots. I've not tested it with the SLI bridge connector.

    Btw, with two powerful GPUs probably you'll get better results disabling the CPU hybrid rendering, just enable the two GPUs or the CPU may slowdown the complete process.
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    Did i miss something? Since when is an ATI card #1 ?
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    SpeCter wrote: »
    Did i miss something? Since when is an ATI card #1 ?
    Well I optimized a lot the program for ATI and the latest catalyst 11.7/SDK 2.5 is pretty good.

    However, the original 5870 cost a bit more than the GTX460 and gives more or less the same results ... Fermi is ray tracing monster :poly121:
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    I know, i worked with them while i had my intership @nvidia ;)
  • Joopson
    Options
    Offline / Send Message
    Joopson quad damage
    Hey! Just grabbed this for Maya, I'm running a GeForce GTX 550 Ti, and when I choose pathtracing and hit render, it just shows the "no image" maya blue colour. Is there some critical step that I'm missing?
    Love the ambient occlusion renderer so far! Can't wait to get pathtracing up and running.

    Also, here is my benchmark for the standalone: http://www.xnormal.net/ratGPU/verify.aspx?k=3F46D571B0242A39BA0CB65DF5A4D299D236F60F7C76392627D61E0D022C32CED989F99E98ACDE35007627150B07E5F288FE9E83CCC83B2F10153B4B40AAA79F88F9F5DACC3F2A06D909220006C4C4F09684F3C2DA313C64503B051DAAC18D9585B89A9C224F61146E3645A1D1F3E1E5F6C7D8293A0B1C6D685AB0B182F3E4E6C8C5385E62416469414CA19880ECE2D5C13631CDD3A1E2FAD921B185497A0A16754252
2
Sign In or Register to comment.