Subject:
|
Re: Clipping / CCW / CW / INVERT
|
Newsgroups:
|
lugnet.cad.dev
|
Date:
|
Fri, 8 Oct 1999 13:10:01 GMT
|
Viewed:
|
529 times
|
| |
| |
Rui Martins wrote in message ...
> On Thu, 7 Oct 1999, Steve Bliss wrote:
> > Here's a brief comparision of the proposed 0 FACE meta-statement, and the
> > WINDING/CLIPPING meta-statements:
> >
> > 0 FACE CW =
> > 0 WINDING CW
> > 0 CLIPPING ON
> > 0 FACE CCW =
> > 0 WINDING CCW
> > 0 CLIPPING ON
> > 0 FACE UNKNOWN =
> > 0 CLIPPING OFF
> > 0 WINDING UNKNOWN (if there was such a thing)
> > 0 FACE DOUBLESIDED
> > 0 CLIPPING OFF
> > (except FACE DS doesn't preserve any WINDING state)
>
> You got the Ideia wright !
>
> > Looks like half of one, six dozen of the other to me. Using
You mean six of one, half a dozen of the other. :)
> > WINDING/CLIPPING would be slightly more powerful, but I don't know that it
> > would have any practical benefit.
> Yes it will!
> it will allow to keep backward compatibility with every file already
> made, without changing anything. If the file is enhanced then it will
> benefit a Faster Drawing and extract functionality (real transparency).
Using 0 FACE CW|CCW|DS|UNKNOWN will also keep backward compatibility.
Either way though, some quadrilaterals will need to be manually tweaked
because they are bowtie-shaped or noncoplanar.
> Remember that this is what is done in OpenGL, which was well though by
> Silicon Graphics, after years in the 3D business.
> To use this features, in a similar way, will simplify the making (or
> appending) of a program written in OpenGL, and probably D3D (since they
> use something similar).
I don't see how using a WINDING tag would be any better than using a FACE
tag. Non-Lego CAD programs can't interpret our dat files directly anyway.
It seems that the tags you prefer could be easily generated by looking at
FACE and INVERT tags though, if there ever was a need.
> >
> > <SNIP About the stair case quads >
> >
> > > About the INVERT tag
> > > --------------------
> > > To know if the file should be inverted, we could look if the determinant
> > > is negative or not (Someone already said that).
> > >
> > > Why would we use a tag to inform the parser of something that he can find
> > > out?
> >
> > To allow parts-authors to selectively invert subfiles.
>
> Maybe you are missing something here!
> To invert a file, you simply have to change the matrix values in the
> reference to the other file.
> Remember that you can invert a file with any combination of 1 or 2
> coord axis.
> so, saying INVERT, wouldn't mean anything, if you didn't know how to
> invert.
> Since you have to define the matrix, the inversion information is
> already in the matrix. The Tag would only be usefull to avoid
> calculating the determinant.
Yes, you can invert a primitive by manipulating its orientation matrix, but
if it happens to be asymmetrical, using a matrix to turn it inside-out would
result in a mirrored shape and this is not what we want (I can't think of
any asymmetrical primitives at the moment--up till this point I've assumed
that some exist; I believe there are some asymmetrical sub-parts though).
It's also hard to tell which primitives are to be inverted when manually
browsing through a part's .dat file, without explicit INVERT statements.
Matrices aren't easy to interpret with the human mind.
Also, when a complete part is mirrored with a matrix, it is not our intent
to invert it; there should be an implied invert to cancel out the negative
determinant of the orientation matrix. (A complete inside-out part wouldn't
have much practical use in most models, and would be quite unbuildable in
the physical world.)
-Gary
|
|
Message is in Reply To:
| | Re: Clipping / CCW / CW / INVERT
|
| (...) Thanks! (...) I knew that ! ;) (...) LDraw doesn't, but this specification is for new Programs which are backwards compatible with Ldraw, but with a bunch of new enhancements. Check the instructions of any LEGO MODEL and you will see an (...) (25 years ago, 8-Oct-99, to lugnet.cad.dev)
|
18 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|