![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Thanks. I did use macros, but there is no easy pattern. The shape is made
up
> of 56 unique sets of radially arranged vertices. Each row of vertices
starts
> at the side of a set, heads towards the center, and then heads back out to
> another side of the set on the inside wall.
That's something I never considered (I think).. I'm not even sure I fully
understand it.. But the more I look at the shape, the more impressed I
become.. How versalite do you think these macros could become? I think, one
of POVs big limitations at the moment, is the few tools there exsist to
create / modify triangles shapes.. Isosurfaces are great and so are a lot of
other things.. But triangles are very popular in commerical modellers, with
good reason.. You can model on them forever, and they remain fast.
Some of the triangle-tools people use with a mouse, could also (at least in
my imagination) work in Povray for hand-coders.. There are some people here
who experiment with it.. You took things to a new level, with that shape of
yours.. :o) It's probably not a trashcan.. I'm working on something with
heightfields myself (but currently I'm stuck).. I could mention other people
too.. But sometimes it would be nice with more teamwork here.. I know it's
not easy to help other people with their code, but sharing ideas and
combining efforts, is nevertheless an efficient way to develop something ...
or try out ideas, if nothing else.
> I tried blurred-reflection as you suggested. The realism drastically
> increased!
I'm glad I could help! Please show us sometime.
Hugo
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Shay" <sah### [at] simcoparts com> wrote in message
news:3c839d71@news.povray.org...
> Clever ideas, guys, but what did you think of the modeling?
Nice idea. Have you used splines(and if so, what kind) for it?
As for the question "what is it", this thing could be useful
in kitchen with handle on the top, smaller sharp-edged holes
of different shapes for every side.
Gleb
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hugo <hua### [at] post3 tele dk> wrote in message news:3c83b17d@news.povray.org...
> That's something I never considered (I think).. I'm not even sure I fully
> understand it..
I attached a piece of wire frame to show what I'm talking about.
>But the more I look at the shape, the more impressed I
> become..
Wow, thanks.
>How versalite do you think these macros could become? ... I'm working on
something with
> heightfields myself (but currently I'm stuck)..
The macros I made for this aren't very versatile. The vertices require from
three to as many as 12 triangles to figure their normals, so unless a mesh
is constructed exactly like mine, they will not help much.
I wrote a macro that takes an n-by-n array (mesh_array[columns][rows]) and
writes out a #mesh2 macro with normals. If this would help with your
heightfield work, I would be glad to clean it up and send it to you tonight.
Let me know.
-Shay
Post a reply to this message
Attachments:
Download 'WF.jpg' (28 KB)
Preview of image 'WF.jpg'
![WF.jpg](/povray.binaries.images/attachment/%3C3c83c84c%40news.povray.org%3E/WF.jpg?preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Gleb <gk1### [at] soton ac uk> wrote in message news:3c83c338@news.povray.org...
> Have you used splines(and if so, what kind) for it?
I used the natural spline in the #declare spline function to trace to top
and bottom curves. The piece has to fit perfectly with several other pieces,
so this allows a perfect fit through the control points.
-Shay
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> I attached a piece of wire frame to show what I'm talking about.
This really shows what you've done.. great work.. :o)
> I wrote a macro that takes an n-by-n array (mesh_array[columns][rows]) and
> writes out a #mesh2 macro with normals. If this would help with your
> heightfield work, I would be glad to clean it up and send it to you
tonight.
> Let me know.
I too have attached a picture that hopefully demonstrates what I'm doing..
It's a heightfield (a bit boring one) traced within POV.. The idea is that
people can use my macros as modelling tools.. People may use well-known and
easy primitives to make a shape.. My macro will then transform it to a
heightfield, and another macro will smooth out the vertices (remove hard
edges that primitives usually have) and a third macro sweeps the grid around
a lathe, spline, etc.. It will be easy to put in a forth or fifth macro,
with other deformation features.
Each square in the grid consist of 2 triangles. As shown with yellow and
blue lines, these "qaud faces" (double faces) are connected in either one
way - the way that suits the curvature best.. Ordinary HF's don't seem to
have this feature, but it improves the shape when there's not a lot of
triangles.
My problem is to average the normals in this "matrix".. Each vertex is
surrounded by 4 squares, and each square consist of 2 triangles, but
sometimes only 1 of them should be averaged because only 1 of them are
directly connected to the vertex.. It's no problem to store this pattern in
an array with either 0 or 1.. But I battle to get this averaging to work
correctly.. Buggy code and it may sound rediculous.. But I'd like to get it
working.
Your code does not take this swapping of quad-faces into consideration, so
it won't solve my problem. :o) But thanks for your offer, anyway! I don't
know if you could use my long explanation to anything, I tried to be
concise, and anyone is welcome to take a look at my code, of course.
Regards,
Hugo
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> I too have attached a picture
Forgot the picture.
Post a reply to this message
Attachments:
Download 'Hf_example.JPG' (19 KB)
Preview of image 'Hf_example.JPG'
![Hf_example.JPG](/povray.binaries.images/attachment/%3C3c83ef1f%40news.povray.org%3E/Hf_example.JPG?preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I see now what you are doing. This will be very useful for animation where
the goal is to use as few triangles as possible.
I have an idea for how to adapt my macro for what you are doing. I think
that the best way to do this would be to store the normals in a
3-dimentional array (Normal_Array[Columns][Rows][8]). Then, write two
macros, one for each case of division. Each of the two macros will figure
the normal of each triangle as it is made and then file that normal with
each of the vertices of the triangle.
The normal of each vertex could then later be found with something like
this:
#declare Triangle_Normal_Sum = 0;
#declare Counter = 0;
#while (Counter < 8)
#ifdef ( Normal_Array[Column][Row][Counter] )
#declare Triangle_Normal_Sum = Triangle_Normal_Sum +
Normal_Array[Column][Row][Counter];
#end // #ifdef ( Normal_Array[Column][Row][Counter] )
#declare Counter = Counter + 1;
#end // #while (Counter < 8)
#declare Vertex_Normal = vnormalize {Triangle_Normal_Sum}
I think I will try to test this tonight. Let me know if I understood
corectly what you are trying to do.
-Shay
Hugo <hua### [at] post3 tele dk> wrote in message news:3c83ef1f@news.povray.org...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Better idea. Just make an array (Normal_Array[Columns][Rows][1]) and set
every value to <0,0,0>. Then, keep adding normals to the <0,0,0> when
appropriate. This will make the macro adaptable to more meshes.
-Shay
Shay <sah### [at] simcoparts com> wrote in message
news:3c83f484$1@news.povray.org...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
The modelling is great, if you understand modelling as
creating any object. For me modelling is also creating
a model of something. Hence the question what it is,
just to know what to compare it with. So my verdict:
technical achievement: 9.5
artistic merit: 7
conformity to real object: NA
conversation piece: 8.5
Is that what you wanted to hear? More serious: for some
obscure reason I am interested in working with patches,
their scaling properties, connecting different patches
together, etc. An object like this could be an interesting
object to test what to achieve with patches for me, except
that I do not have a reference, other than your image :)
Andrel
Shay wrote:
>
> Clever ideas, guys, but what did you think of the modeling?
>
> Rick [Kitty5] <ric### [at] kitty5 com> wrote in message
> news:3c834ea9$1@news.povray.org...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Let me know if I understood
> corectly what you are trying to do.
Yes you have. :o)
> Better idea. Just make an array (Normal_Array[Columns][Rows][1]) and set
> every value to <0,0,0>. Then, keep adding normals to the <0,0,0> when
> appropriate. This will make the macro adaptable to more meshes.
Yes, true.. I will clean up my code cause I keep getting confused, but it
should be possible that it just calls your macro once for each grid - then
ends with the final normals to each vertex.
I'll be back tomorrow.
:o)
Hugo
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |