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 / 2905
2904  |  2906
Subject: 
Re: Hidden surface removal, and vertex order in part/primitive DAT files
Newsgroups: 
lugnet.cad.dev
Date: 
Mon, 27 Sep 1999 11:44:44 GMT
Viewed: 
464 times
  
In lugnet.cad.dev, John VanZwieten writes:
In lugnet.cad.dev, Gary Williams writes:
I performed some hidden surface removal tests today (I should have been
working on other things, like the inventory file cleanup utility...) and it
appears that there isn't a standard order for listing vertices in DAT files
(I only tested a few elements, and my code may be flawed, so I may be
wrong).

A common technique in the rendering world is to always specify vertices of a
polygon in clockwise order (clockwise as viewed from the outside of the
polyhedra that contains it).  This cuts the rendering time in half by
allowing the rendering algorithm to ignore the polygons that face away from
the observer (assuming there are no transparent polygons through which the
observer might see the backside of another polygon).

This technique can also cut in half the amount of time required to determine
which polygon the user clicked on when selecting elements in a model, since
you can't click on a polygon that's facing away from you, so half the
polygons don't need to be tested.

So...I've got half a mind to write a utility that will load every existing
part and primitive file and analyze them and automatically tweak the vertex
orders of all the polygons.  But I thought I'd mention the idea first.

-Gary

If you run a LUGNET search on backface culling, you'll find extensive
discussion of this.  Some parts (mostly done by Steve Bliss) have a "0 CW-
Compliant" tag, which means you can use backface culling on them.

It would be pretty amazing if you could create a utility to automatically fix
other parts.  Even if you fix the vertex order of polygons, you have to worry
about the transformations applied to primitives and subparts in a part file.
And then you'd have to adjust for transformations applied to parts and
submodels in a model file.

Would be great to save 1/2 the rendering time, though.

-John Van

I'd be mighty impressed, too, if you could do this automatically. For solid
polyhedra, it's not too difficult as you can assume that the origin of the
solid is within the material, but most Lego parts are re-entrent (ie. partly
hollow), so there is not a single reference point which is inside the plastic.
In the simplest case, imagine a 1x1 brick. For each outer side face there is a
parallel inner face. These would need complmentary vertex sequences.

Good luck.

Chris
chris_w_dee@hotmail.com



Message has 1 Reply:
  Re: Hidden surface removal, and vertex order in part/primitive DAT files
 
Chris Dee wrote in message ... (...) partly (...) plastic. (...) is a (...) The algorithm I came up with yesterday will handle such cases. Basically for every face in a polygon, I'll pass a ray through it and count the number of polygons that it (...) (25 years ago, 27-Sep-99, to lugnet.cad.dev)

Message is in Reply To:
  Re: Hidden surface removal, and vertex order in part/primitive DAT files
 
(...) If you run a LUGNET search on backface culling, you'll find extensive discussion of this. Some parts (mostly done by Steve Bliss) have a "0 CW- Compliant" tag, which means you can use backface culling on them. It would be pretty amazing if you (...) (25 years ago, 27-Sep-99, to lugnet.cad.dev)

56 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