OpenSubdiv/python
manuelk ad3bacbbbb remove topology data from FarMesh and refactor uniform / adaptive
code paths using FarPatchTables for all serialized topological data.
2013-05-15 17:53:40 -07:00
..
doc move screenshot of demo to doc folder 2013-02-07 16:57:22 -08:00
osd remove topology data from FarMesh and refactor uniform / adaptive 2013-05-15 17:53:40 -07:00
test Revamped Python bindings that use SWIG 2013-02-04 21:10:58 -08:00
README.md typo fix 2013-02-17 08:28:48 -08:00
setup.py - fix gcc offsetof compile warnings by passing flags & definitions from CMake to the setup.py script 2013-02-08 13:51:11 -08:00

Instructions

The OpenSubdiv Python wrapper has been tested with Python 2.6 and Python 2.7. Make sure you install SWIG and numpy before you begin.

CMake builds the extension like this:

./setup.py build --osddir='../build/lib' \
                 --build-platlib='../build/python' \
                 --build-temp='../build/temp'

If you invoke this manually, you'll need to replace ../build/lib with the folder that has libosdCPU.a.

The demo that uses PyQt and PyOpenGL can be found in ../examples/python.

You can run some unit tests like so:

./setup.py test

You can clean, build, and test in one go like this:

./setup.py clean --all build test

You can generate and view the Sphinx-generated documentation like so:

./setup.py doc
open ./doc/_build/html/index.html

To Do Items

  • Add support for face varying data by augmenting _FaceAdapter in adapters.py
    • Subdivider should expose a quads property that allows access to hole etc
    • Exercise this in the demo by getting it down to GPU (maybe do "discard" for certain faces)
  • Instead of using OsdCpuVertexBuffer, create a "NumpyCpuVertexBuffer" that wraps a numpy array
  • Add an API that looks very similar to the RIB parameters for RiHierarchicalSubdiv
  • Remove all the caveats that are listed in the Sphinx docs :)
  • Sphinx documentation should be CMake-ified.