|
In lugnet.cad.dat.parts.primitives, Steve Bliss writes:
> In lugnet.cad.dat.parts.primitives, Chris Dee wrote:
> > In lugnet.cad.dat.parts.primitives, Steve Bliss writes:
> > > Actually, for rounded elements, it's almost always[1] preferable to use
> > > primitives. That way, programs that do primitives substitution can replace
> > > the polygonal primitive with a true round object.
> >
> > There are some complex curved parts (e.g. most of the minifig headwear, the
> > minifig arm I'm working on right now, some wheels) where some regions can be
> > represented by the regular cyli, disc, cyls, cyls2 primitives, but there will
> > be regions that no amount of twisting or stretching can handle - and these have
> > do be done as polygons, and cannot be substituted. Then there will be gaps !
>
> Very true. In some cases (like the minifig arms), is it better to go
> with an all-polygon approach, or to use primitives as much as possible
> and fill in the rest with polygons?
Are you suggesting that there is (should be) a command to prevent primitive
substitution, or that the primitive should be inlined?
>
> > Also, where any rectilinear region intersects with a curved region the
> > intersection edge should be different when rendered with the 16-agon
> > primitives, to when rendered with substituted "true" curved surfaces. Such
> > support is generally not written into the DAT file.
>
> When filling in around a hole in a flat surface, one should 'always' use
> the X-4ndis.dat primitives. These are the only primitives that
> 'convert' from a round edge to a rectilinear edge.
Agreed. What I was more thinking of is the situation (in the minifig arm) where
one region is an irregularly truncated cylinder (and it is not possible to use
cyls.dat or cyls2.dat primitives). The fully circular section _can_ use a cyli
primitive, but the extension up to the irregular intersection can only be coded
as polygons. Take a look at the work-in-progress file at
http://news.lugnet.com/cad/dat/parts/?n=3587 in LDView with primitive
substitution on, and you should see what I mean. Actually some of these can be
replaced with cyls primitives, but it illustrates the point.
> In other cases, overlap can be written into the part. Or should we be
> thinking about a 'phantom' primitive, that would serve to inform
> primitive-substitutors that there are polygons adjoining a curved
> surface? Something like:
>
> 1 16 0 0 0 10 0 0 0 1 0 0 0 10 ring4.dat
> 1 16 0 0 0 10 0 0 0 1 0 0 0 10 ring4go.dat
>
> Where the real file ring4go.dat is empty, but is a signal to
> primitive-substitutors that the issue of gaps on the outside of the
> primitive need to be addressed.
>
> This could also be done as a meta-statement:
>
> 0 FILLGAPS OUTER
> 1 16 0 0 0 10 0 0 0 1 0 0 0 10 ring4.dat
>
> Where the FILLGAPS meta-statement would direct the primitive-substitutor
> to generate surface around the outside of the following primitive to
> fill any gaps between the true round surface and LDraw's polygonal
> approximation.
>
> Steve
Chris
|
|
Message has 1 Reply: | | Re: ring 3 to 5
|
| (...) I wasn't thinking of either, really. I was wondering if maybe the part should be modeled without any primitives at all. I suppose the practical result of that would be primitive-inlining. (...) In the case of the lower arm (forearm), I don't (...) (23 years ago, 6-May-02, to lugnet.cad.dat.parts.primitives)
|
Message is in Reply To:
| | Re: ring 3 to 5 [DAT]
|
| (...) Very true. In some cases (like the minifig arms), is it better to go with an all-polygon approach, or to use primitives as much as possible and fill in the rest with polygons? (...) When filling in around a hole in a flat surface, one should (...) (23 years ago, 3-May-02, to lugnet.cad.dat.parts.primitives)
|
28 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
|
|
|
|