top | item 40643207

POV-Ray – The Persistence of Vision Raytracer (2021)

327 points| RafelMri | 1 year ago |povray.org | reply

170 comments

order
[+] susam|1 year ago|reply
About 11 years ago, after having written a tiny ray tracer from scratch using Java, I taught myself some ray tracing with POV-Ray. My goal was to learn a few POV-Ray features each day over 25 days and render some interesting scenes that exercise those features.

I began with simple spheres and cubes and gradually progressed to more intricate shapes and textures. Here are the results:

https://github.com/susam/pov25

The source code is in the "src/" directory. The rendered images are included in the README (scroll down to see them). I hope you like them!

[+] ABS|1 year ago|reply
I still remember when I used to leave my 386 sx 25Mhz running all night to render very simple scenes with POV-Ray (somehow sleeping through the loud fan noise!).

And the extreme excitement the day I upgraded to a 486 dx 33/66 Mhz which, thanks to the math co-processor, rendered those same scenes in (10s of) minutes instead!!

[+] 8trackbattlecat|1 year ago|reply
Same here. But I took it pretty far. Wrote a primitive keyframe animation program using pascal that would compare two .pov files (generated by Midnight Modeler) and output a file with the differences replaced by a clock variable you would pass when rendering for animation. It was fragile and required you to apply all the transforms you would need to the scene before you started. The order the transformations were applied could also produce unexpected results. It worked best for camera movements. I used it for a senior year high school project in 1998 to make an animation (that started off as a super hero story and was truncated into a funny commercial when I ran out of time.) I definitely fondly remember the feeling of waking up in the morning to see how the rendering had turned out, it also felt powerful to have my 486DX2 50 hard at work while I rested. Writing the keyframe program definitely felt good, first time I felt like I coded something useful. One frustrating aspect was that the computer could not smoothly animate the resulting videos except in lower resolutions, so the finished product changed resolution depending on the scene. It was eventually all put together in a vhs camcorder. https://youtu.be/80hp5YSp4Co?si=XQqXIdYtHssgoQz3
[+] entropyie|1 year ago|reply
Are you me? :-D Same story, had an AST 386 which I upgraded to a 486 DX33... I learned to program in the 90s by writing povray scene files, which taught me C style syntax and primed me to write actual C/C++/Java in the years that followed. I spent thousands of hours with povcad and povray on windows 3.1...
[+] glimshe|1 year ago|reply
What 386 owner hasn't rendered that sample POV Ray scene with a glass of wine? It made me feel that my beloved computer could do "professional" graphics.
[+] glonq|1 year ago|reply
I'm old [and stupid] enough to remember running a floating-point-only raytracer on a non-FP PC using a software-emulated math coprocessor. I think I measured output in *hours per frame*.
[+] CrLf|1 year ago|reply
My personal record was 50 hours for a single 640x480 scene on my Pentium 100 MHz. Memories...
[+] _whoDis|1 year ago|reply
Moray modelling program in Dos. Fun times
[+] LoganDark|1 year ago|reply
> somehow sleeping through the loud fan noise

Sometimes white noise helps with sleep, so this may not be that big of a surprise.

[+] thesnide|1 year ago|reply
my dad wanted to buy a 486sx, i convinced him to go for the more expensive dx for povray and factint...

Yeah. I know now about the int in fractint :D

[+] angst_ridden|1 year ago|reply
Same here! I still have some fairly simple 320x240 images that took all night to render.
[+] mattanimation|1 year ago|reply
yes! I did the same thing, although I never got a 486 and jumped to a amd k6-2 with Blender when it came out. Never had the math co-processor either, although it would have been nice.
[+] mycall|1 year ago|reply
Color cycle mode was so rave too.
[+] lizknope|1 year ago|reply
My roommate in 1992 would run this on his 386DX with the 387 math coprocessor. It would take literally days to run to create a small 640x480 image.

This was in the days of DOS where you could only run one program at a time. It would run all night and then in the morning he would stop it so he could use the computer for other things. But he had some kind of Targa .tga file utility to merge the files together.

Then he compiled povray for our Sun workstations and he would split up the rendering so that each machine would render 50 lines of the image and he could merge them together with that utility.

I remember how happy he was that he could render stuff 20 times faster.

[+] maweki|1 year ago|reply
10 years ago I implemented a brainfuck interpreter that had as output an animated povray scene description with a visualisation of the brainfuck abstract machine. https://www.youtube.com/watch?v=6PIZTFrkl0w
[+] tverrbjelke|1 year ago|reply
Neat video. With some subtext to explain what the different "subthings" are for in brainfuck to stage and then do become "multiply" would make it even more "bro!"ish :-)

I also spotted your openxcom play from 6 years ago and must confess that I am playing it these days!

[+] Something1234|1 year ago|reply
I love POV-Ray. I learned about it in college when I was trying to find things to do on my gaming desktop that weren’t gaming. It’s so much fun to mess with and make different things with. There’s some super impressive examples and stitching the images together is a lot like magic.

It’s honestly really satisfying to use.

I imagine a lot of people can use it. I made dice with it already.

https://www.henryschmale.org/2022/02/22/povray-dice.html

[+] tantalor|1 year ago|reply
> things to do on my gaming desktop that weren’t gaming

This is such a funny statement. What a strange perspective.

[+] kqr|1 year ago|reply
Many years ago I asked one of my role models how he had made some pre-rendered sprites for a game, and he told me it was with POV-Ray, but that he did not recommend it because it used its scripting language to define scenes, which he was concerned would be too complicated for someone who has not done 3D work before.

I have only done 3D work as a waxing and waning hobby, but then, and to this day, the POV-Ray scripting interface seems like one of the more natural ways to define a scene to me.

[+] prideout|1 year ago|reply
I created all the sprites to my game, "Noop's Odyssey", using POV-Ray. My game was one of the games on a "100 Shareware Games" CD-ROMs.
[+] m-i-l|1 year ago|reply
In 1991 or 1992 I used POV-Ray on my Atari ST to create some title screens for some home videos. Completely gratuitous marble text infront of a glass ball on top of water type of stuff, which took all night to render, but it was fun, and crucially free. For years I'd looked enviously at Cyber Studio for the Atari ST, with its StereoTek liquid crystal shutter 3D glasses add-on, but it was just too expensive for me at the time.

Then in 1996 or 1997 I thought it would be fun to use it in a professional context at the software company I worked at, making a 3D animated GIF version of one of the product logos which I put on the web site (FWIW it looks like the 3D non-animated version is still visible on the Internet Archive Way Back Machine at https://web.archive.org/web/19971211003918/http://www.sophos... 27 years later). Although no-one had asked for it, I was still in effect getting paid to do something I used to do for fun, which felt good.

[+] pjmlp|1 year ago|reply
Back in the 90's we had to leave our computers running all night, to get nice images out of POV-Ray, this brings back some memories.
[+] jpalomaki|1 year ago|reply
We wrote some small tools with Turbo Pascal to generate number of scene files, then rendered these to create small animations. Having a camera move over a reflective chessboard was pretty amazing.
[+] vertnerd|1 year ago|reply
I really liked the scripting language for defining 3D scenes; I bet today you could have an interactive UI that shows the scene in real-time as you modify the script.

The last scene I rendered, about 14 years ago, was a picture of the NIST national standard for pi: https://raw.githubusercontent.com/tiggerntatie/pivis/master/...

[+] EnigmaFlare|1 year ago|reply
Can you explain what that pi thing is for?
[+] geon|1 year ago|reply
Povray and the Internet Raytracing Competition was my entire world in the late 90s.

https://www.irtc.org/stills/

[+] angst_ridden|1 year ago|reply
Same here! And yet the only time I placed it was for an image I'd created in Strata Studio-Pro.
[+] contingencies|1 year ago|reply
If you once enjoyed POV, check out OpenSCAD. It's quite similar in terms of CSG concepts and primitive animation capability, but more useful for getting actual mechanical design work done. https://openscad.org/
[+] weinzierl|1 year ago|reply
Mark Shuttleworth used it to render Reach for the stars on the ISS in 2002.

For me, POV-Ray and FractInt were the first real programs I read and understood. They were my C tutors.

Also, you've probably been raytracing too much if you're in this thread. And you probably know who David K. Buck is.

[+] indyjo|1 year ago|reply
While POV-Ray was a cool project, let's not forget how far we have come with Blender and what a great success for the Free Software movement it represents.
[+] dagw|1 year ago|reply
What I'm kind of missing with Blender and the likes is the procedural 'magic' and surprise of POV-Ray. How just typing a few lines of 'code' into a text file could produce wondrous and mind blowing images, and then just changing a couple of numbers would give you an entirely different and unexpected result. Blender makes it infinitely easier to get exactly the result you want, but sometimes that not what you actually want.
[+] eggy|1 year ago|reply
I was one of the original donors in June 2202, iirc, for Ton to buy Blender and start the Blender Foundation. I used birthday money and sent I think, $50, that's why I remember it to this day. I still use Blender, but I was using it back then to generate 3D reliefs to carve on my self-built 4x8 foot CNC router table. I wrote a script based on a shape-from-shading algorithm originally developed by NASA to get more out of all of the single-lens B&W satellite photos they had. My company was The Wooden Image. To the other poster: you could do procedural stuff in Blender early on using Python scripting, although I was using POV-Ray very early on.
[+] anthk|1 year ago|reply
POV-Ray was free too since a few versions.
[+] ecliptik|1 year ago|reply
POV-Ray was my first introduction to HPC clusters. In the early aughts a few of us in college participated in a summer program at Wright Patterson Air-force Base to build a MPIPOV [1] cluster out of 10 old Sun SPARCStation 20s with "Happy Meal" NICs.

We documented the process of installing Linux (Debian), configuring the network, compiling MPIPOV from source and clustering them together.

It was a thing of beauty to watch the rendering speeds increase and the blinkenlights putting on a show in that lab when we were done.

If I remember correctly they planned to take what we documented and use for a much larger cluster they were building, but never found out the specifics.

1. https://dl.acm.org/doi/10.5555/648136.748781

[+] mobiuscog|1 year ago|reply
I think it was in 1994 that I posted to usenet (lost in time), offering 'render time' on my 286 for POV-Ray. They were such amazing times, yet compared to today seem so innocent.

POV-Ray was my main hobby at the time, along with the community of the Raytech BBS in the UK, and defined so much of my interests going forward, through many 3D modelling and rendering packages.

Such a huge part of my younger years, and one of the biggest influences on my life overall.

[+] alexisread|1 year ago|reply
A lot of people do similar with 3D printing now (esp. over COVID to print PPE), so there is a glimmer of this time :) Time to offer a real-world POV-Ray printing service? ;)
[+] vergessenmir|1 year ago|reply
Showing my age here but povray is what got me into software engineering. I wrote a raytracer in Pascal + Assembly and then in C and ASM

This was in 1995.

[+] sumtechguy|1 year ago|reply
Having to write one for a class in college made me a master of pointers and C. Arrays within arrays rendering to Z buffers and crude matrix operators. Now all built into a nice lib and 3 calls away.
[+] CiaranMcNulty|1 year ago|reply
I played with this a lot during my degree back in 97-99. A friend used it to render her final year project.

Amazing to see it's still going!