POV-Ray : Newsgroups : povray.general : POV-Ray Origins : Re: POV-Ray Origins Server Time
28 Mar 2026 14:59:39 EDT (-0400)
  Re: POV-Ray Origins  
From: David Buck
Date: 27 Mar 2026 13:30:19
Message: <69c6beab$1@news.povray.org>
On 2026-03-27 11:51 a.m., Bald Eagle wrote:
> David Buck <dav### [at] simberoncom> wrote:
>> Hi everyone.  David (Kirk) Buck here.  I'm the original author of
>> DKBTrace and POV-Ray.
> 
> Hello again, David.
> The above sounds like the introduction to an interview video.  :)
> 
>> I've always been interested in spreading the joy of programming and
>> using computers in a creative way.  DKBTrace was one of many projects
>> I've worked on simply for the joy of coding.
> 
> What did you learn while writing DKBTrace, and what sorts of math or programming
> methods did you realize were truly central to the heart of what made DKBTrace
> work?

When I wrote DKBTrace, I worked out the math myself.  In hindsight, I 
did it the hard way.  I wrote out the general equation of a quadric 
surface that was rotated, scaled and translated.  I calculated the 
intersection of a ray with the generic quadric surface.  I then needed 
partial derivatives to calculate the surface normal at that point.  In 
hindsight, the easier thing to do is to keep the shape normalized at 
<0,0> with a radius of 1 and transform the ray instead of the quadric 
surface.

One thing I really enjoyed was writing the procedural texture code.  I 
took a lot of inspiration from a technical article called "An image 
synthesizer" by Ken Perlin (Computer Graphics 19, 3 1985).  It really 
made the textures look amazing.

> 
> What do you think contributed most to the enduring success of POV-Ray?

I don't think DKBTrace / POV-Ray would have been the success it was 
without Aaron Collins porting it from the Amiga to the PC.  Once he 
contacted me about it, we worked together to make it more portable so it 
ran on Unix, Amiga and PC.  It was the assistance of other developers 
that really made POV-Ray what it is today.

> What are some of the features that were added that you like the most?

Procedural textures and CSG were the two features that made DKBTrace 
interesting.  Before that, I was restricted to basic shapes (i.e., 
spheres) on checkerboard floors.  CSG made it possible to do modeling 
and procedural textures made them look good.

> Were there things that you've always wanted to implement, but never did?

I thought it would be interesting to add octree subdivision to the 
raytracer.  The main raytrace loop goes:

    For each ray
       For each object in the scene
          If the ray intersects the object
             Collect the intersection point
       End
    End

    Find the closest intersection point and calculate the lighting

With an octree, you divide the space into large cubes and subdivide 
those cubes that contain something.  The algorithm, then, becomes

    For each ray
       Traverse empty cubes until you find a non-empty one
          Calculate intersections with the small number of objects in 
that cube.

I always thought that it would dramatically speed up the rendering by 
eliminating the vast majority of the ray/object intersection calculations.

> Do you have friends and colleagues in the programming world that use POV-Ray?

Not really.  Most of my "real" work is business programming.  The people 
I work with may be politely interested in my raytracing work but it 
doesn't "rub off" on them.

I did have an interesting experience when I was teaching a Smalltalk 
course once.

Student:  Is it possible to use Smalltalk for graphics programming?
Me:       It depends on what kind of graphics you want to do.
Student:  I want to do ray tracing.
Me:       Have you tried using available ray tracers?
Student:  Yes, I use POV-Ray
Me:       Oh, I wrote that.
<He looks at me, then at my name on the whiteboard>
Student:  Wait, are you THE David Buck who wrote DKBTrace?
Me:       That's me
Student:  Wow,  what a coincidence
Me:       Not for me

BTW, Smalltalk can do raytracing (I wrote one once), but it can't 
compete in raw speed to a C implementation.  Smalltalk floats (at least 
at the time) were boxed and required allocation and garbage collection, 
so they were slower.

> What do you think are the features or attributes of POV-Ray that make it the
> most useful for certain tasks?

Somehow, I've always liked creating scenes by text.  I know graphical 
interfaces make it easy, but I can always be more precise with text.

> What are some key features that you think POV-Ray would benefit from the most?

I would like to see the POV-Ray rendering code extracted as a shared 
library with an API interface.  That way, I can write other software to 
do any modeling I want without having to output a scene file and run the 
renderer separately.  I think that would open the door to a lot of new 
innovation.

> Do you ever run across images, and instantly recognize that they were rendered
> with POV-Ray?

I often run across images and suspect they're done with POV-Ray. 
Sometimes I can prove that I'm right and other times I can just never be 
sure.  I like when the artists explicitly mention the tool they used.

> 
 > - Bill "Bald Eagle" Walker>

Thanks, those were fun questions.
David


Post a reply to this message

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