NvTriStrip: Triangle stripification library
NvTriStrip provides a Ruby interface for Nvidia's Triangle stripification library.
Original NvTriStrip is available from developer.nvidia.com , I've slightly modified the lib to fix compiling on various platforms.
All features and shortcomings of Nvidia's library are (hopefully) preserved.
Makes trianglestrips out of triangle lists
Optimizes trianglestrips for good cache use
Optionally stitches separate strips with degenerates
Can throw small strips into a list instead
Remaps indices to improve spatial locality in your vertex buffer
Limited geometry to 65k vertices (But that also has some practical value)
Uses global state to control some options (but should be otherwise reentrant)
Ruby version has to do some back and forth copying of the indices
gem install nvtristrip-ruby
require 'nvtristrip' my_triangle_indices=[0,1,2,1,2,3] # Two triangles validate=true stripified_indices=NvTriStrip::generate_strips my_triangle_indices, validate # And now stripifiedIndices is an Array of NvTriStrip::PrimitiveGroup objects, which are Enumerable. remapped_indices=NvTriStrip::remap_indices stripified_indices, 3 # And now remappedIndices is an array of PrimitiveGroups objects with indices # remapped for better spatial locality. With this information you should remap your vertex buffer.