gnu3dkit-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu3dkit-discuss] GL slang draft


From: Philippe C . D . Robert
Subject: Re: [Gnu3dkit-discuss] GL slang draft
Date: Sun, 2 Mar 2003 22:01:30 +0100

On Thursday, February 27, 2003, at 08:49  Uhr, Brent Gulanowski wrote:
This is disappointing:

Related OpenGL state is also automatically tracked if used by the shader. A fragment shader cannot change a fragment's x/y position. To support parallelism at the fragment processing level, fragment shaders are written in a way that expresses the computation required for a single fragment, and access to neighboring fragments is not allowed. A fragment shader is free to read multiple values from a single texture, or multiple values from multiple textures. The values computed by the fragment shader are ultimately used to update frame-buffer memory or texture memory, depending on the current OpenGL state and the OpenGL command that caused the fragments to be generated.

If I understand that correctly, it means that you cannot simulate things like aberrations in a lens or depth of field using the fragment shader. (The latter I see in the OGL PG is to be done with the accumulation buffer.) Or does it mean that you have to do some kind of two-stage process?

z-buffer rendering is not ray tracing, but you an use the programmable shaders of a GPU to implement a ray tracer - or easier you use some nice tricks to achieve these results in OGL, as you mention already (this requires multipass rendering, yes).

It seems to mean that the kinds of filters associated with photoshop, like blurs, swirls, bleeds, and other such things are still not ready for hardware acceleration. I was hoping that visualizers like for iTunes and WinAmp would be able to move their work to the card, but it seems unlikely.

You can achieve imaging operations in OGL using the ARB_imaging extensions, unfortunately they are not supported on all graphics cards (SGI machines support them, and maybe NVidia cards). You can also render to textures and then use shaders to implement such operations, for example.

-Phil
--
Philippe C.D. Robert
http://www.nice.ch/~phip





reply via email to

[Prev in Thread] Current Thread [Next in Thread]