| | | | | On Mon, 8 Nov 1999 16:38:50 GMT, Rui Martins <Rui.Martins@link.pt> wrote:
> of course, but all files start on one root, if that is no BFC certified,
> than no acceleration.
As Jacob said, this is why the specification suggests that rendering programs
allow the user to select the option of defaulting CLIPPING to on or off.
> but a certified part can have sub parts not certified ! hence another
> no-go.
Huh? In that case, the uncertified primitive is not back-face-culled, but the
certified part is bfc'ed. How do want to improve this? The rendering engine
can't bfc un-certified files.
> Every file (primitive / subpart / part / model) once certified, will
> benefit for itself, as long as CLIPPING is LOCAL.
Nope. No subfile in a rendering, which is below an uncertified file, can assume
it is normal or inverted. It doesn't matter if we define CLIPPING as local or
passed-down.
Steve
| | | | | | | | | | | | |
Special:
|
[DAT] (requires LDraw-compatible viewer)
|
Subject:
|
Re: Line in the Sand
|
Newsgroups:
|
lugnet.cad.dev
|
Date:
|
Wed, 10 Nov 1999 12:44:49 GMT
|
Reply-To:
|
rui.martins@link.+Spamless+pt
|
Viewed:
|
2707 times
|
| |
| On Tue, 9 Nov 1999, Steve Bliss wrote:
> On Mon, 8 Nov 1999 16:38:50 GMT, Rui Martins <Rui.Martins@link.pt> wrote:
>
> > of course, but all files start on one root, if that is no BFC certified,
> > than no acceleration.
>
> As Jacob said, this is why the specification suggests that rendering programs
> allow the user to select the option of defaulting CLIPPING to on or off.
Strange sentence, CLIPPING is OFF by default, you can change that by
including a CLIPPING ON. And this was not what was beeing discussed. See
below.
> > but a certified part can have sub parts not certified ! hence another
> > no-go.
>
> Huh? In that case, the uncertified primitive is not back-face-culled, but the
> certified part is bfc'ed. How do want to improve this? The rendering engine
> can't bfc un-certified files.
Look at this two trees
root root
C N
/ \ / \
C N C N
/| |\ /| |\
C N C N C N C N
1 2 3 4 5 6 7 8
'C' means a certified .DAT
'N' means a NOT certified .DAT
Branch:
1: C-C-C accelerated. Hence all files (this is the best case)
2: C-C accelerated -N UNaccelerated
3: C accelerated N-C UNaccelerated
4: C accelerated N-C UNaccelerated
5: none accelerated N-C-C UNaccelerated
6: none accelerated N-C-N UNaccelerated
7: none accelerated N-N-C UNaccelerated
8: none accelerated N-N-N UNaccelerated (This is the current case)
with some tweaking case 5 and 6 could also accelerate the 'C'ertified
files.
So resuming, with your proposal you can't accelerate all the
certified files, with my proposal you CAN.
This becomes even more evident if you have a branch like:
C-N-C-C-C-N-C
The higher the 'N'ot certified file is, the worst the case is.
remember that the first step is branch 7, we will try to
certified/optimize the primitives files.
The Only thing that I have not taken into account iet is:
" if any of these files has an INVERT command. "
Your proposal will have the same acceleration problems, but
my proposal will keep its robustness, if the invert command is processed
in the following form: (I refreshed my ideia)
- We have a Global state variable which keeps track of the current invert
state (by branch. NOTE: we should use depth first search order to use
only one variable).
- if the current file is processed with:
* invert_state = INVERTED, we interpret winding CCW as CW and vice-versa.
* invert_state = NORMAL, we interpret winding CCW and CW normally.
Remember that my proposal uses CLIPPING as a local setting.
Is this too complicated ?
I think not, maybe I can't explain my self well, or you guys are beeing
to stubborn. ;P sheech.
P.S.
Minstorm yourselfs please.
___
/ /_
/_ /
/ /_
/_ /
//
/
Rui Martins
| | | | | | | | | | | | | | | | |
| |
| On Wed, 10 Nov 1999 12:44:49 GMT, Rui Martins <Rui.Martins@link.pt> wrote:
> On Tue, 9 Nov 1999, Steve Bliss wrote:
>
> > As Jacob said, this is why the specification suggests that rendering programs
> > allow the user to select the option of defaulting CLIPPING to on or off.
>
> Strange sentence, CLIPPING is OFF by default, you can change that by
> including a CLIPPING ON. And this was not what was beeing discussed. See
> below.
I don't think I understand you here. Do you mean that it is strange to let the
user and/or programmer of the rendering program set the initial CLIPPING value?
[clipped nice rendering-process tree]
> The Only thing that I have not taken into account iet is:
> " if any of these files has an INVERT command. "
>
> Your proposal will have the same acceleration problems, but
> my proposal will keep its robustness, if the invert command is processed
> in the following form: (I refreshed my ideia)
>
> - We have a Global state variable which keeps track of the current invert
> state (by branch. NOTE: we should use depth first search order to use
> only one variable).
>
> - if the current file is processed with:
> * invert_state = INVERTED, we interpret winding CCW as CW and vice-versa.
>
> * invert_state = NORMAL, we interpret winding CCW and CW normally.
>
> Is this too complicated ?
It's not too complicated. A rendering engine will always have to do this in
order to correctly clip polygons. But it won't allow us to make any assumptions
about C-N-C branches.
First question: which invert-state are we keeping track of, the occurrences of 0
INVERT or the determinant of the transformation matrix?
If we are tracking 0 INVERTS, then we must have certified files all the way down
the branch in order track the invert_state. One non-certified file breaks the
chain.
If we are just looking at the determinant of the transformation matrix, then we
don't need a global variable, the determinant can be id'ed locally. But the
determinant doesn't tell us what we need to know. We need to know the authors'
intentions when they wrote the various files in the branch. Did they mean to
invert or not?
There's no way to track the invert-state along a C-N-C branch.
The one assumption which can (generally) be made is this: references from the
main model file to the parts-files do *not* invert the subfile. If we also
*assume* the main model is certified[1], then any certified part-files can be
clipped.
Steve
1) Even if there's no 0 CERTIFY BFC in the main file, 99%+ model files are
compliant, because they only reference part-files, and do not intend to invert
the parts.
| | | | | | |