|
|
Orchid Win7 v1 <voi### [at] devnull> wrote:
> On 02/07/2015 05:38 AM, Samuel Benge wrote:
> > Actually, among other things, I started getting into some 3D programming thanks
> > to: a previously downloaded version of Fragmentarium (guidance); a C++ compiler
> > & libs; GLSL documentation; POV docs. You know, raytracing via raymarching is
> > actually a lot easier to achieve than traditional raytracing due to the fact
> > that to make objects you pretty much just produce shape functions, and to render
> > you increment a ray variably from the camera until you reach a function's
> > threshold (as apposed to developing intersection functions for different shapes
> > and using octree optimizations). There's more to it of course, but the point is
> > it's simpler (to me anyway). Unfortunately, rendering on the GPU is much more
> > limited due to video memory. But hey, real-time isosurfaces! Yeah!
>
> After spending a while Googling this, is appears that "ray marching" is
> simply another name for the sphere tracing technique that POV-Ray uses
> to render isosurfaces already.
Sphere tracing? As a bounding shape for the distance estimate (shape) function,
or as the basis for all DEs? A bounding sphere isn't needed, and might actually
slow things down (if only slightly). I don't even bother with one.
And something is broken with POV-Ray's isosurface. I remember a time when it
used to have fewer artifacts.
> If only it wasn't so damned hard to program GPUs. This stuff sounds fun...
Not hard but rather easy, if you have a graphics library at hand that supports
OpenGL. I use SFML (C++, other bindings might be available), which is geared
towards 2D graphics. I just use a simple sprite (quad) and use render textures
along with GLSL shaders. (It also helps to get a vector math library, as SFML's
transformation class is not good for 3D). Getting something set up is easy, you
just need to learn GLSL, which is really a fun language to use.
Another good thing about SFML: it's open source, so you can compile it yourself.
(I had to do this to add support for 16 and 32 bit textures.)
Post a reply to this message
|
|