To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.devOpen lugnet.cad.dev in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Development / 3034
3033  |  3035
Subject: 
Re: CW/CCW, vertex sequence, co-planar, convex
Newsgroups: 
lugnet.cad.dev
Date: 
Mon, 4 Oct 1999 18:45:17 GMT
Viewed: 
717 times
  
John VanZwieten wrote in message ...
It seems to me that there are two major "camps" in the CW/CCW debate.


Actually, I count three ideas.

A.  Face-by-Face Method
Disadvantages might be:
1.  It might become overly complicated (either for part authors or for the
rendering program) to follow the trail of CW-ness.
2.  Repeated 0 CW, 0 CCW, 0 Invert commands could make the part files • messy.

B. Part-by-Part Method
With this method, a part is either [C]CW compliant or it is not.  If it is
marked compliant (perhaps with 0 [C]CW-Compliant at the beginning), then • when
it is drawn only [C]CW faces are drawn.  Otherwise all faces are drawn.

For a part to be considered compliant, all subparts and primitives used in • the
part must themselves be compliant.  Thus the stud2.dat primitive would have • to
be altered to:
Advantages of the part-by-part model would be:
1.  Easier for rendering programs to deal with, since the program would • only
have to follow inversions down to the part level.  For example, it would • have
to recognize that part x was inverted in submodel "a," which was inverted • in
the main model file, and so CW-ness will be double-reversed.  But it could
then draw all the CCW faces in the part (and its primitives) and skip the • CW
faces.
2.  Part files would be altered considerably, but would only increase • slightly
in size or complexity.

Disadvantages:
1.  Subparts, because they are not closed, probably could not be evaluated
with the part-fixer.  Thus most parts using subparts would be ineligible • for
CW certification.
2.  Pretty much dependent on creating a robust "part-fixer" program.  Parts
more complex than basic bricks & plates would be very difficult to fix
manually.



The third option, which I believe would be best, is similar to your
part-by-part option.  However, being "compliant" in this case simply means
that the file contains at least one FACE CW|CCW command before any polygon
definitions.

A part file is compliant if its polygon vertex orders are known.

The primitives used by the part file are completely irrelevant.  Each
primitive may or may not have a FACE command in it.  If they don't, then all
of their polygons are treated as UNKNOWN and are always rendered.

Perhaps "compliant" is a misleading term here.  By having a FACE directive
in a file, the file is "backface culling ready".

Ideally some group of people will organize the primitives so that they each
have a FACE directive, which will be chosen (sometimes arbitrarily) to
minimize the number of anticipated INVERTs for parts using the primitives.

Then the individual parts files will be cleaned up, but doing the primitives
first would have the biggest initial impact on performance.

Now the only questionable situation is when a part with unknown vertex order
references a primitive that is known.  In this case it may be necessary to
treat the primitive as unknown because the part obviously will not have been
checked to see if the primitive needs to be inverted.

-Gary



Message has 1 Reply:
  Re: CW/CCW, vertex sequence, co-planar, convex
 
Gary Williams wrote in message ... (...) Well, inside/outside-ness also counts. It doesn't make sense to certify a part before ALL its subfiles have defined what is inside/outside. Until then you cannot determine whether or not you need any INVERTS. (...) (25 years ago, 8-Oct-99, to lugnet.cad.dev)

Message is in Reply To:
  Re: CW/CCW, vertex sequence, co-planar, convex  [DAT]
 
It seems to me that there are two major "camps" in the CW/CCW debate. A. Face-by-Face Method This method suggests that CW-ness be ultimately evaluated on a face-by-face basis. Each quad in a primitive or part would hold a value of CW,CCW, or (...) (25 years ago, 4-Oct-99, to lugnet.cad.dev)

53 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
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR