OpenSubdiv alternatives and similar libraries
Based on the "Graphics" category.
Alternatively, view OpenSubdiv alternatives based on common mentions on social networks and blogs.
-
Atomic Game Engine
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C#, JavaScript, TypeScript, and C++ (http://www.AtomicGameEngine.com) -
Ogre 3D
A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT] -
Ion
A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] website -
Partio
Library for wrangling particle data, with support for most common file formats. [Modified BSD] -
Visualization Library
A C++ middleware for high-performance 2D and 3D graphics applications based on OpenGL 1.x-4.x supporting Windows, Linux and Mac OS X. -
Cairo
A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of OpenSubdiv or a related project?
README
OpenSubdiv
OpenSubdiv is a set of open source libraries that implement high performance subdivision surface (subdiv) evaluation on massively parallel CPU and GPU architectures. This codepath is optimized for drawing deforming subdivs with static topology at interactive framerates. The resulting limit surface matches Pixar's Renderman to numerical precision.
OpenSubdiv is covered by the Apache license, and is free to use for commercial or non-commercial use. This is the same code that Pixar uses internally for animated film production. Our intent is to encourage high performance accurate subdiv drawing by giving away the "good stuff".
Feel free to use it and let us know what you think.
For more details about OpenSubdiv, see Pixar Graphics Technologies.
Linux | Windows | macOS | |
---|---|---|---|
dev | |||
master |
Documents
Forum
Prerequisite
For complete information, please refer OpenSubdiv documents: Building with CMake
- General requirements:
Lib | Min Version | Note |
---|---|---|
CMake | 2.8.6 | Required |
- Osd optional requirements:
Lib | Min Version | Note |
---|---|---|
CUDA | 4.0 | cuda backend |
TBB | 4.0 | TBB backend |
OpenCL | 1.1 | CL backend |
DX11 SDK | DX backend | |
Metal | 1.2 | Metal backend |
- Requirements for building optional examples:
Lib | Min Version | Note |
---|---|---|
GLFW | 3.0.0 | GL examples |
Ptex | 2.0 | ptex viewers |
Zlib | (required for Ptex under windows) |
- Requirements for building documentation:
Lib |
---|
Docutils |
Doxygen |
Graphviz |
Build example to run glViewer and other example programs with minimal dependency
All platforms:
- Install cmake and GLFW
make sure GLFW install directories are configured as follows:
${GLFW_LOCATION}/include/GLFW/glfw3.h
${GLFW_LOCATION}/lib/libglfw3.a (linux)
${GLFW_LOCATION}/lib/glfw3.lib (windows)
- Clone OpenSubdiv repository, and create a build directory.
git clone https://github.com/PixarAnimationStudios/OpenSubdiv mkdir build cd build
Windows (Visual Studio)
cmake ^
-G "Visual Studio 15 2017 Win64" ^
-D NO_PTEX=1 -D NO_DOC=1 ^
-D NO_OMP=1 -D NO_TBB=1 -D NO_CUDA=1 -D NO_OPENCL=1 -D NO_CLEW=1 ^
-D "GLFW_LOCATION=*YOUR GLFW INSTALL LOCATION*" ^
..
cmake --build . --config Release --target install
Linux
cmake -D NO_PTEX=1 -D NO_DOC=1 \
-D NO_OMP=1 -D NO_TBB=1 -D NO_CUDA=1 -D NO_OPENCL=1 -D NO_CLEW=1 \
-D GLFW_LOCATION="*YOUR GLFW INSTALL LOCATION*" \
..
cmake --build . --config Release --target install
macOS
cmake -G Xcode -D NO_PTEX=1 -D NO_DOC=1 \
-D NO_OMP=1 -D NO_TBB=1 -D NO_CUDA=1 -D NO_OPENCL=1 -D NO_CLEW=1 \
-D GLFW_LOCATION="*YOUR GLFW INSTALL LOCATION*" \
..
cmake --build . --config Release --target install
iOS
- Because OpenSubdiv uses a self-built build tool (stringify) as part of the build process, you'll want to build for macOS and build the stringify target
SDKROOT=$(xcrun --sdk iphoneos --show-sdk-path) cmake -D NO_PTEX=1 -D NO_DOC=1 \
-D NO_OMP=1 -D NO_TBB=1 -D NO_CUDA=1 -D NO_OPENCL=1 -D NO_CLEW=1 \
-D STRINGIFY_LOCATION="*YOUR MACOS BUILD LOCATION*"/bin/stringify \
-D CMAKE_TOOLCHAIN_FILE=../cmake/iOSToolchain.cmake -G Xcode \
..
- This will produce an "OpenSubdiv.xcodeproj" that can be open and the targets 'mtlViewer' and 'mtlPtexViewer' (if NO_PTEX is ommitted and libPtex.a is installed in the iOS SDK) that can be run
Useful cmake options and environment variables
-DCMAKE_BUILD_TYPE=[Debug|Release]
-DCMAKE_INSTALL_PREFIX=[base path to install OpenSubdiv]
-DCMAKE_LIBDIR_BASE=[library directory basename (default: lib)]
-DCMAKE_TOOLCHAIN_FILE=[toolchain file for crossplatform builds]
-DCUDA_TOOLKIT_ROOT_DIR=[path to CUDA Toolkit]
-DPTEX_LOCATION=[path to Ptex]
-DGLFW_LOCATION=[path to GLFW]
-DSTRINGIFY_LOCATION=[path to stringify utility]
-DNO_LIB=1 // disable the opensubdiv libs build (caveat emptor)
-DNO_EXAMPLES=1 // disable examples build
-DNO_TUTORIALS=1 // disable tutorials build
-DNO_REGRESSION=1 // disable regression tests build
-DNO_PTEX=1 // disable PTex support
-DNO_DOC=1 // disable documentation build
-DNO_OMP=1 // disable OpenMP
-DNO_TBB=1 // disable TBB
-DNO_CUDA=1 // disable CUDA
-DNO_OPENCL=1 // disable OpenCL
-DNO_OPENGL=1 // disable OpenGL
-DNO_CLEW=1 // disable CLEW wrapper library
-DNO_METAL=1 // disable Metal
*Note that all licence references and agreements mentioned in the OpenSubdiv README section above
are relevant to that project's source code only.