|written by Ponche on Jul 14, 2005 18:40|
|Since it is coded in Linoleum, i feel it's more appropiate posting here, so. Source code of the version 1.0. If you just want to try changing the camera and such you only have to mess up with the Example.txt file.The image is rendered into a file (a raw data file) so you need to view it with the rawviewer also included. After sucessfull compilation use the showimage file, if you want. Well, that's it. Try and tell me if you find any bug. Oh and don't think the program doesn't work because it doesn't show anything. All rendering options are set, so it should take some time to render. After the rende, a window showing the registers contents is opened. Look at register A. It shows the rendering time in miliseconds.|
cd/zips/Ponche/lrt (30 Kb)
|written by Ouch on Jul 14, 2005 20:58|
|works good. looks very nice. wish you could do this on a real time basis though... |
|written by Ponche on Jul 14, 2005 21:13|
|Do you mean a program to ubicate the camera in realtime, and then rendering? Remember i can't do nothing with the display for this moment.... But then i'll do it of course|
I just tried it out with my linux RTM. And it worked fine.
But now i'm having a strange display problem, in example.txt, so it's probably due to my RTM. Since example doesn't even use the display. But the RTM initialises it anyway. Which is shouldn't do, because i prevented that... ?
I quickly made an integrated previewer for the rawimages with linoleum. If you change the dimensions in example.txt, this will follow it. You have to recompile this previewer too.
|Nice work! I was playing around with the default objects, and made this modified scene...|
cd/pngs/Cryoburner/linort1 (102 Kb)
I might try something a little more interesting and complex later.
|written by Ponche on Jul 15, 2005 15:28|
|Wow! Nice! Is that generated by my program?? Ok, i'm trying to add refractions, but i'm having some problems....|
|written by Ponche on Jul 16, 2005 01:07|
|I've just added refractions. Looks nice, i think. One or two bugs, but nothing imposible to correct. This scene was rendered in about 6 or 7 minutes. It consists on 57 objects with 2 lights, rendering in full detail. Well, there is it.|
|Wow... astounding. You've already added some antialiasing I suppose, since the yellow balls look smooth.|
I was wondering how it'd all look if you changed slightly the direction of the ray when departing from the eye of the viewer, according to some noise function such as Perlin noise. It might add some "underwater currents" effect. Or this might be done when the ray is crossing through some cristaline material (within a ball f.i.), in order to simulate imperfections in the density of the material.
|written by Naavis on Jul 16, 2005 09:18|
It's called caustics.
|I was wondering how it'd all look if you changed slightly the direction of the ray when departing from the eye of the viewer, according to some noise function such as Perlin noise. It might add some "underwater currents" effect. Or this might be done when the ray is crossing through some cristaline material (within a ball f.i.), in order to simulate imperfections in the density of the material.|
|Once again I've reinvented the wheel, ladies and gentlemen. Anyway, I was too lazy to try it out myself (the story of my life).|
|written by Ponche on Jul 16, 2005 10:16|
|i don't know very much about that specific technique yet, but i know it can be implemented with distributed ray tracing, this is, using statistical distributions to cast the rays, avoiding to use a rectangular and fixed grid, just like human eyes works. The advantage of this technique is that you can add blurry reflections and refractions, penumbras, and some nice effects like motion blur in animations.|
|written by Megagun on Jul 16, 2005 12:28|
|*lower jaw falls off*|
|Those refractions look nice. : D|
I made a little test program yesterday to try out using some of my libraries to set up the scene. Here's a render where I use my bezier curves library to combine lots of spheres into semi-organic shapes...
cd/pngs/Cryoburner/linortcurved (163 Kb)
The scene contains 384 spheres, 2 planes, 4 lights, and 5 levels of reflection. It took a little over 5 minutes to render on my Athlon64 3500+ system.
One suggestion I have, would be to call a user-defined service routine after each horizontal row is rendered. By default, this value could just call an empty routine, but a program would also have the option to include their own, which could retrace the display, increase a progress bar, update a cursor, or check for input to cancel the render process.
|He he... nice.|
I wonder if, instead of subsuming one sphere into the next, a new feature 'spline of revolution' could be added (a Bezier path with a circular section; radius might vary along). Normals should (methink) be as easy or hard to calculate as for the sphere case. The only drawback is that your worm won't have ring segments (unless the radius variations maikes it so).
And BTW, you did change your library to construct 3-D Beziers, in order to do that picture. Didn't you?
No, actually. I just translated the 2d curves into the 3d space. Being just a relatively basic test app, I didn't want to update lbraries just to try it out. Maybe later. : D
|And BTW, you did change your library to construct 3-D Beziers, in order to do that picture. Didn't you?|