Three Subdivide Save

Smooth subdivision surface modifier for use with three.js BufferGeometry.

Project README

Three Subdivide

This modifier uses the Loop (Charles Loop, 1987) subdivision surface algorithm to smooth modern three.js BufferGeometry.

Examples

Screenshot

Loop Subdivision Demo

Background

       At one point, three.js included a subdivision surface modifier in the extended examples, it was removed in r125. This modifier was originally based on the Catmull-Clark algorithm, which works best for geometry with convex coplanar n-gon faces. In three.js r60 the modifier was changed to use the Loop algorithm, which was designed to work better with triangle based meshes.

       The Loop algorithm, however, doesn't always provide uniform results as the vertices are skewed toward the most used vertex positions. A triangle box (like BoxGeometry for example) will favor some corners more than others. To alleviate this issue, this implementation includes an initial pass to split coplanar faces at their shared edges. It starts by splitting along the longest shared edge first, and then from that midpoint it splits to any remaining coplanar shared edges. This can be disabled by passing 'split' as false.

Open Source Agenda is not affiliated with "Three Subdivide" Project. README Source: stevinz/three-subdivide

Open Source Agenda Badge

Open Source Agenda Rating