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 / 7562
7561  |  7563
Subject: 
Re: Smoothing on part level using edge lines
Newsgroups: 
lugnet.cad.dev
Date: 
Mon, 5 Aug 2002 17:09:06 GMT
Viewed: 
412 times
  
In lugnet.cad.dev, Martijn Zwaal writes:
When I was implementing smoothing on part level using optional lines, I
discovered an artifact in the smoothing algorithm. You can see what I mean
by looking at the 'Space Radar Dish' 3960.dat using LDView 1.95 or later
with primitive substitution disabled. You can see that the normals of the
ring primitive get blended with the dish.

This is technically due to bad dat code, not the algorithm.  That edge
shouldn't contain optional lines.  However, given that they used a smashed
half-sphere, they had no control over the presense of type 5 lines along
that edge.  And it's the most logical way to model that part.  One of the
enhancements I want to add is an angle threshold, so that smoothing won't
occur if the angle between the two polygons is more than a set amount.


Smoothing using optional lines gives a nice visual improvement if used on
dat level and it's fast but it's not very good on edges so seams can be
seen. It also looks nice on part level but things sometimes get too smooth
around edges and optional lines can be applied arbitrarily in a part (like
in the minifig arms).

The optional lines on the minifig arms are just wrong.  They won't display
correctly in their original designed purpose, so I don't think it's a good
idea to use them as an example.  However, as you pointed out with the radar
dish, there are certainly existing parts that produce incorrect smoothing
behavior.  (The dimple in the side of the minifig motorcycle helmet has the
same problem as this radar dish.)


After realizing that smoothing on part level is not too expensive I
reconsidered the suggestion of smoothing using edge lines. I think an
algorithm based on them should also smooth hollow parts. It works almost the
same. Just exchange normals on every edge, except when an 'edge line' is
present on the edge. This might smooth al parts correctly.

I tend to agree that this might produce better results overall.  It's
certainly the case that optional lines are much more likely to be incorrect
in the existing parts.  They're a whole lot harder to verify visually, since
you have to spin the part all around and hope you didn't miss any orientations.

On that note, the current smoothing algorithm is probably the most effective
test for correct placement of optional lines.  If a curved section doesn't
look smooth, then the optional lines are probably wrong.  Either that, or
the smoothing code is broken :-).  However, once you see a spot that should
be smoothed and isn't, it's usually straightforward to check the optional
lines in that spot visually.

--Travis Cobbs (tcobbs@REMOVE.halibut.com)



Message has 1 Reply:
  Re: Smoothing on part level using edge lines
 
If you check out the big space dish (3961.dat) you can see the optional line algorithm fails because there are no optional lines. In my opinion this part is good. There is no need to fix this part because it will only get larger and slows down some (...) (22 years ago, 6-Aug-02, to lugnet.cad.dev)

Message is in Reply To:
  Smoothing on part level using edge lines
 
When I was implementing smoothing on part level using optional lines, I discovered an artifact in the smoothing algorithm. You can see what I mean by looking at the 'Space Radar Dish' 3960.dat using LDView 1.95 or later with primitive substitution (...) (22 years ago, 5-Aug-02, to lugnet.cad.dev)

11 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