#1 Crossbones+ - Reputation: 743
Posted 07 July 2012 - 12:27 PM
"The only thing stopping you from what you want in the future is what you want right now." - Zig Ziglar
#2 Members - Reputation: 570
Posted 07 July 2012 - 12:50 PM
Can you make a real-time SVO-based ray-tracer? I'm not sure if anyone has yet... John Carmack seemed to think so.
I was pondering writing an SVO ray-tracer/renderer for complicated objects in my rasterizing polygonal renderer, never got around to it though
#3 Moderators - Reputation: 5416
Posted 07 July 2012 - 01:00 PM
Either way you definitely do not want to use ARB assembly...that stuff is way old and has been superseded by GLSL. For something like this you'll want maximum programmability and flexibility, which means using the latest profiles and features available in either OpenGL 4 or D3D11.
#4 Crossbones+ - Reputation: 743
Posted 07 July 2012 - 04:03 PM
Edited by MrJoshL, 07 July 2012 - 04:04 PM.
"The only thing stopping you from what you want in the future is what you want right now." - Zig Ziglar
#5 Members - Reputation: 305
Posted 07 July 2012 - 07:03 PM
Premature optimization. You're deciding something will be faster; enough faster to make a difference, before you even know where the major slowdowns are.If all of the instructions in the ARB assembly language are all I need to suit my needs, then would there really be that much of a difference in execution speed and/or compatibility? Here is an ARB instruction reference: http://www.rendergui...om/gpuguide.pdf . Would I be able to write the tracer without using a high level shading language like GLSL? I would like to use ARB assembly and avoid using GLSL, but if it is absolutely necessary, I definitely won't sacrifice performance. I just was wondering why ARB isn't preferable.
Make it work first, then maybe worry about speed.
#6 Moderators - Reputation: 13471
Posted 07 July 2012 - 09:33 PM
I'd thoroughly test your hypothesis (that ARM asm will reduce shading times), before throwing out a much more modern shading language for that old one.
Regarding the latency problem mentioned above, when splitting rendering work across CPU and GPU -- it's best if you can know where the camera/objects will be in 2 frames time, and use the CPU to render to render these, while you're submitting the GPU work for the current frame. This is pretty simple to do, but may require you to increase you input latency by buffering user input.
#7 Moderators - Reputation: 5416
Posted 08 July 2012 - 12:47 AM
#8 Crossbones+ - Reputation: 743
Posted 08 July 2012 - 01:54 PM
"The only thing stopping you from what you want in the future is what you want right now." - Zig Ziglar
#11 Moderators - Reputation: 7472
Posted 10 July 2012 - 02:58 PM
[Work - ArenaNet] [Epoch Language] [Scribblings] [Journal - peek into my shattered mind]
#12 Moderators - Reputation: 5416
Posted 10 July 2012 - 05:20 PM
#13 Members - Reputation: 1382
Posted 12 July 2012 - 03:09 AM
http://www.iquilezles.org/www/articles/simplegpurt/simplegpurt.htm
There were also some "eye iris" tracing and you'll also find some paper about traversing accelerator trees in shader (before there was opencl and cuda).
And the performance is really case by case dependent:
just porting 1:1 shader to opencl/cuda/cs usually slows you down a bit, just by exploiting the possibilities of compute units you then gian an advantage, sometimes you can be 10x as fast (or even more, it really is down to the task and implementation), but my point is, if you want and it's simpler for you, start with cg and switch once you reach the limitations or at least it become too rubbish to work around those.






