 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hey!
I like the results you're getting.
In fact, I like the holes in the mesh so much, that maybe you could think about
exploiting that effect by randomly creating holes in the mesh to give a
"spiking" effect - I think that would be an excellent Gormley-inspired
methodology.
I think this is something Stephen would have fun playing with, and I'd have to
think about how to make it apply to DF3 files.
On the flip-side, if you wrote the points of the array to a DF3-format, then you
could create DF3 point clouds from any solid mesh or CSG construct, which would
be very cool indeed :)
I have some explanatory comments on the code below to speed you along in your
studies.
"Bald Eagle" <cre### [at] netscape net> wrote:
> #declare Min = min_extent (Object);
> #declare Max = max_extent (Object);
obviously this just gives the opposing bounding box coordinates
> #declare MinZ = floor(Min.z);
> #declare MinY = floor(Min.y);
> #declare MinX = floor(Min.x);
> #declare MaxZ = ceil(Max.z);
> #declare MaxY = ceil(Max.y);
> #declare MaxX = ceil(Max.x);
Then we do some rounding up and down
> #declare Step = 0.5;
>
> #declare ZRange = (MaxZ - MinZ)/Step;
> #declare YRange = (MaxY - MinY)/Step;
> #declare XRange = (MaxX - MinX)/Step;
This compensates for any "off-origin" positioning
> #declare ArraySize = XRange*YRange*ZRange;
>
> #declare TestArray = array [ArraySize];
>
> #declare N = 0;
> #for (Z, MinZ, MaxZ, Step)
> #for (Y, MinY, MaxY, Step)
> #for (X, MinX, MaxX, Step)
> #if(inside (Object, <X, Y, Z>))
> #declare TestArray [N] = <X, Y, Z>;
If the point being scanned is inside the object, stick that point on the array
"stack", and increment the stack pointer / array position.
If not, just keep scanning.
> //#debug concat ( "Point ", str (N, 3, 1), " = ", vstr(3, TestArray[N], ",
> ", 3, 0), " \n")
> #declare N = N +1;
> #end
> #end
> #end
> #end
>
> #declare InSize = N - 1;
Nudge this back down to the pre-increment value to avoid unknown array element
error.
> #declare Stream = seed (123456789);
> #declare Stream1 = seed (456123789);
> #declare Stream2 = seed (789456123);
> #declare Stream3 = seed (135791113);
> #declare Stream4 = seed (987654321);
> #declare Stream5 = seed (987654321);
> #declare ScaleRange = 3;
Random seeds and a varying scale between 1 and ScaleRange
> #declare Tries = 2000;
How many objects do you want to populate the inside of the arrayed space with?
> #for (N, 1, Tries)
> #declare P = int(rand (Stream5)*InSize);
Since rand() returns 0-1, and Insize is the number of points in the array, you
get a position somewhere in that array.
> #declare rx = rand(Stream1)*90;
> #declare ry = rand(Stream2)*90;
> #declare rz = rand(Stream3)*90;
> #declare Scale = rand(Stream4)*ScaleRange;
> #declare TexNum = int (rand (Stream4) * dimension_size (TexArray, 1) );
I just had an array here to vary the textures of the jacks randomly
> object {Jack rotate <rx, ry, rz> scale Scale translate TestArray [P] texture
> {TexArray[TexNum]} }
Put an object at the randomly selected array position. It gets rotated some
random amount around x, y, and z, and given a random texture before translation.
> #end
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 3-12-2017 14:17, Bald Eagle wrote:
> Hey!
> I like the results you're getting.
> In fact, I like the holes in the mesh so much, that maybe you could think about
> exploiting that effect by randomly creating holes in the mesh to give a
> "spiking" effect - I think that would be an excellent Gormley-inspired
> methodology.
For the time being I treat them as artefacts.
>
> I think this is something Stephen would have fun playing with, and I'd have to
> think about how to make it apply to DF3 files.
> On the flip-side, if you wrote the points of the array to a DF3-format, then you
> could create DF3 point clouds from any solid mesh or CSG construct, which would
> be very cool indeed :)
Stephen, your turn ;-)
>
> I have some explanatory comments on the code below to speed you along in your
> studies.
>
> [snip]
ah-HA! I see. Thanks indeed.
--
Thomas
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 04/12/2017 08:11, Thomas de Groot wrote:
> On 3-12-2017 14:17, Bald Eagle wrote:
>> Hey!
>> I like the results you're getting.
>> In fact, I like the holes in the mesh so much, that maybe you could
>> think about
>> exploiting that effect by randomly creating holes in the mesh to give a
>> "spiking" effect - I think that would be an excellent Gormley-inspired
>> methodology.
>
> For the time being I treat them as artefacts.
>
>>
>> I think this is something Stephen would have fun playing with, and I'd
>> have to
>> think about how to make it apply to DF3 files.
>> On the flip-side, if you wrote the points of the array to a
>> DF3-format, then you
>> could create DF3 point clouds from any solid mesh or CSG construct,
>> which would
>> be very cool indeed :)
>
> Stephen, your turn ;-)
>
I don't think writing the points from the array to a df3 would give you
the results you want. I think it would just give you a surface with
holes in it.
If you used the slicing method to create a df3. You would get spikes in
the direction of the inside vector extending to the edge of the container.
I have been thinking of trying to do the same with bullet physics. But I
am having PC problems.
>
--
Regards
Stephen
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Stephen <mca### [at] aol com> wrote:
> I don't think writing the points from the array to a df3 would give you
> the results you want. I think it would just give you a surface with
> holes in it.
Well, I scan the entire solid, so it ought to give more than that.
> If you used the slicing method to create a df3. You would get spikes in
> the direction of the inside vector extending to the edge of the container.
Ah, yes. The inside_vector. Good point.
I think Thomas was merely suggesting that you poke a few holes in a mesh for
testing purposes.
Apparently I'm having "PC issues" as well. ;)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 04/12/2017 11:38, Bald Eagle wrote:
> Stephen <mca### [at] aol com> wrote:
>
>> I don't think writing the points from the array to a df3 would give you
>> the results you want. I think it would just give you a surface with
>> holes in it.
>
> Well, I scan the entire solid, so it ought to give more than that.
>
I've not been following the technical side of the discussion. I thought
you were scanning a mesh. Which generally only defines a surface. At
least Poser ones do.
>> If you used the slicing method to create a df3. You would get spikes in
>> the direction of the inside vector extending to the edge of the container.
>
> Ah, yes. The inside_vector. Good point.
>
>
> I think Thomas was merely suggesting that you poke a few holes in a mesh for
> testing purposes.
>
I had better read the thread again. Something is not meshing. ;)
>
> Apparently I'm having "PC issues" as well. ;)
>
Indeed. One man's humour can be another man's deceleration to war. :)
--
Regards
Stephen
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 4-12-2017 9:11, Thomas de Groot wrote:
> On 3-12-2017 14:17, Bald Eagle wrote:
>> Hey!
>> I like the results you're getting.
>> In fact, I like the holes in the mesh so much, that maybe you could
>> think about
>> exploiting that effect by randomly creating holes in the mesh to give a
>> "spiking" effect - I think that would be an excellent Gormley-inspired
>> methodology.
>
> For the time being I treat them as artefacts.
>
I don't know what those spikes represent finally. I closed the model and
still the eyes show them, except if I increase minutely the Step
parameter. Any idea?
--
Thomas
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 4-12-2017 9:11, Thomas de Groot wrote:
> ah-HA! I see. Thanks indeed.
>
Finally, as first approximation, I found it more expedient to randomise
the points in the array when reading them.
--
Thomas
Post a reply to this message
Attachments:
Download 'antony gormley sim.png' (409 KB)
Preview of image 'antony gormley sim.png'

|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Stephen <mca### [at] aol com> wrote:
> I've not been following the technical side of the discussion. I thought
> you were scanning a mesh. Which generally only defines a surface. At
> least Poser ones do.
They are, until you define an inside_vector, and then it's a solid.
POV-Ray squawked about the mesh I was using not being a solid object when I
tried to use inside() until I defined an inside_vector.
> > I think Thomas was merely suggesting that you poke a few holes in a mesh for
> > testing purposes.
>
> I had better read the thread again. Something is not meshing. ;)
You're either not sober and should be, or sober and shouldn't be.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Thomas de Groot <tho### [at] degroot org> wrote:
> Finally, as first approximation, I found it more expedient to randomise
> the points in the array when reading them.
Hmmm.
Without seeing how you're going about that, I'm not sure I understand the
advantage of that over selecting a (pseudo)random point in an ordered array.
I do think that one thing that could be done is add a bit of randomization to
the point itself - since they are all regularly spaced in a cubic grid.
("cubic" is just easier to say/write than "rectangular solid")
So, perhaps define half the grid spacing as a multiplier (M), and randomly
translate along x, y, and z by rand_between (-M and M).
Add a rotation if you're using an asymmetric filler.
Or draw a cylinder between the original point and a randomly translated or
chosen outside point.
It's certainly looking more evenly filled - which I think is what you wanted.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 04/12/2017 12:45, Bald Eagle wrote:
> Stephen <mca### [at] aol com> wrote:
>
>> I've not been following the technical side of the discussion. I thought
>> you were scanning a mesh. Which generally only defines a surface. At
>> least Poser ones do.
>
> They are, until you define an inside_vector, and then it's a solid.
> POV-Ray squawked about the mesh I was using not being a solid object when I
> tried to use inside() until I defined an inside_vector.
>
>
I need to look at your code and hope I can see what you are doing.
I don't recognise that warning/error. But I always use PoseRay to
convert OBJ files to Mesh2 and it always includes an inside vector.
What version of Pov are you using?
>>> I think Thomas was merely suggesting that you poke a few holes in a mesh for
>>> testing purposes.
>>
>> I had better read the thread again. Something is not meshing. ;)
>
> You're either not sober and should be, or sober and shouldn't be.
>
>
>
>
I resemble that remark. :(
--
Regards
Stephen
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |