Special:
|
[DAT] (requires LDraw-compatible viewer)
|
Subject:
|
Re: Object Orientation & DAT files & CLIPPING/WINDING
|
Newsgroups:
|
lugnet.cad.dev
|
Date:
|
Wed, 20 Oct 1999 22:09:42 GMT
|
Viewed:
|
787 times
|
| |
| |
Steve Bliss wrote...
> On Tue, 19 Oct 1999 13:25:53 GMT, "Lars C. Hassing" wrote:
>
> > Steve Bliss wrote in message <380b3366.9260126@lugnet.com>...
> > > > Now the INVERT problem: [snip]
> > > > NOTE:
> > > > if you had a non simetrical object, you will probably need an invert
> > > > matrix (with a negative determinant), besides the INVERT meta command.
> > >
> > > You'll always need to specify the inversion in the matrix, whether the
> > > subfile is asymmetrical or not. The matrix specifies the exact inversion
> > > to perform. The 0 INVERT is just a flag to the renderer, which says "Hey,
> > > rendering program! The next statement intentionally turns the subfile
> > > inside-out, so don't correct it."
> >
> >
> > No, you don't need to bother with the matrix. Use the 0 INVERT to tell
> > the renderer: "Hey, please turn the following subfiles inside-out".
>
> Yes the coded inversion is needed, for one big reason:
>
> The clipping-ready parts library must be compatible with non-clipping
> rendering programs, such as LDraw. So the inversions need to occur in the
> real commands, not in the clipping-extension meta-commands.
But it *is* compatible with LDraw!
You left out my example (which BTW had the INVERT placed incorrectly :-),
so I'll repeat it. stud2.dat is the hollow stud used on technic bricks.
It uses two cylinders:
1 16 0 -4 0 6 0 0 0 4 0 0 0 6 4-4cyli.dat
0 INVERT ON
1 16 0 -4 0 4 0 0 0 4 0 0 0 4 4-4cyli.dat
0 INVERT OFF
The first cylinder is the outer wall. Let's assume that the orientation
of 4-4cyli.dat is outwards. This is what we want, so we use a normal matrix.
The second cylinder is the inner wall, the wall of the hole in the stud.
Here the orientation of 4-4cyli should be inverted, because we now want the
inner side of the cyli to be the outside. We still use a normal matrix,
it's easy and intuitive - and correct. If we had used an inverting matrix,
(which would also be correct to do) the rendering program would just
"cancel it out", as it would do when mirroring sub-models.
And LDraw merely draws ALL tris/quads as usual! The stud2.dat file has not
changed from LDraw's point of view, just a few comments were added.
There's no reason to use an inverting matrix for LDraw. You are welcome to
do it, and it will work too, because LDraw draws everything.
> Now, if you want to talk about having a special version of the parts
> library just for clipping-ready renderers, let's go! But in a separate
> thread, please.
No, no special versions, thank you. Backward compatibility with our
reference-renderer, LDraw, is very important.
> > Apart from that I fully agree with Steve's comments to Rui.
>
> Seems like there was an echo in here, eh? ;) My earlier reply looked a lot
> like yours.
Yeah, I'm glad we were so agreed :-)
/Lars
|
|
Message has 1 Reply: | | Re: Object Orientation & DAT files & CLIPPING/WINDING
|
| (...) You are right. Or more precisely, I was wrong. Matrix-based *inversions* are not required. But matrix-based mirrorings will be necessary, for asymmetric primitives, like 1-4cyls.dat. (...) I was thinking about some approach that would map (...) (25 years ago, 21-Oct-99, to lugnet.cad.dev)
|
Message is in Reply To:
| | Re: Object Orientation & DAT files & CLIPPING/WINDING
|
| (...) Yes the coded inversion is needed, for one big reason: The clipping-ready parts library must be compatible with non-clipping rendering programs, such as LDraw. So the inversions need to occur in the real commands, not in the clipping-extension (...) (25 years ago, 19-Oct-99, to lugnet.cad.dev)
|
13 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|