POV-Ray : Newsgroups : povray.programming : speed up povray by recompiling for graphics card : Re: speed up povray by recompiling for graphics card Server Time
17 May 2024 06:50:17 EDT (-0400)
  Re: speed up povray by recompiling for graphics card  
From: Patrick Elliott
Date: 18 Jun 2006 14:29:05
Message: <MPG.1eff4956b259aeb0989f28@news.povray.org>
In article <web.4494e8a94ad1379aa6bb2e320@news.povray.org>, 
i.l### [at] gmailcom says...
> gpgpu.com
> this site shows how to make a graphics card do all sorts os stuff.
> if povray were recompiled for graphics card, then it could run between 4-
16
> times faster depending on the card. i of course am not going to attempt
> anything like this any time soon, im no good at C++ yet.
> this would also free up the cpu for any thing you want while your gpu is
> churning away.
> have fun with this idea
> 
No it couldn't, because graphics cards ***do not*** raytrace, then 
scanline. The basic fundamental architecture of the scene generation, 
math and even how some things are tested against is *completely* 
different. It would be like me telling someone who uses traditional wood 
sculpting tools to make wooden chests that he would be much better off 
using a paper + resin 3D prototyping machine to make thousands of 
identical parts, then simply bang them together at the end to produce 
thousands of identical wooden chests. Yes, you could, with a lot of 
effort, a completely rethink of how the basic design needs to be handled 
for it to work at all, and a total disregard for the qualitative 
differences, manage to make lost of identical prefab chests, but that 
would make you Wal-Mart, not a professional wood sculptor. Using scan 
line cards to try to duplicate what POV-Ray does would make you into 
something like Cyan, not a raytracer, with the same added effort to come 
close to what you intend, the same complete rethinking of how basic 
things need to be done to work and a complete disregard of "quality".

GPUs are not designed for, capable of, or likely to ever be able to 
(without a fundamental redesign of their entire operation) to do what 
POV-Ray does. Yes, new ones can "now" produce very good approximations 
of the same results what POV-Ray was generating back when the Commodore 
Amiga was a top of the line machine and no one had ever heard of a GPU. 
But they still cannot do the math correctly to exactly match the 
capabilities of full raytracers. And more to the point, while "some" of 
the stuff done with POV-Ray, out of necessity, uses the same triangle 
patch systems that GPUs "only" know how to do, the vast majority of a 
complex photo realistic scene that we do with POV-Ray, while not real 
time, can, as long as humans, animals or other "patch based" models are 
not in it, fit in 25% of the space taken up by just ***one*** human 
model for your great GPU.

That is the other thing you don't get. At some point you still have to 
do the math. You can do it the way POV-Ray does and produce "exact" 
mathematical versions, or you can use the math the generate 
"approximations" that the GPU can handle. And it will always be an 
approximation. You can't do true physical models of real world objects, 
which are "not" made up of bunches of triangles, using a system that 
understands nothing but triangles, can't do recursive anything, never 
mind illumination, physically accurate reflections or refraction. Yes, 
it can approximate reflections, at 1-2 recursion levels, maybe..., but 
since its entire architecture is built on throwing out stuff you can't 
"see", you can't get correct reflections off objects that are not "right 
in front of your 'eyes'" in the scene. Then there is media.. POV-Ray 
uses real media, GPUs use, well I don't know what exactly, save that its 
more like adding a layer of fuzzy film over the stuff you want to, and 
*not* real media interactions. Again, you end up approximating the real 
world, instead of simply calculating how the real world would 
"actually" look.

Put simply, the two techniques are completely incompatible with each 
other and GPUs are by far inferior to the real physical models used in 
raytracing. But heh, there is a company working to fit their raytracer 
onto a programmable GPU. If/when they have a viable product, it "might" 
be reasonable to reconsider. Until then, will people that favor GPUs 
please stop telling us its easier to do the equivalent of building a 
fish using legos than to try to actually go fishing and catch one...

-- 
void main () {

    call functional_code()
  else
    call crash_windows();
}


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.