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 / 3084
3083  |  3085
Subject: 
Re: CW/CCW, vertex sequence, co-planar, convex
Newsgroups: 
lugnet.cad.dev
Date: 
Sat, 9 Oct 1999 00:04:50 GMT
Viewed: 
807 times
  
Steve Bliss wrote:
On Fri, 8 Oct 1999 07:55:12 GMT, "Lars C. Hassing" wrote:

Gary Williams wrote in message ...
A part file is compliant if its polygon vertex orders are known.

The primitives used by the part file are completely irrelevant.

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.

Checking the order of points in a file should not depend on checking the
inversion or subfiles for the file.  That's why we've been talking about
the 0 FACE UNKNOWN -- so parts of files can be fixed, even if the entire
file can't be addressed.


Yes, you can of course settle for checking only the tris/quads of a file
and put UNKNOWN around subfile references. But then you would miss the
most important speed boost coming from the primitives, which are responsible
for the majority of the total number of polygons, as you are aware of [1].

What I meant to stress was, that you cannot say subfile references are
compliant unless the orientations (inside/outside-ness) of the subfiles
are known.

Having said that, I do agree that the primitives should get the first
attention, because those files get used more than any others.
[1]  ;-)

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.

Wait a minute, the FACE directive of a primitive is irrelevant.
A part should not care (or even know) whether a primitive uses CCW or
CW internally for its faces, it is a private matter for that primitive.
The part will use INVERT if it needs to invert the inside-out definition
of a primitive.

True, but the orientation of the faces (in or out, up or down) needs to be
determined before the part can be referenced in a compliant manner.


Aren't we saying the same? My terms may be poor, but I mean:
inside-out definition = orientation of the faces (in or out, up or down)
= inside/outside-ness
(e.g. cylinders' surfaces facing outward, disc facing upward)

I think the rendering program will have to distinguish between
models/submodels and parts/subparts and primitives, or more
precisely, between parts and non-parts.

I disagree, and I'll explain myself below.

(C)CW-certification shouldn't be required for models/submodels.

I think they should, a good editing program will stick a 0 CLIPPING ON or 0
FACE CW in the model's header.  A good rendering program will have an
option to enable or disable clipping by default.  That option will take the
place of an explicit command in the model file.

They may use mirroring, but will not (should not) use the INVERT
nor FACE meta-commands.

Why not?  What's the logical reason for disabling a feature that
knowledgeable modellers can use to their advantage?

Only a part can enable the use of the (C)CW-info!

Not true.  Any DAT file can use any command, so any DAT file should be able
to include optimization information.

When the recursive rendering function encounters e.g. a certified
primitive, the (C)CW-info in it cannot be utilized unless the
function went through a certified part.

True, except I'd replace 'part' with 'file' at the end.


I have always liked the fact that DAT files are the same no matter what
type they are. I guess the good recursive nature is appealing to
programmers...

My suggestion is a pragmatic approach to enable the numerous existing
models to benefit from backface-culling.
OK, a good rendering program could implicitly add a 0 CLIPPING ON,
but what about submodels? Won't they introduce a CLIPING OFF hole
in the recursive chain?
That's why I think the parts should be the starting point for clipping.

There is nothing stopping knowledgeable modellers from using the
advanced features by initiating clipping ealier in the chain, but by
default clipping would start with the parts (the certified ones).

IMHO parts *are* (conceptually) special: they are our building blocks,
we keep them listed in parts.lst and catalogs.

Actually L3P already treats part DAT files specially: to make a little
space (seam) between the bricks, the parts are shrinked. If also the
primitives were shrunken, then the studs would float above the bricks.
http://www.netby.net/Nord/Mandelvej/Hassing/l3p_sw.html
/Lars



Message has 1 Reply:
  Re: CW/CCW, vertex sequence, co-planar, convex
 
(...) Understood and agreed. (...) Also, the primitive files will (generally) require less work than most part-files. [About introducing processing-by-file-type] (...) Yes, if they didn't have a 0 CLIPPING ON directive. That's why I said a good (...) (25 years ago, 11-Oct-99, to lugnet.cad.dev)

Message is in Reply To:
  Re: CW/CCW, vertex sequence, co-planar, convex
 
(...) Checking the order of points in a file should not depend on checking the inversion or subfiles for the file. That's why we've been talking about the 0 FACE UNKNOWN -- so parts of files can be fixed, even if the entire file can't be addressed. (...) (25 years ago, 8-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