Go to file
barfowl ec7ac89c76 Merge pull request #894 from davidgyu/shader_api_review
Addressed notes from shader API review
2016-10-17 16:18:25 -07:00
cmake Merge pull request #845 from davidgyu/release_cleanup1 2016-09-06 18:24:03 -07:00
documentation Release 3.1.0 RC2 2016-10-13 21:43:22 -07:00
examples Added OsdGetPatchIsRegular() for GLSL and HLSL 2016-10-17 15:25:17 -07:00
opensubdiv Added OsdGetPatchIsRegular() for GLSL and HLSL 2016-10-17 15:25:17 -07:00
regression Added a few more test shapes for face-varying and inf-sharp patches: 2016-10-13 19:59:38 -07:00
tutorials Fixed typo in previous commit 2016-06-25 21:31:00 -07:00
.gitignore Improve stringification of shaders & kernels in build. 2014-01-03 16:59:26 -08:00
.travis.yml Removed mayaPolySmooth example 2016-09-06 17:08:05 -07:00
appveyor.yml Removed mayaPolySmooth example 2016-09-06 17:08:05 -07:00
CMakeLists.txt Fix find_package for zlib which requires all upper case ZLIB 2016-10-13 19:59:22 -07:00
LICENSE.txt Amending Apache license language & file headers. 2013-09-26 12:04:57 -07:00
NOTICE.txt Landing 3.0.0.alpha 2014-09-05 15:07:46 -07:00
OpenSubdivCLA_corporate.pdf update documentation & CLA files to reflect Apache 2.0 move 2013-08-01 16:14:23 -07:00
OpenSubdivCLA_individual.pdf update documentation & CLA files to reflect Apache 2.0 move 2013-08-01 16:14:23 -07:00
README.md [README] Remove reference to Maya SDK now that example plugin has been retired. 2016-09-30 19:59:57 +02:00

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
master Linux Build Status Windows Build Status
dev Linux Build Status Windows Build Status

Documents

Forum

Prerequisite

For complete information, please refer OpenSubdiv documents: [Building with CMake] (http://graphics.pixar.com/opensubdiv/docs/cmake_build.html)

  • General requirements:
Lib (URL) Min Version Note
CMake
http://www.cmake.org
2.8.6 Required
  • Osd optional requirements:
Lib (URL) Min Version Note
GLEW
http://glew.sourceforge.net
1.9.0 GL backend (Win/Linux only)
CUDA
http://developer.nvidia.com/cuda-toolkit
4.0 cuda backend
TBB
https://www.threadingbuildingblocks.org
4.0 TBB backend
OpenCL
http://www.khronos.org/opencl
1.1 CL backend
DX11 SDK
http://www.microsoft.com/download/details.aspx?id=6812
DX backend
  • Examples/Documents optional requirements:
Lib (URL) Min Version Note
GLFW
http://www.glfw.org
3.0.0 GL examples
Ptex
https://github.com/wdas/ptex
2.0 ptex viewers
Zlib
http://www.zlib.net
(required for Ptex under windows)
Docutils
http://docutils.sourceforge.net
documents
Doxygen
http://www.doxygen.org
documents

Build example to run glViewer and other example programs with minimal dependency

All platforms:

  • Install cmake, GLFW and GLEW (GLEW is not required on OSX)

make sure GLEW and GLFW install directories configured as follows:

   ${GLEW_LOCATION}/include/GL/glew.h
   ${GLEW_LOCATION}/lib/libGLEW.a (linux)
   ${GLEW_LOCATION}/lib/glew32.lib (windows)

   ${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)

  • run cmake:
"c:/Program Files (x86)/CMake/bin/cmake.exe" ^
    -G "Visual Studio 12 Win64" ^
    -D -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 "GLEW_LOCATION=*YOUR GLEW INSTALL LOCATION*" ^
    -D "GLFW_LOCATION=*YOUR GLFW INSTALL LOCATION*" ^
    ..
  • Open OpenSubdiv.sln in VisualStudio and build.

Linux

cmake -D -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 GLEW_LOCATION="*YOUR GLEW INSTALL LOCATION*" \
      -D GLFW_LOCATION="*YOUR GLFW INSTALL LOCATION*" \
      ..
make

OSX

cmake -D -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*" \
      ..
make

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)]

-DCUDA_TOOLKIT_ROOT_DIR=[path to CUDA Toolkit]
-DPTEX_LOCATION=[path to Ptex]
-DGLEW_LOCATION=[path to GLEW]
-DGLFW_LOCATION=[path to GLFW]

-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