|That sphereflake is rather cool, Ponche. Now, lets see some new primatives to build things with in the next release. : D|
Hearing of your difficulties determining how long a render would take, I made an attempt at a library for estimating render time, and counting down the time remaining. Basically, it renders a tiny version of the image, timing each row, and then tries to estimate how long each row of the full image will take. It worked beautifully with test.txt, correctly determining the render time down to a fraction of a second, and was even accurate with its size bumped way up.
Unfortunatly, an initial run with test2.txt provided horribly inaccurate results. The estimated time to render was 7:35, which needless to say is extremely far off, and each second took much longer than that to tick by. : \ One potential problem I just thought of is that a timer might be getting multiplied to a number greater than 32 bits at some point. If this is the issue, it should be rather easy to fix. The other possibility I had previously thought of, is that most of the complex parts could be getting missed by rays in the tiny preview render. If that's the problem, then the only potential remedy might be to use a larger preview.
Now that I think of it though, the first reason seems likely, and I should check that out whenever I get a chance. I need to go to sleep now though. : P
Edit: Oh, a random thought! How about making a version of the snowflake where the color changes with each iteration? That might look cool. : )
|written by Ponche on Jun 16, 2006 14:32|
And what about adding a beauty hexagonal procedural texture to the floor? Hey! I've figured how to implemented it by myself! And now i go for the spheres. And then 1.2 version with textures implemented. Later!
|Edit: Oh, a random thought! How about making a version of the snowflake where the color changes with each iteration? That might look cool. : )|
|written by Ponche on Jun 19, 2006 14:46|
|Texture mapping preview shot:|
|written by Buuks on Jun 19, 2006 14:50|
|And than it is a small stap to release NVI. |
Great job, Ponche!!
|written by Ponche on Jun 19, 2006 14:55|
Edit: another one. Remarks? the moon reflected at sea, which is a plane with a water texture tiled over it and transparency. Another plane with a procedural star map form the sky. Rendered in just 3 seconds. Nice!
|└> last changed by Ponche on June 19, 2006 at 18:03|
Hm... the starscape, seems too full, either that or the intenisty/color variations aren't strong enough.
|< cd/pngs/ponche/moonsea >|
Btw to both that and the previous render: *drool*
edit: Is it my eyes just playing tricks on me or does the sea look curved?
Now how about adding specular and bump mapping? : ) They could be applied just like the textures, but the specular map would affect the level of reflection at that point on the object, while the bump map would affect the angle of the ray's path off its surface.
|written by Ponche on Jun 20, 2006 10:14|
|Answering to Hello! : ) question, the sea maybe look curved and probably it's because a small focal distance. About the starmap, well, it can be reduced in the quantity of stars, i thought it was right that way, and after reading your post i realize that the contrast on my monitor was a bit low |
Cryo: nice ideas, i'll remember.
And now, here is the next release LinoRT v1.2, and here are the changes as i wrote in the linort.txt file:
* main addition is the base for a texture mapping renderer, including in this
version the following features related:
- sphere inverse mapping procedure, this is, for applying a bitmap
into a sphere. sphere pole and equator vectors has been added to
the sphere specific data, but if you are not using texture mapping
you can left it as undefined. [see texture.txt]
- cylindrical inverse mapping. similar to the previous.
- plane tiled texture mapping. so some mods in planes definition.
- procedural plane texture mapping:
+ using and hexagonal tricolor grid.
+ using a random generated star map.
* added the lrtutil.txt library, which is an auxiliary lib for creating scenes
with linort in a reliable way [see example.txt]. i think it's a first step to
implement a raytracer program with a graphical user interface.
* removed sphereflake lib until i make it compatible with lrtutil. just wait
for the next release or do it by yourself... :P
* some optimizations, here and there, and a pair of bugs more.
* a minor code restyling, lowercased and tabulation corrected. sorry!
|cd/zips/Ponche/lrt12 (489 Kb)|
EDIT: well, i forgot.. cylindrical inverse mapping evidently implies i have added a new primitive. Guess which one?
|It's looking good so far! : )|
I've only played around with the example file so far, but I'll try other things out later.
One thing to note is that I found a mistake in the example program. You call "set camera", but use the variables for "lrtu set camera", so they end up getting replaced with the default values. Otherwise it's nice, with good documentation. : )
|written by Ponche on Jun 20, 2006 11:51|
|Yes, i've noticed that just after uploading. Thanks! I expect some renderings from you! |
Oh, i'm working on a bilinear filtering just now.
EDIT: And here are the results:
|└> last changed by Ponche on June 20, 2006 at 13:30|
Then can we expect Anisotrophic filtering?
|Oh, i'm working on a bilinear filtering just now.|
Btw, I'm rewriting my file library just so I can use an external file to define the scene!
|< cd/pngs/Ponche/bifilter >|
|written by Yayo on Jun 20, 2006 18:55|
what about next step? perlin noise textures? 8 )
|written by Ouch on Jun 20, 2006 20:19|
|if bumpmappnig doesn't work out maybe just adding some old school embossing effects would be sufficiant?|
|I think that bumpmapping should be pretty straightforward for a raytracer. Just have a monochrome texture with height values from 0-255. When a ray intercepts an object, determine the angle of the surface at that point by checking the corresponding height value, and comparing it to the surrounding heightmap values. From that, you should be able to determine how much the angle of the ray should be diverted. This would create effects like accurate reflections and refractions for water ripples and etched glass, as well as detailed shading on solid objects.|
A specular map would be even easier though. Just check the value at that point, and set the reflectivity accordingly. An example use would be to have a sphere with that Earth texture, combined with a specular map to make the oceans more reflective than the continents.
|written by Ponche on Jun 26, 2006 09:53|
|I thought that some acceleration is needed! So i've implemented "uniform spatial subdivision". Improvement? The sphereflake at full detail and 600x600 took just 18 seconds! And one or two weeks ago i waited near 3 hours for it to render!! I'll be uploading it soon.|
OH! And thanks for the suggestions, i'll implement them or most of someday. Thanks!