 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Significantly reduced memory footprint of spheres subject to
transformations (translate, rotate, scale, transform):
https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
Needs plenty of testing, especially with regards to UV mapping and wild
combinations of the various transformation statements.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 07.08.2016 um 06:21 schrieb clipka:
> Significantly reduced memory footprint of spheres subject to
> transformations (translate, rotate, scale, transform):
>
> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
>
> Needs plenty of testing, especially with regards to UV mapping and wild
> combinations of the various transformation statements.
No takers this time?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/9/2016 11:13 PM, clipka wrote:
> Am 07.08.2016 um 06:21 schrieb clipka:
>> Significantly reduced memory footprint of spheres subject to
>> transformations (translate, rotate, scale, transform):
>>
>> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
>>
>> Needs plenty of testing, especially with regards to UV mapping and wild
>> combinations of the various transformation statements.
>
> No takers this time?
>
There is a world shortage of Round Toits. :(
--
Regards
Stephen
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 10.08.2016 um 00:24 schrieb Stephen:
> On 8/9/2016 11:13 PM, clipka wrote:
>> Am 07.08.2016 um 06:21 schrieb clipka:
>>> Significantly reduced memory footprint of spheres subject to
>>> transformations (translate, rotate, scale, transform):
>>>
>>> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
>>>
>>> Needs plenty of testing, especially with regards to UV mapping and wild
>>> combinations of the various transformation statements.
>>
>> No takers this time?
>>
>
>
> There is a world shortage of Round Toits. :(
Might be the Brazilians' fault.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/10/2016 12:02 AM, clipka wrote:
> Am 10.08.2016 um 00:24 schrieb Stephen:
>> On 8/9/2016 11:13 PM, clipka wrote:
>>> Am 07.08.2016 um 06:21 schrieb clipka:
>>>> Significantly reduced memory footprint of spheres subject to
>>>> transformations (translate, rotate, scale, transform):
>>>>
>>>> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
>>>>
>>>> Needs plenty of testing, especially with regards to UV mapping and wild
>>>> combinations of the various transformation statements.
>>>
>>> No takers this time?
>>>
>>
>>
>> There is a world shortage of Round Toits. :(
>
> Might be the Brazilians' fault.
>
[Pulls pants down.]
Nope! ;)
--
Regards
Stephen
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
clipka <ano### [at] anonymous org> wrote:
> Am 07.08.2016 um 06:21 schrieb clipka:
> > Significantly reduced memory footprint of spheres subject to
> > transformations (translate, rotate, scale, transform):
> No takers this time?
I have it downloaded - I just need to "install" it.
I'll get on it in a little while - It's shaped up to be a busy week.
Just had a molar extracted, looking for an apartment, have a wheelchair to pick
up for a disabled friend, etc ....
I'll see what I can dream up and let loose.
I'm sure I can come up with something utilizing a few million spheres. ;)
And thank you for making that edit to the code - I'm very curious to see the
difference in memory usage.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
clipka <ano### [at] anonymous org> wrote:
> Am 07.08.2016 um 06:21 schrieb clipka:
> > Significantly reduced memory footprint of spheres subject to
> > transformations (translate, rotate, scale, transform):
> >
> > https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
> >
> > Needs plenty of testing, especially with regards to UV mapping and wild
> > combinations of the various transformation statements.
>
> No takers this time?
Unfortunately I am busy with a big project that is supposed to be finished
within the next 4 weeks...
But I really appreciate all the work you do, so I will see if I can do at least
some small scene.
I can think of some stuff that would be fun to try out... ;)
Here is a first mini scene, rusticated stones. I can post the code, but I cannot
render it with your
new version since my pov-ray dir is in use. (Cranking out animation frames.)
Best wishes, /A
Hmmm, I cannot attach files here... *goes over to blog* ... here is the link:
http://povscriptcode.site123.me/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 07.08.2016 um 06:21 schrieb clipka:
> Significantly reduced memory footprint of spheres subject to
> transformations (translate, rotate, scale, transform):
>
> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
>
> Needs plenty of testing, especially with regards to UV mapping and wild
> combinations of the various transformation statements.
Found and fixed one bug already, so a new version is waiting to be tested:
https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8737777
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
clipka <ano### [at] anonymous org> wrote:
> Am 07.08.2016 um 06:21 schrieb clipka:
> > Significantly reduced memory footprint of spheres subject to
> > transformations (translate, rotate, scale, transform):
> >
> > https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8730959
> >
> > Needs plenty of testing, especially with regards to UV mapping and wild
> > combinations of the various transformation statements.
>
> Found and fixed one bug already, so a new version is waiting to be tested:
>
> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8737777
I have done a first test; but I need to make a better test scene with
more transformations, more objects and spheres only.
Anyway, there were improvements in memory and parsing.
But also a big improvement in render time. :D
I will make a better test scene and get back to you.
Thanks a lot for the great work!
Best wishes, /A
scene: 2 287 195 objects + 1 light
std ver:
1600x1200
parse time 11.6 sec
bounding time 34.3 sec
rnder time 4m 49s
peak memory used 1 612 890 112 bytes
tst ver:
1600x1200
parse time 9.0 sec
bounding time 33.8 sec
rnder time 3m 31s
peak memory used 1 494 773 760 bytes
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hmmm I ran the standard version again, this time it took 3m 38s.
But it used 1 847 226 368 bytes. So only a small improvement in
render time, but a significant reduction in memory.
(I am not sure why I got the longer render time for the standard
version, some stuff might have been running in the background?)
I ran the test version again and it is about 1 490 000 000 bytes.
I will write a better test scene and post it as soon as I can.
Best wishes, /A
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Ok the new scene...larger resolution on the way.
std
3 851 163 objects
render time 2m 03s
800x600 no AA
peak mem 3 234 549 760 byte
parse 28 s
bounding time 54 s
tst
3 851 163 objects
render time 1m 53s
800x600 no AA
peak mem 2 304 659 456 byte
parse 20.5 s
bounding time 55 s
Best wishes, /A
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I could use a slightly more detailed explanation of how to implement this, just
get up and running when the download completes.
I decompress the folder, and then copy which executable to where?
C:Program Files\Pov-Ray\v3.7....
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Ok the 1024x768 AA 0.01 scene...
I added some more transformations to increase parse time and thus
get a more reliable estimate. The test version ran just fine:
5 361 423 objects
render time 4m 58s
peak mem 4 138 655 744 byte
parse 43.9 s
bounding time 90.9 s
but the standard version would not run but crashed...:p
So the improvement in parse time seems correct and consistent but
the memory seem uncertain, or rather in my test it is not verified.
I think it could well be due to my lack of skill/experience with
testing...hopefully someone with more routine can do a better test... ;)
std file
3 851 163 objects
render time 4m 24s
peak mem 2 525 454 336 byte
parse 30.7 s
bounding time 55.4 s
tst file
3 851 163 objects
render time 3m 49s
peak mem 2 312 380 416 byte
parse 22.1 s
bounding time 55.4 s
Best wishes, /A
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Bald Eagle" <cre### [at] netscape net> wrote:
> I could use a slightly more detailed explanation of how to implement this, just
> get up and running when the download completes.
>
> I decompress the folder, and then copy which executable to where?
>
> C:Program Files\Pov-Ray\v3.7....
I simply opened the bin dir (be sure to back it up) and replaced the main
executable file with clipkas new version. But it was a while since I messed with
this stuff so I could be wrong... /A
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Bald Eagle" <cre### [at] netscape net> wrote:
> I could use a slightly more detailed explanation of how to implement this, just
> get up and running when the download completes.
>
> I decompress the folder, and then copy which executable to where?
>
> C:Program Files\Pov-Ray\v3.7....
Sry, I forgot, I used the executable in
povray-3.7.1-alpha.8737777-av158-Win64.7z file. /A
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 12.08.2016 um 13:56 schrieb architype:
> Ok the 1024x768 AA 0.01 scene...
> I added some more transformations to increase parse time and thus
> get a more reliable estimate. The test version ran just fine:
> 5 361 423 objects
> render time 4m 58s
> peak mem 4 138 655 744 byte
> parse 43.9 s
> bounding time 90.9 s
> but the standard version would not run but crashed...:p
> So the improvement in parse time seems correct and consistent but
> the memory seem uncertain, or rather in my test it is not verified.
I wouldn't be too surprised if the standard version hit a brick wall at
4 GB for one reason or another.
As for the speed increase, I didn't expect any, but it might be a side
effect of the reduced memory footprint, which could be improving cache
efficiency.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 12.08.2016 um 13:55 schrieb Bald Eagle:
> I could use a slightly more detailed explanation of how to implement this, just
> get up and running when the download completes.
>
> I decompress the folder, and then copy which executable to where?
>
> C:Program Files\Pov-Ray\v3.7....
Typically the target directory would be `C:\Program Files\POV-Ray\v3.7\bin`.
Make sure to back up the existing `pvengine.exe`, `pvengine64.exe` and
`pvengine32-sse2.exe`, e.g. by moving them into a new subdirectory or
renaming them.
Then copy the corresponding files from the downloaded package.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In my scene 1000000 spheres.
old: 2113 M
new: 1473 M
Good result! Thanks!
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Perhaps someone can try this and think of some improvements.
// random spheres
// for testing new smaller-sphere patch in 3.7.1.etc
// Bald Eagle 2016
#version 3.7;
global_settings {assumed_gamma 1.0}
#include "colors.inc"
#include "textures.inc"
#include "rand.inc"
#include "transforms.inc"
#declare Magnitude = 500;
camera {
location <Magnitude, Magnitude, -Magnitude>
look_at <0, 0, 0>
}
light_source {<20, 50, -100> White shadowless}
//light_source {<0, 5, -1> White shadowless}
#declare R = 5;
//###############################################################
#declare _X = seed (123);
#declare _Y = seed (456);
#declare _Z = seed (789);
/*
// Other stuff to try to implement:
transform { translate { <x, y, z> } }
vtransform (Foo1, MyTransform);
Shear_Trans (X, Y, Z)
Matrix_Trans (X, Y, Z, Something)
Axial_Scale_Trans (Axis, Amt)
Axis_Rotate_Trans (Axis, Angle)
Rotate_Around_Trans(Rotation, Point)
Reorient_Trans(Axis1, Axis2)
Point_At_Trans(YAxis)
Center_Trans(Object, Axis)
Align_Trans(Object, Axis, Pt)
}
*/
#declare Stream = seed (123);
#declare Transforms = 20;
#declare Scale = 0.01;
#declare Radius = 5;
#for (Iteration, 1, 200)
sphere {<0, 0, 0>, Radius
#for (T, 1, Transforms)
#declare Type = int(RRand(1, 3, Stream));
#declare X = RRand(-90, 90, _X);
#declare Y = RRand(-90, 90, _Y);
#declare Z = RRand(-90, 90, _Z);
#declare XS = RRand(0.5, 2, _X);
#declare YS = RRand(0.5, 2, _Y);
#declare ZS = RRand(0.5, 2, _Z);
#switch (Type)
#case(1) scale <XS, YS, ZS> #break
#case(2) rotate <X, Y, Z> #break
#case(3) translate <X, Y, Z> #break
#end // end switch
#end // end for T
pigment {Blue} }
#end // end for Iteration
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |