![](/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) |
Ron Parker <ron### [at] povray org> wrote:
: You missed a step. After you finish all the surfaces, you have to make sure
: they're correctly oriented. Even if it's just one surface, you have to
: make sure you haven't inverted it.
Well, this is an interesting question. How do you determine for a closed
mesh surface, which side is inside and which one is outside?
What about open mesh surfaces?
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
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) |
ryan constantine <rco### [at] yahoo com> wrote:
: what kind of meshes does this work on? can it convert from regular to
: mesh2?
It reads a pov-file with meshes and writes and identical pov-file with
the same meshes, except that all the triangles are smooth_triangles. Everything
else is preserved.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
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) |
On 30 Aug 2000 10:14:04 -0400, Warp wrote:
>Ron Parker <ron### [at] povray org> wrote:
>: You missed a step. After you finish all the surfaces, you have to make sure
>: they're correctly oriented. Even if it's just one surface, you have to
>: make sure you haven't inverted it.
>
> Well, this is an interesting question. How do you determine for a closed
>mesh surface, which side is inside and which one is outside?
> What about open mesh surfaces?
Open mesh surfaces are impossible, but that's because the term "inside" has
no meaning for one.
For a closed mesh surface, fire a ray from outside the bounding box and check
the normal.
Some "well-behaved" "closed" surfaces will still fail; a 3-d projection of a
klein bottle, for example, would fail. Those are the fault of the modeler
and shouldn't concern us.
--
Ron Parker http://www2.fwi.com/~parkerr/traces.html
My opinions. Mine. Not anyone else's.
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) |
In article <slr### [at] fwi com>, ron### [at] povray org
wrote:
> Open mesh surfaces are impossible, but that's because the term
> "inside" has no meaning for one.
A height field is an open mesh surface with an "inside". :-)
Of course, it has a specific definition of "insideness", which I think
is "Any point below the surface".
--
Christopher James Huff
Personal: chr### [at] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, http://tag.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) |
On Wed, 30 Aug 2000 11:02:08 -0500, Chris Huff wrote:
>In article <slr### [at] fwi com>, ron### [at] povray org
>wrote:
>
>> Open mesh surfaces are impossible, but that's because the term
>> "inside" has no meaning for one.
>
>A height field is an open mesh surface with an "inside". :-)
>Of course, it has a specific definition of "insideness", which I think
>is "Any point below the surface".
Lots of open surfaces have "insides." Consider, for example, an open cylinder
or a clipped object. But those are a matter of definition and might not do
what you expect them to in CSG.
--
Ron Parker http://www2.fwi.com/~parkerr/traces.html
My opinions. Mine. Not anyone else's.
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) |
what are the benefits of smooth triangles? do they have explicit
normals in the file?
Warp wrote:
>
> ryan constantine <rco### [at] yahoo com> wrote:
> : what kind of meshes does this work on? can it convert from regular to
> : mesh2?
>
> It reads a pov-file with meshes and writes and identical pov-file with
> the same meshes, except that all the triangles are smooth_triangles. Everything
> else is preserved.
>
> --
> main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
> ):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
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) |
thanks everybody. i haven't started yet, but i think you have given me
enough information to do what i want.
ryan constantine wrote:
>
> i posted a closeup of a section of the xwing scene i posted last month.
> it shows the torpedo tube area, but the pieces used to cut out of the
> mesh show up as semi-transparent objects (which are kind of hard to
> see). i'm not sure what is going on. the two tubes (one on each side)
> are each cut with a cylinder and a sphere. the four items are in one
> csg union together under a difference with the mesh fuselage. should i
> union each set seperately so one tube is cut at a time? does it matter
> that the left tube doesn't touch the right tube but they are in the same
> union? might adjusting the inside_vector help? and if i animate the
> ship's movement, will i need to change the inside_vector to prevent such
> errors?
>
> and on another note, is it possible to texture individual triangles in a
> solid mesh, or do i need to convert to mesh2? if so how? or can i use
> uv mapping? how?
>
> TIA.
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) |
Ron Parker <ron### [at] povray org> wrote:
: For a closed mesh surface, fire a ray from outside the bounding box and check
: the normal.
And hope that the ray hits the mesh? If it doesn't, shoot another ray? What
if after shooting 100 rays you still haven't hit the mesh? :)
I think there should be a more "secure" way of doing it.
I was thinking about how to make sure that the mesh really is closed. I think
that it's enough to check that every triangle has three and only three
adjacent triangles.
It's not usual, but very possible that a triangle has more than three
adjacent triangles, but I think that in that case we are in trouble.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
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) |
ryan constantine <rco### [at] yahoo com> wrote:
: what are the benefits of smooth triangles?
This should be obvious when you see a mesh rendered with regular triangles
and then with smooth triangles.
For examples, see:
http://iki.fi/warp/PovUtils/smooth.html
: do they have explicit
: normals in the file?
Yes.
Although the mesh smoother calculates single normals for each vertex,
it's perfectly possible that in a pov mesh there could be different normals
for the same vertex, one for each triangle (actually there is, but they
are often the same vector, but they could be different).
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
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) |
Oh, and there's another problem with the ray-shooting technique:
Even if your ray hits the mesh, if the mesh consists of separate parts
(all closed) you'll only be able to fix the part that the ray hit. The other
parts will still have the problem.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
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) |