POV-Ray : Newsgroups : povray.off-topic : GPU rendering : Re: GPU rendering Server Time
7 Sep 2024 05:09:31 EDT (-0400)
  Re: GPU rendering  
From: Orchid XP v8
Date: 17 Jul 2008 16:26:03
Message: <487faadb$1@news.povray.org>
Warp wrote:

>   From the little I know, Pixel Shader Model 3 supports branching and
> looping, so I assume it might be possible to create a pixel shader which
> colors pixels according to an iterated function system.
> 
>   However, if I'm not completely mistaken, pixel shaders are calculated
> on a specific pixel and cannot re-use previous calculations from other
> pixels which have been calculated with a pixel shader (because else it
> would make parallelizing pixel shaders extremely difficult, if not
> impossible). Thus you are limited to making a pixel shader routine
> which is calculated on a per-pixel basis, without input from other
> pixels.
>   I assume that this means that you cannot create a pixel shader which
> jumps around the screen and draws pixels here and there, as most IFS
> fractals do. You are limited to calculate on single pixels, like for
> example how the basic Mandelbrot set is calculated.

That seems like a reasonable assessment to me.

I wonder if you could attempt this using the Copy Game rather than the 
Chaos Game? That is, start with a white screen, apply each 
transformation to it seperately, merge the frame buffers back together, 
and then repeat. Do this enough times and the shape on the screen is 
guaranteed to converge to the attractor of the system. If you implement 
the "merging" state correctly, you can even get density information.

The fatal problem with this method is that it utterly fails if the 
entire attractor does not fit on the screen. For attractors involving, 
say, infinitely long lines, this method can never work properly.

Also, how about random number generation? Is this "easy" to do on a GPU?

Could you do something like rendering millions of tiny semi-transparent 
polygons of roughly 1-pixel size?

Does a GPU provide any way to procedurally render texture bitmaps that 
might allow a histogram to be built?

Asside from all that, presumably you'd have to go with some kind of 
GPGPU solution such as CUDA. Again, I'm not sure how well the GPU memory 
architecture is going to play with that; I haven't looked at the numbers.

>   Assuming it is indeed possible to implement some IFS fractals with
> pixel shaders, then it may indeed be much faster than with the CPU.
> That's because modern display cards can run a fair amount of shaders
> in parallel.

This was my feeling...

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

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