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 / 3149
3148  |  3150
Subject: 
Re: Object Orientation & DAT files & CLIPPING/WINDING
Newsgroups: 
lugnet.cad.dev
Date: 
Wed, 20 Oct 1999 11:25:12 GMT
Reply-To: 
rui.martins@link.pt%Spamless%
Viewed: 
612 times
  
On Tue, 19 Oct 1999, Steve Bliss wrote:

On Mon, 18 Oct 1999 17:17:44 GMT, Rui Martins <Rui.Martins@link.pt> wrote:

FIRST OF ALL
my sugestion is that the CLIPPING, WINDING, INVERT are strictly local
where they are used.

CLIPPING is strictly local
WINDING is strictly local
INVERT is strictly local

<snipped stuff about INVERT>

I think we're disagreeing about the meaning of 'strictly local'.  As you
describe the operation of INVERT, it is *not* local.

  Yes it is.
The state of inversion is passed down the file-reference tree.

  The reference of the current GLOBAL state is passed down the
  file-reference tree, YES.

This is not a local operation.  It is true that each file, while it is
being rendered, has no information about which super-files inverted
(or didn't).

  Correct.

But it must know the current state of inversion, in order to clip correctly.

  NOT the FILE, but the RENDERING PROGRAM !

Contrast this with WINDING: if a file declares WINDING CW, this will not
imply that any subfiles invoked by that file will also be WINDING CW.  The
"state of winding" is only kept for the current file.[1]

  Agreed.

Each DAT-file has to establish its own WINDING.

  By default would be CCW.

It can have its own winding, INTERNALLY, but to rest of the world its as
if it has CCW WINDING all over it.
remember you can't see inside.

If you can't see inside it, then the rest of the world doesn't care what
the winding is.

  YES and NO.
  The internal winding used, does not care, but the supposed winding
  as seen (assumed) from the world must be a prefixed one (default is
  best, CCW)

The use for WINDING UNKNOWN would be primarily for existing files in the
parts library, not new files.

By what you said above WINDING UNKNOWN is not needed.

Since all this stuff is backwards compatible, the existing files, don't
need to be changed, unless you want to optimize them.
                     --------------------------------

What if I want to optimize *part* of a file?  Remember, I want to avoid
forcing the clipping state by hard-coding CLIPPING ON and CLIPPING OFF.

  How do you want do do that, without enclosing the optimized part with
  CLIPPING ON/CLIPPING OFF.

  NOTE: You can check the file WINDING, and NOT turn on clipping, but then
you want gain any speed increase.

  the rest of the .DAT file stays has it was before, unoptimized.

NO, the clipping state is not passed from file to file. It's LOCAL.

This is the point we disagree on.  I can see how to write files and
subfiles to work with either assumption (either the clipping-state is local
or it is passed into subfiles).

IMO, it is better to pass the clipping-state through to subfiles.  This
requires fewer assumptions about the way files work together, and places
fewer restrictions on the file author.

  Can't agree with that.

- By your assumption, you could have all files optimized, but if the
  first file in the reference tree, did not enable clipping, you wouldn't
  benefit of all the optimization done on the leaf files.

- Worst, if you had a root (as in a reference tree) file, which enabled
  clipping, and if along the way (tree-references), a non-optimized file
  was referenced, it would be errouneously drawn, because, the renderer
  was assuming that he could clip, but was using incorrect information
  (incorrect or reversed winding) and would clip the wrong polygons, or
  they would be drawn errouneously or not drawn at all.

In at least two ways, the clipping must be enforced from higher-up in the
file-reference tree (during rendering):

1. When the rendering program has an option to enable or disable clipping.

  This will be done globally, by the rendering program, by ignoring or NOT
  the CLIPPING commands.

2. Any file-references by a non-certified file must not clip.

  WHY ? ? ?
  That is only a restriction of your NON LOCAL CLIPPING assumption !

  if the files are like objects, they are independent, the optimization of
  one does not depend on WHO or WHERE it is used, after optimization, a
  specific file is optimized by itself, does NOT depend on others.

  this enables us, to optimized the files, as soon as we need or have the
  time to. and every file using the just optimized file, will benefit.


Rui Martins



Message is in Reply To:
  Re: Object Orientation & DAT files & CLIPPING/WINDING
 
(...) <snipped stuff about INVERT> I think we're disagreeing about the meaning of 'strictly local'. As you describe the operation of INVERT, it is *not* local. The state of inversion is passed down the file-reference tree. This is not a local (...) (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
    

Custom Search

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