POV-Ray : Newsgroups : povray.binaries.images : Saving PovRay objects as geometry Server Time
8 Nov 2024 20:35:31 EST (-0500)
  Saving PovRay objects as geometry (Message 1 to 10 of 40)  
Goto Latest 10 Messages Next 10 Messages >>>
From: H  Karsten
Subject: Saving PovRay objects as geometry
Date: 14 Oct 2011 21:50:01
Message: <web.4e98e599fbaf2a34a3bfeb720@news.povray.org>
Hi people,
I've just started to write a PovRay -.inc file that saves any object, defined in
PovRay as a mesh -.raw file.

It can save almost everything, include .d3f files (when being used in an
iso-surface), blobs, meshes, whatever. And can be used in any PovRay or
PovPatch, supporting the trace() function.

The raw-formate does not have any mesh-optimisation needed. That means, you can
free chose the resolution, without heaving special high memory installed. It's
only a matter of time, running the macro.

The only thing (for sure) it can not store "fake-deformations", like coming from
normal maps on surfaces, or deformed lenses in the camera.

It is still extreme slow, but has very good potential to become optimised.

Here is a simple sphere, having 40 tracking-points in each dimension.

I hope I can release the first version after the weekend :)

Best rgds,
Holger


Post a reply to this message


Attachments:
Download 'test9040.png' (14 KB)

Preview of image 'test9040.png'
test9040.png


 

From: H  Karsten
Subject: Re: Saving PovRay objects as geometry
Date: 14 Oct 2011 22:30:01
Message: <web.4e98effcdc71d3eca3bfeb720@news.povray.org>
Here's another one, heaving 100 scans in each axis.


Post a reply to this message


Attachments:
Download 'test9.png' (22 KB)

Preview of image 'test9.png'
test9.png


 

From: Thomas de Groot
Subject: Re: Saving PovRay objects as geometry
Date: 15 Oct 2011 02:53:55
Message: <4e992e03@news.povray.org>
Interesting indeed. Looking forward to a testing version...

Thomas


Post a reply to this message

From: Le Forgeron
Subject: Re: Saving PovRay objects as geometry
Date: 15 Oct 2011 05:29:11
Message: <4e995267@news.povray.org>
Le 15/10/2011 04:29, H. Karsten nous fit lire :
> Here's another one, heaving 100 scans in each axis.

Remind me of my 3.1g version (as a patch, not an inc)

http://jgrimbert.free.fr/pov/patch/tessel/index.html


Post a reply to this message

From: Patrick Elliott
Subject: Re: Saving PovRay objects as geometry
Date: 15 Oct 2011 12:24:12
Message: <4e99b3ac$1@news.povray.org>
On 10/14/2011 6:44 PM, H. Karsten wrote:
> Hi people,
> I've just started to write a PovRay -.inc file that saves any object, defined in
> PovRay as a mesh -.raw file.
>
> It can save almost everything, include .d3f files (when being used in an
> iso-surface), blobs, meshes, whatever. And can be used in any PovRay or
> PovPatch, supporting the trace() function.
>
> The raw-formate does not have any mesh-optimisation needed. That means, you can
> free chose the resolution, without heaving special high memory installed. It's
> only a matter of time, running the macro.
>
> The only thing (for sure) it can not store "fake-deformations", like coming from
> normal maps on surfaces, or deformed lenses in the camera.
>
> It is still extreme slow, but has very good potential to become optimised.
>
> Here is a simple sphere, having 40 tracking-points in each dimension.
>
> I hope I can release the first version after the weekend :)
>
> Best rgds,
> Holger
Huh. I actually had seriously wondered how complicated this would be to 
do. Building in POVRay is a lot easier, for some things, than mesh 
editors, and texturing is ***way*** easier, so I had the thought, "What 
if I could build in POVRay, then somehow generate a mesh, and "unwrap" a 
complete texture for the same object as well, so I could simply upload 
the resulting mesh, and texture, instead of having to go through the 
whole process of using Photoshop to try to bang the latter texture 
together, for the object? The problem, as I see it, with building with 
mesh has always been that, even if you could use *similar* texture 
systems in them, which most do not allow, its... not quite as trivial to 
only export the "visible" surfaces and a single texture, instead of 
whole objects, and multiple textures. Or, again, hand-editing the 
resulting structure into a single surface, then trying to apply a 
texture to some insane "unwrapped" texture template.


Post a reply to this message

From: [GDS|Entropy]
Subject: Re: Saving PovRay objects as geometry
Date: 16 Oct 2011 15:10:00
Message: <web.4e9b2b37dc71d3eccc7740060@news.povray.org>
Oh dude....very cool!

There are some projects I partially abandoned due to lack of export-import
ability, and further lack of time to try to do it myself [specifically I needed
to be able to parse blobs into meshes].

What kind of times and file sizes are you getting? How high can you get the
resolution?

Does your macro support face subdivision?

I graciously welcome and eagerly await your first post of the .inc file!

Ian

"H. Karsten" <h-karsten()web.de> wrote:
> Hi people,
> I've just started to write a PovRay -.inc file that saves any object, defined in
> PovRay as a mesh -.raw file.
>
> It can save almost everything, include .d3f files (when being used in an
> iso-surface), blobs, meshes, whatever. And can be used in any PovRay or
> PovPatch, supporting the trace() function.
>
> The raw-formate does not have any mesh-optimisation needed. That means, you can
> free chose the resolution, without heaving special high memory installed. It's
> only a matter of time, running the macro.
>
> The only thing (for sure) it can not store "fake-deformations", like coming from
> normal maps on surfaces, or deformed lenses in the camera.
>
> It is still extreme slow, but has very good potential to become optimised.
>
> Here is a simple sphere, having 40 tracking-points in each dimension.
>
> I hope I can release the first version after the weekend :)
>
> Best rgds,
> Holger


Post a reply to this message

From: H  Karsten
Subject: Re: Saving PovRay objects as geometry
Date: 18 Oct 2011 22:40:00
Message: <web.4e9e3844dc71d3eca3bfeb720@news.povray.org>
I won't have Internet the next two days :(

So I release a little test-version today.

Its:
-slow
-can only track objects, heaving an "insight" (no meshes)
-runs only under PovRay 3.7

Hopefully bring a better version in two days.

Best rgds,
Holger

Pov2Mesh_test.inc:
//#################################################################
#declare Pov2mesh_tritable = array [256][15]
{{12,12,12,12,12,12,12,12,12,12,12,12,12,12,12},
{0,8,3,12,12,12,12,12,12,12,12,12,12,12,12},
{0,1,9,12,12,12,12,12,12,12,12,12,12,12,12},
{1,8,3,9,8,1,12,12,12,12,12,12,12,12,12},
{1,2,10,12,12,12,12,12,12,12,12,12,12,12,12},
{0,8,3,1,2,10,12,12,12,12,12,12,12,12,12},
{9,2,10,0,2,9,12,12,12,12,12,12,12,12,12},
{2,8,3,2,10,8,10,9,8,12,12,12,12,12,12},
{3,11,2,12,12,12,12,12,12,12,12,12,12,12,12},
{0,11,2,8,11,0,12,12,12,12,12,12,12,12,12},
{1,9,0,2,3,11,12,12,12,12,12,12,12,12,12},
{1,11,2,1,9,11,9,8,11,12,12,12,12,12,12},
{3,10,1,11,10,3,12,12,12,12,12,12,12,12,12},
{0,10,1,0,8,10,8,11,10,12,12,12,12,12,12},
{3,9,0,3,11,9,11,10,9,12,12,12,12,12,12},
{9,8,10,10,8,11,12,12,12,12,12,12,12,12,12},
{4,7,8,12,12,12,12,12,12,12,12,12,12,12,12},
{4,3,0,7,3,4,12,12,12,12,12,12,12,12,12},
{0,1,9,8,4,7,12,12,12,12,12,12,12,12,12},
{4,1,9,4,7,1,7,3,1,12,12,12,12,12,12},
{1,2,10,8,4,7,12,12,12,12,12,12,12,12,12},
{3,4,7,3,0,4,1,2,10,12,12,12,12,12,12},
{9,2,10,9,0,2,8,4,7,12,12,12,12,12,12},
{2,10,9,2,9,7,2,7,3,7,9,4,12,12,12},
{8,4,7,3,11,2,12,12,12,12,12,12,12,12,12},
{11,4,7,11,2,4,2,0,4,12,12,12,12,12,12},
{9,0,1,8,4,7,2,3,11,12,12,12,12,12,12},
{4,7,11,9,4,11,9,11,2,9,2,1,12,12,12},
{3,10,1,3,11,10,7,8,4,12,12,12,12,12,12},
{1,11,10,1,4,11,1,0,4,7,11,4,12,12,12},
{4,7,8,9,0,11,9,11,10,11,0,3,12,12,12},
{4,7,11,4,11,9,9,11,10,12,12,12,12,12,12},
{9,5,4,12,12,12,12,12,12,12,12,12,12,12,12},
{9,5,4,0,8,3,12,12,12,12,12,12,12,12,12},
{0,5,4,1,5,0,12,12,12,12,12,12,12,12,12},
{8,5,4,8,3,5,3,1,5,12,12,12,12,12,12},
{1,2,10,9,5,4,12,12,12,12,12,12,12,12,12},
{3,0,8,1,2,10,4,9,5,12,12,12,12,12,12},
{5,2,10,5,4,2,4,0,2,12,12,12,12,12,12},
{2,10,5,3,2,5,3,5,4,3,4,8,12,12,12},
{9,5,4,2,3,11,12,12,12,12,12,12,12,12,12},
{0,11,2,0,8,11,4,9,5,12,12,12,12,12,12},
{0,5,4,0,1,5,2,3,11,12,12,12,12,12,12},
{2,1,5,2,5,8,2,8,11,4,8,5,12,12,12},
{10,3,11,10,1,3,9,5,4,12,12,12,12,12,12},
{4,9,5,0,8,1,8,10,1,8,11,10,12,12,12},
{5,4,0,5,0,11,5,11,10,11,0,3,12,12,12},
{5,4,8,5,8,10,10,8,11,12,12,12,12,12,12},
{9,7,8,5,7,9,12,12,12,12,12,12,12,12,12},
{9,3,0,9,5,3,5,7,3,12,12,12,12,12,12},
{0,7,8,0,1,7,1,5,7,12,12,12,12,12,12},
{1,5,3,3,5,7,12,12,12,12,12,12,12,12,12},
{9,7,8,9,5,7,10,1,2,12,12,12,12,12,12},
{10,1,2,9,5,0,5,3,0,5,7,3,12,12,12},
{8,0,2,8,2,5,8,5,7,10,5,2,12,12,12},
{2,10,5,2,5,3,3,5,7,12,12,12,12,12,12},
{7,9,5,7,8,9,3,11,2,12,12,12,12,12,12},
{9,5,7,9,7,2,9,2,0,2,7,11,12,12,12},
{2,3,11,0,1,8,1,7,8,1,5,7,12,12,12},
{11,2,1,11,1,7,7,1,5,12,12,12,12,12,12},
{9,5,8,8,5,7,10,1,3,10,3,11,12,12,12},
{5,7,0,5,0,9,7,11,0,1,0,10,11,10,0},
{11,10,0,11,0,3,10,5,0,8,0,7,5,7,0},
{11,10,5,7,11,5,12,12,12,12,12,12,12,12,12},
{10,6,5,12,12,12,12,12,12,12,12,12,12,12,12},
{0,8,3,5,10,6,12,12,12,12,12,12,12,12,12},
{9,0,1,5,10,6,12,12,12,12,12,12,12,12,12},
{1,8,3,1,9,8,5,10,6,12,12,12,12,12,12},
{1,6,5,2,6,1,12,12,12,12,12,12,12,12,12},
{1,6,5,1,2,6,3,0,8,12,12,12,12,12,12},
{9,6,5,9,0,6,0,2,6,12,12,12,12,12,12},
{5,9,8,5,8,2,5,2,6,3,2,8,12,12,12},
{2,3,11,10,6,5,12,12,12,12,12,12,12,12,12},
{11,0,8,11,2,0,10,6,5,12,12,12,12,12,12},
{0,1,9,2,3,11,5,10,6,12,12,12,12,12,12},
{5,10,6,1,9,2,9,11,2,9,8,11,12,12,12},
{6,3,11,6,5,3,5,1,3,12,12,12,12,12,12},
{0,8,11,0,11,5,0,5,1,5,11,6,12,12,12},
{3,11,6,0,3,6,0,6,5,0,5,9,12,12,12},
{6,5,9,6,9,11,11,9,8,12,12,12,12,12,12},
{5,10,6,4,7,8,12,12,12,12,12,12,12,12,12},
{4,3,0,4,7,3,6,5,10,12,12,12,12,12,12},
{1,9,0,5,10,6,8,4,7,12,12,12,12,12,12},
{10,6,5,1,9,7,1,7,3,7,9,4,12,12,12},
{6,1,2,6,5,1,4,7,8,12,12,12,12,12,12},
{1,2,5,5,2,6,3,0,4,3,4,7,12,12,12},
{8,4,7,9,0,5,0,6,5,0,2,6,12,12,12},
{7,3,9,7,9,4,3,2,9,5,9,6,2,6,9},
{3,11,2,7,8,4,10,6,5,12,12,12,12,12,12},
{5,10,6,4,7,2,4,2,0,2,7,11,12,12,12},
{0,1,9,4,7,8,2,3,11,5,10,6,12,12,12},
{9,2,1,9,11,2,9,4,11,7,11,4,5,10,6},
{8,4,7,3,11,5,3,5,1,5,11,6,12,12,12},
{5,1,11,5,11,6,1,0,11,7,11,4,0,4,11},
{0,5,9,0,6,5,0,3,6,11,6,3,8,4,7},
{6,5,9,6,9,11,4,7,9,7,11,9,12,12,12},
{10,4,9,6,4,10,12,12,12,12,12,12,12,12,12},
{4,10,6,4,9,10,0,8,3,12,12,12,12,12,12},
{10,0,1,10,6,0,6,4,0,12,12,12,12,12,12},
{8,3,1,8,1,6,8,6,4,6,1,10,12,12,12},
{1,4,9,1,2,4,2,6,4,12,12,12,12,12,12},
{3,0,8,1,2,9,2,4,9,2,6,4,12,12,12},
{0,2,4,4,2,6,12,12,12,12,12,12,12,12,12},
{8,3,2,8,2,4,4,2,6,12,12,12,12,12,12},
{10,4,9,10,6,4,11,2,3,12,12,12,12,12,12},
{0,8,2,2,8,11,4,9,10,4,10,6,12,12,12},
{3,11,2,0,1,6,0,6,4,6,1,10,12,12,12},
{6,4,1,6,1,10,4,8,1,2,1,11,8,11,1},
{9,6,4,9,3,6,9,1,3,11,6,3,12,12,12},
{8,11,1,8,1,0,11,6,1,9,1,4,6,4,1},
{3,11,6,3,6,0,0,6,4,12,12,12,12,12,12},
{6,4,8,11,6,8,12,12,12,12,12,12,12,12,12},
{7,10,6,7,8,10,8,9,10,12,12,12,12,12,12},
{0,7,3,0,10,7,0,9,10,6,7,10,12,12,12},
{10,6,7,1,10,7,1,7,8,1,8,0,12,12,12},
{10,6,7,10,7,1,1,7,3,12,12,12,12,12,12},
{1,2,6,1,6,8,1,8,9,8,6,7,12,12,12},
{2,6,9,2,9,1,6,7,9,0,9,3,7,3,9},
{7,8,0,7,0,6,6,0,2,12,12,12,12,12,12},
{7,3,2,6,7,2,12,12,12,12,12,12,12,12,12},
{2,3,11,10,6,8,10,8,9,8,6,7,12,12,12},
{2,0,7,2,7,11,0,9,7,6,7,10,9,10,7},
{1,8,0,1,7,8,1,10,7,6,7,10,2,3,11},
{11,2,1,11,1,7,10,6,1,6,7,1,12,12,12},
{8,9,6,8,6,7,9,1,6,11,6,3,1,3,6},
{0,9,1,11,6,7,12,12,12,12,12,12,12,12,12},
{7,8,0,7,0,6,3,11,0,11,6,0,12,12,12},
{7,11,6,12,12,12,12,12,12,12,12,12,12,12,12},
{7,6,11,12,12,12,12,12,12,12,12,12,12,12,12},
{3,0,8,11,7,6,12,12,12,12,12,12,12,12,12},
{0,1,9,11,7,6,12,12,12,12,12,12,12,12,12},
{8,1,9,8,3,1,11,7,6,12,12,12,12,12,12},
{10,1,2,6,11,7,12,12,12,12,12,12,12,12,12},
{1,2,10,3,0,8,6,11,7,12,12,12,12,12,12},
{2,9,0,2,10,9,6,11,7,12,12,12,12,12,12},
{6,11,7,2,10,3,10,8,3,10,9,8,12,12,12},
{7,2,3,6,2,7,12,12,12,12,12,12,12,12,12},
{7,0,8,7,6,0,6,2,0,12,12,12,12,12,12},
{2,7,6,2,3,7,0,1,9,12,12,12,12,12,12},
{1,6,2,1,8,6,1,9,8,8,7,6,12,12,12},
{10,7,6,10,1,7,1,3,7,12,12,12,12,12,12},
{10,7,6,1,7,10,1,8,7,1,0,8,12,12,12},
{0,3,7,0,7,10,0,10,9,6,10,7,12,12,12},
{7,6,10,7,10,8,8,10,9,12,12,12,12,12,12},
{6,8,4,11,8,6,12,12,12,12,12,12,12,12,12},
{3,6,11,3,0,6,0,4,6,12,12,12,12,12,12},
{8,6,11,8,4,6,9,0,1,12,12,12,12,12,12},
{9,4,6,9,6,3,9,3,1,11,3,6,12,12,12},
{6,8,4,6,11,8,2,10,1,12,12,12,12,12,12},
{1,2,10,3,0,11,0,6,11,0,4,6,12,12,12},
{4,11,8,4,6,11,0,2,9,2,10,9,12,12,12},
{10,9,3,10,3,2,9,4,3,11,3,6,4,6,3},
{8,2,3,8,4,2,4,6,2,12,12,12,12,12,12},
{0,4,2,4,6,2,12,12,12,12,12,12,12,12,12},
{1,9,0,2,3,4,2,4,6,4,3,8,12,12,12},
{1,9,4,1,4,2,2,4,6,12,12,12,12,12,12},
{8,1,3,8,6,1,8,4,6,6,10,1,12,12,12},
{10,1,0,10,0,6,6,0,4,12,12,12,12,12,12},
{4,6,3,4,3,8,6,10,3,0,3,9,10,9,3},
{10,9,4,6,10,4,12,12,12,12,12,12,12,12,12},
{4,9,5,7,6,11,12,12,12,12,12,12,12,12,12},
{0,8,3,4,9,5,11,7,6,12,12,12,12,12,12},
{5,0,1,5,4,0,7,6,11,12,12,12,12,12,12},
{11,7,6,8,3,4,3,5,4,3,1,5,12,12,12},
{9,5,4,10,1,2,7,6,11,12,12,12,12,12,12},
{6,11,7,1,2,10,0,8,3,4,9,5,12,12,12},
{7,6,11,5,4,10,4,2,10,4,0,2,12,12,12},
{3,4,8,3,5,4,3,2,5,10,5,2,11,7,6},
{7,2,3,7,6,2,5,4,9,12,12,12,12,12,12},
{9,5,4,0,8,6,0,6,2,6,8,7,12,12,12},
{3,6,2,3,7,6,1,5,0,5,4,0,12,12,12},
{6,2,8,6,8,7,2,1,8,4,8,5,1,5,8},
{9,5,4,10,1,6,1,7,6,1,3,7,12,12,12},
{1,6,10,1,7,6,1,0,7,8,7,0,9,5,4},
{4,0,10,4,10,5,0,3,10,6,10,7,3,7,10},
{7,6,10,7,10,8,5,4,10,4,8,10,12,12,12},
{6,9,5,6,11,9,11,8,9,12,12,12,12,12,12},
{3,6,11,0,6,3,0,5,6,0,9,5,12,12,12},
{0,11,8,0,5,11,0,1,5,5,6,11,12,12,12},
{6,11,3,6,3,5,5,3,1,12,12,12,12,12,12},
{1,2,10,9,5,11,9,11,8,11,5,6,12,12,12},
{0,11,3,0,6,11,0,9,6,5,6,9,1,2,10},
{11,8,5,11,5,6,8,0,5,10,5,2,0,2,5},
{6,11,3,6,3,5,2,10,3,10,5,3,12,12,12},
{5,8,9,5,2,8,5,6,2,3,8,2,12,12,12},
{9,5,6,9,6,0,0,6,2,12,12,12,12,12,12},
{1,5,8,1,8,0,5,6,8,3,8,2,6,2,8},
{1,5,6,2,1,6,12,12,12,12,12,12,12,12,12},
{1,3,6,1,6,10,3,8,6,5,6,9,8,9,6},
{10,1,0,10,0,6,9,5,0,5,6,0,12,12,12},
{0,3,8,5,6,10,12,12,12,12,12,12,12,12,12},
{10,5,6,12,12,12,12,12,12,12,12,12,12,12,12},
{11,5,10,7,5,11,12,12,12,12,12,12,12,12,12},
{11,5,10,11,7,5,8,3,0,12,12,12,12,12,12},
{5,11,7,5,10,11,1,9,0,12,12,12,12,12,12},
{10,7,5,10,11,7,9,8,1,8,3,1,12,12,12},
{11,1,2,11,7,1,7,5,1,12,12,12,12,12,12},
{0,8,3,1,2,7,1,7,5,7,2,11,12,12,12},
{9,7,5,9,2,7,9,0,2,2,11,7,12,12,12},
{7,5,2,7,2,11,5,9,2,3,2,8,9,8,2},
{2,5,10,2,3,5,3,7,5,12,12,12,12,12,12},
{8,2,0,8,5,2,8,7,5,10,2,5,12,12,12},
{9,0,1,5,10,3,5,3,7,3,10,2,12,12,12},
{9,8,2,9,2,1,8,7,2,10,2,5,7,5,2},
{1,3,5,3,7,5,12,12,12,12,12,12,12,12,12},
{0,8,7,0,7,1,1,7,5,12,12,12,12,12,12},
{9,0,3,9,3,5,5,3,7,12,12,12,12,12,12},
{9,8,7,5,9,7,12,12,12,12,12,12,12,12,12},
{5,8,4,5,10,8,10,11,8,12,12,12,12,12,12},
{5,0,4,5,11,0,5,10,11,11,3,0,12,12,12},
{0,1,9,8,4,10,8,10,11,10,4,5,12,12,12},
{10,11,4,10,4,5,11,3,4,9,4,1,3,1,4},
{2,5,1,2,8,5,2,11,8,4,5,8,12,12,12},
{0,4,11,0,11,3,4,5,11,2,11,1,5,1,11},
{0,2,5,0,5,9,2,11,5,4,5,8,11,8,5},
{9,4,5,2,11,3,12,12,12,12,12,12,12,12,12},
{2,5,10,3,5,2,3,4,5,3,8,4,12,12,12},
{5,10,2,5,2,4,4,2,0,12,12,12,12,12,12},
{3,10,2,3,5,10,3,8,5,4,5,8,0,1,9},
{5,10,2,5,2,4,1,9,2,9,4,2,12,12,12},
{8,4,5,8,5,3,3,5,1,12,12,12,12,12,12},
{0,4,5,1,0,5,12,12,12,12,12,12,12,12,12},
{8,4,5,8,5,3,9,0,5,0,3,5,12,12,12},
{9,4,5,12,12,12,12,12,12,12,12,12,12,12,12},
{4,11,7,4,9,11,9,10,11,12,12,12,12,12,12},
{0,8,3,4,9,7,9,11,7,9,10,11,12,12,12},
{1,10,11,1,11,4,1,4,0,7,4,11,12,12,12},
{3,1,4,3,4,8,1,10,4,7,4,11,10,11,4},
{4,11,7,9,11,4,9,2,11,9,1,2,12,12,12},
{9,7,4,9,11,7,9,1,11,2,11,1,0,8,3},
{11,7,4,11,4,2,2,4,0,12,12,12,12,12,12},
{11,7,4,11,4,2,8,3,4,3,2,4,12,12,12},
{2,9,10,2,7,9,2,3,7,7,4,9,12,12,12},
{9,10,7,9,7,4,10,2,7,8,7,0,2,0,7},
{3,7,10,3,10,2,7,4,10,1,10,0,4,0,10},
{1,10,2,8,7,4,12,12,12,12,12,12,12,12,12},
{4,9,1,4,1,7,7,1,3,12,12,12,12,12,12},
{4,9,1,4,1,7,0,8,1,8,7,1,12,12,12},
{4,0,3,7,4,3,12,12,12,12,12,12,12,12,12},
{4,8,7,12,12,12,12,12,12,12,12,12,12,12,12},
{9,10,8,10,11,8,12,12,12,12,12,12,12,12,12},
{3,0,9,3,9,11,11,9,10,12,12,12,12,12,12},
{0,1,10,0,10,8,8,10,11,12,12,12,12,12,12},
{3,1,10,11,3,10,12,12,12,12,12,12,12,12,12},
{1,2,11,1,11,9,9,11,8,12,12,12,12,12,12},
{3,0,9,3,9,11,1,2,9,2,11,9,12,12,12},
{0,2,11,8,0,11,12,12,12,12,12,12,12,12,12},
{3,2,11,12,12,12,12,12,12,12,12,12,12,12,12},
{2,3,8,2,8,10,10,8,9,12,12,12,12,12,12},
{9,10,2,0,9,2,12,12,12,12,12,12,12,12,12},
{2,3,8,2,8,10,0,1,8,1,10,8,12,12,12},
{1,10,2,12,12,12,12,12,12,12,12,12,12,12,12},
{1,3,8,9,1,8,12,12,12,12,12,12,12,12,12},
{0,9,1,12,12,12,12,12,12,12,12,12,12,12,12},
{0,3,8,12,12,12,12,12,12,12,12,12,12,12,12},
{12,12,12,12,12,12,12,12,12,12,12,12,12,12,12}};

#declare Pov2Mesh_vertlist=array[12];
#declare Pov2Mesh_vertlist[0]=<0.5,0,1>;
#declare Pov2Mesh_vertlist[1]=<1,0,0.5>;
#declare Pov2Mesh_vertlist[2]=<0.5,0,0>;
#declare Pov2Mesh_vertlist[3]=<0,0,0.5>;
#declare Pov2Mesh_vertlist[4]=<0.5,1,1>;
#declare Pov2Mesh_vertlist[5]=<1,1,0.5>;
#declare Pov2Mesh_vertlist[6]=<0.5,1,0>;
#declare Pov2Mesh_vertlist[7]=<0,1,0.5>;
#declare Pov2Mesh_vertlist[8]=<0,0.5,1>;
#declare Pov2Mesh_vertlist[9]=<1,0.5,1>;
#declare Pov2Mesh_vertlist[10]=<1,0.5,0>;
#declare Pov2Mesh_vertlist[11]=<0,0.5,0>;

#macro Pov2Mesh_Findindex(Obj,Level,Position,Scale,Mem)
#declare cubeindex = 0;
#declare BackX=255;
#declare BackY=BackX;
#declare BackZ=BackX;
#if (Mem.x>0)
#ifdef (Slice[Mem.y][Mem.z])
#declare BackX=Slice[Mem.y][Mem.z];
#end
#end
#if (Mem.y>0)
#ifdef (Row[Mem.z])
#declare BackY=Row[Mem.z];
#end
#end
#if (Mem.z>0)
#declare BackZ=Cube;
#end
#if (16=bitwise_and(BackY,16))                     #declare cubeindex =
cubeindex+  1;  #end
#if (32=bitwise_and(BackY,32))                     #declare cubeindex =
cubeindex+  2;  #end
#if ( 2=bitwise_and(BackZ, 2))                     #declare cubeindex =
cubeindex+  4;  #end
#if ( 1=bitwise_and(BackZ, 1))                     #declare cubeindex =
cubeindex+  8;  #end
#if (32=bitwise_and(BackX,32))                     #declare cubeindex =
cubeindex+ 16;  #end
#if (inside(Obj,(<1,1,1>)*Scale+Position) < Level) #declare cubeindex =
cubeindex+ 32;  #end
#if (32=bitwise_and(BackZ,32))                     #declare cubeindex =
cubeindex+ 64;  #end
#if (16=bitwise_and(BackZ,16))                     #declare cubeindex =
cubeindex+128;  #end
#declare Slice[Mem.y][Mem.z]=cubeindex;
#declare Row[Mem.z]=cubeindex;
#declare Cube=cubeindex;
#end

#macro Pov2mesh_tri(Position,Scale,Show)
#local E=0;
#while (E<14)
#local Ek=Pov2mesh_tritable[cubeindex][E];
#if (Ek<12)
#local T1=Pov2Mesh_vertlist[Ek]*Scale+Position;
#local T2=Pov2Mesh_vertlist[Pov2mesh_tritable[cubeindex][E+1]]*Scale+Position;
#local T3=Pov2Mesh_vertlist[Pov2mesh_tritable[cubeindex][E+2]]*Scale+Position;
#write (rawFile,str(T1.x,0,-1)," ",str(T1.y,0,-1)," ",str(T1.z,0,-1),"
",str(T2.x,0,-1)," ",str(T2.y,0,-1)," ",str(T2.z,0,-1)," ",str(T3.x,0,-1),"
",str(T3.y,0,-1)," ",str(T3.z,0,-1),"\n")
#if(Show)triangle{T1,T2,T3 pigment {aoi color_map{[0 color rgb -1][1 color rgb
1.1]}}}#end
#end
#local E=E+3;
#end
#end

#macro Pov2Mesh(Obj,Res,FileNameToSave,Show)
#declare FR=0;
#if (Res<1)
#local Res=1;
#end
#ifdef (Slice)
#undef Slice
#end
#declare Slice=array[Res+2][Res+2];
#ifdef (Row)
#undef Row
#end
#declare Row=array[Res+2];
#ifdef (Cube)
#undef Cube
#end
#declare Cube=0;
#local Mn=min_extent(Obj);
#local Mx=max_extent(Obj);
#local Xstp=(Mx.x-Mn.x)/Res;
#local Ystp=(Mx.y-Mn.y)/Res;
#local Zstp=(Mx.z-Mn.z)/Res;
#local Pold=0;
#local Ofs=0.5;
#fopen rawFile FileNameToSave write
#local Xr=Mn.x-Xstp*Ofs;
#local Xgrid=0;
#while (Xr<Mx.x+Xstp*Ofs)
#local Yr=Mn.y-Ystp*Ofs;
#local Ygrid=0;
#while (Yr<Mx.y+Ystp*Ofs)
#local Zr=Mn.z-Zstp*Ofs;
#local Zgrid=0;
#while (Zr<Mx.z+Zstp*Ofs)
#declare FR=FR+1;
Pov2Mesh_Surface(Obj,<Xr,Yr,Zr>,<Xstp,Ystp,Zstp>,<Xgrid,Ygrid,Zgrid>,Show)
#local Zr=Zr+Zstp;
#local Zgrid=Zgrid+1;
#end
#local Yr=Yr+Ystp;
#local Ygrid=Ygrid+1;
#end
#local Percent=int(100-((Mx.x-Xr)/(Mx.x-Mn.x)*100));
#if (Percent > Pold)
#debug concat("Scanning: ",str(Percent,-2,0),"%\n")
#end
#local Xr=Xr+Xstp;
#local Xgrid=Xgrid+1;
#local Pold=Percent;
#end
#fclose rawFile
#end

#macro Pov2Mesh_Surface(In,T,SC,Mem,Show)
Pov2Mesh_Findindex(In,0.5,T,SC,Mem)
Pov2mesh_tri(T,SC,Show)
#end
//#################################################################

test_scene.pov:
//#################################################################
#version 3.7;

camera {
  location  <0,3,-5>*7
  look_at   <0,2,0>
  right     x*image_width/image_height
  rotate <0,-53,0>
  angle 40
}

light_source {
  <-2,4,-2>*10
  color rgb 1
 rotate <0,-53,0>
}

#declare In=
julia_fractal {
    <-0.083,0.0,-0.83,-0.025>
    quaternion
    sqr
    max_iteration 8
    precision 15
    scale 10
}
#include "Pov2Mesh_test.inc"
Pov2Mesh(In,10,"fractal.raw",true)
//object{In pigment{color rgbt <1,1,1,0.5>}}
//#################################################################


Post a reply to this message


Attachments:
Download 'test_scene.png' (121 KB)

Preview of image 'test_scene.png'
test_scene.png


 

From: H  Karsten
Subject: Re: Saving PovRay objects as geometry
Date: 18 Oct 2011 22:45:01
Message: <web.4e9e38e4dc71d3eca3bfeb720@news.povray.org>
Ps.: Take care of the word-wrap in the source!


Post a reply to this message

From: H  Karsten
Subject: Re: Saving PovRay objects as geometry
Date: 21 Oct 2011 15:20:01
Message: <web.4ea1c475dc71d3eca3bfeb720@news.povray.org>
Ok, I changed the concept:
Creating a surface is based in two parts, and to realise both within the PovRay
language is slow, complicate and not necessary.

Only the first part will run insight of PovRay, and it will be MUCH faster!
It will create a file, I call .qvx (quick voxel). This file will be taken by a
external App, to convert it to a mesh.

It will take a view more days.

The Fractal in the button is scanned with 100 scans a side. And it was very
slow.
In a 22th of this time now, I can do a scan with 1000 scans!

The .qvx file, containing this amount of data has a size of only 14.7 MB.

Best rgds,
Holger


Post a reply to this message

From: Le Forgeron
Subject: Re: Saving PovRay objects as geometry
Date: 21 Oct 2011 17:30:19
Message: <4ea1e46b@news.povray.org>
Le 21/10/2011 21:15, H. Karsten nous fit lire :
> Ok, I changed the concept:
> Creating a surface is based in two parts, and to realise both within the PovRay
> language is slow, complicate and not necessary.
> 
> Only the first part will run insight of PovRay, and it will be MUCH faster!
> It will create a file, I call .qvx (quick voxel). This file will be taken by a
> external App, to convert it to a mesh.

Make it a mesh2 syntax, as parsing mesh syntax get slower as bigger the
mesh is (and it is not with mesh2)

I'm sad you did not read my previous post.


Post a reply to this message

Goto Latest 10 Messages Next 10 Messages >>>

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