Content deleted Content added
m Bot: Migrating 2 interwiki links, now provided by Wikidata on d:q1191935 |
m grammar |
||
(9 intermediate revisions by 8 users not shown) | |||
Line 1:
'''Newell's Algorithm''' is a [[3D computer graphics]] procedure for elimination of [[polygon]] cycles in the depth sorting required in [[Hidden surface determination |hidden surface removal]]. It was proposed in 1972 by brothers [[Martin Newell (computer scientist)|Martin Newell]] and [[Dick Newell]], and Tom Sancha, while all three were working at [[CADCentre]].
In the depth sorting phase of hidden surface removal, if two polygons have no overlapping '''extents''' or extreme minimum and maximum values in the x, y, and z directions, then they can be easily sorted. If two polygons, {{var|Q}} and {{var|P}}, do have overlapping extents in the Z direction, then it is possible that cutting is necessary.
[[Image:Painters_problem.png|right|frame|Cyclic polygons must be eliminated to correctly sort them by depth]]
In that case, Newell's algorithm tests the following:
# Test for Z overlap; implied in the selection of the face {{var|Q}} from the sort list
# The extreme coordinate values in X of the two faces do not overlap ([[minimax]] test in X)
# The extreme coordinate values in Y of the two faces do not overlap (minimax test in Y)
# All vertices of P lie deeper than the plane of {{var|Q}}
# All vertices of Q lie closer to the viewpoint than the plane of {{var|P}}
# The [[rasterisation]] of {{var|P}} and {{var|Q}} do not overlap
If the tests are all false, then switch the order of {{var|P}} and {{var|Q}} in the sort, record having done so, and try again. If there is an attempt to switch the order of a polygon a second time, there is a visibility cycle, and the polygons must be split. Splitting is accomplished by selecting one polygon and cutting it along the line of intersection with the other polygon. The above tests are again performed, and the algorithm continues until all polygons pass the above tests. ▼
▲Note also that the polygons must be [[planar]].
▲If the tests are all false, then the polygons must be split. Splitting is accomplished by selecting one polygon and cutting it along the line of intersection with the other polygon. The above tests are again performed, and the algorithm continues until all polygons pass the above tests.
==References==
Line 30 ⟶ 28:
| title = A characterization of ten hidden-surface algorithms
| volume = 6
| year = 1974| citeseerx = 10.1.1.132.8222 | s2cid = 14222390 }}.
*{{citation
| last1 = Newell | first1 = M. E. | author1-link = Martin Newell (computer scientist)
Line 41 ⟶ 39:
==See also==
* [[Painter's algorithm]]
* [[Boolean operations on polygons]]
{{compu-graphics-stub}}
Line 47 ⟶ 46:
[[Category:3D computer graphics]]
[[Category:Computer graphics algorithms]]
[[Category:History of computing in the United Kingdom]]
[[Category:Science and technology in Cambridgeshire]]
|