Commit Graph

700 Commits

Author SHA1 Message Date
Dirk Van Gelder
f7181d2f9d Get evalTest and simpleCpu to build again, changing glut references to glfw. 2013-02-15 18:32:10 -08:00
manuelk
a52c70ab8b First pass implementation of holes :
- make sure HBR passes down the hole tag to children when subdividing faces
- minor API modification : allow to unset the hole flag on a face
- modify uniform / adaptive FarMeshFactory to be aware of the flag
- make the FarSubdivisionTableFactory assert when finding unconnected HBR vertices (as it should)

* Uniform subdivision :
    The refinement scheme only creates faces & vertices necessary
    to maintain the one-ring around the edges of a hole, so this solution
    is quite efficient.

* Adaptive subdivision :
    At the moment we are still performing full topological analysis on holes and
    only skipping patches associated to holes. This is sub-optimal in 2 ways :
        1. the topological analysis can potentially be cranking on a lot of unnecessary
           geometry
        2. even though we may not be drawing the patches, the compute stage is still
           applying kernels on all the control vertices of these patches.
    We will have to revisit feature adaptive subdivision & holes, so keep the issue active.

fixes #78
2013-02-13 14:34:33 -08:00
Manuel Kraemer
5ad40fe535 Merge pull request #121 from andrewkww/vs2012_warnings
VS2012 warnings: more conversion warnings and a few others
2013-02-12 17:26:25 -08:00
Philip Rideout
13dfc733f2 typo in the Python readme 2013-02-11 16:24:27 -08:00
Andrew Wong
ccbfea69b1 common/hud: fix a conversion warning
warning C4242: 'argument' : conversion from 'int' to 'char', possible loss of data
2013-02-10 00:04:31 -05:00
manuelk
ef408fc67c - remove the now obsolete glutViewer (replaced by glViewer)
- remove some glut-era callbacks in glViewer / ptexViewer
- fix OSX includes in osd_regression

fixes #117
2013-02-08 14:06:44 -08:00
Philip Rideout
05558699d7 remove unused variable 2013-02-07 17:00:32 -08:00
Philip Rideout
293034d39c move screenshot of demo to doc folder 2013-02-07 16:57:22 -08:00
Manuel Kraemer
ca1e294c70 Merge pull request #116 from prideout/master
Python Bindings for Grandma

This is probably not the final word on python bindings... but it gives us a place to start.

Note : tested only in linux environments so far
2013-02-07 16:40:12 -08:00
Philip Rideout
ad040466a0 fix typos in README 2013-02-07 11:41:48 -08:00
Philip Rideout
604c35ac4f incorp feedback from mkraemer: remove the license file, move the demo to examples/python, change the min Python version to 2.6 2013-02-07 11:37:00 -08:00
Manuel Kraemer
6d4565e6b8 Merge pull request #109 from aras-p/glvbo-fixes
CpuGLVertexBuffer performance fix + glViewer fixes

reviewed, approved & much appreciated : thank you

takahito + manuelk
2013-02-06 18:27:48 -08:00
manuelk
45b38e5c6b fixes a problem on Linux where apparently there is no "primary" monitor returned (NULL)
fixes #113
2013-02-05 18:01:30 -08:00
Manuel Kraemer
91fddab7ef add some logic to enable full-screen mode with GLFW 3.0
confirmed working on Windows - needs checking on other
platforms / versions of GLFW

fixes #113
2013-02-05 16:28:20 -08:00
manuelk
e1f6486ce4 removing more #ifdef's related to adaptive tessellation ability
fixes #111
2013-02-05 15:25:46 -08:00
manuelk
6f5d1e34be partial solution to run-time environment configuration :
- add bool OsdGLDrawContext::SupportsAdaptiveTessellation() method
- modify glViewer to use that instead of #ifdefs

Note : this is not the final word on this as OSD really needs a more comprehensive
system to provide run-time information about available features to the client code.

fixes #111
2013-02-05 15:04:07 -08:00
Manuel Kraemer
2b12ffc447 build fixes :
- remove ptexViewer from the build on OSX (doesnt work)
- remove maya plugins from the build on OSX (until we have a compatible version available)

glViewer fixes :
- fix incorrect GLFW version check in #ifdefs (now done in cmake)
- fix default program GL version (downgraded to 1.5 where necessary)
- remove non core-profile GL calls (triggering errors)

this should allow OSX 10.7 builds to produce a functional, if restricted, glViewer.

fixes #111
2013-02-04 18:37:25 -08:00
Dirk Van Gelder
eed2d98a39 Merge of in-progress Eval API test code to the mainline. Not much
here yet.
2013-02-04 09:35:43 -08:00
Aras Pranckevicius
89a75f03fe glViewer: set sync off on all platforms 2013-02-04 11:59:53 +02:00
Aras Pranckevicius
7b77a08281 glViewer: don't generate GL errors with invalid UBO indices (happens on OSX since tessellation is not supported) 2013-02-04 09:11:10 +02:00
Aras Pranckevicius
9c9f00ef18 glViewer: line widths larger than 1.0 are deprecated in core GL (generates a GL error) 2013-02-04 09:10:27 +02:00
Aras Pranckevicius
54c7329ba4 gcd: files for GCD dispatcher (right now just copy of OMP one), add items to glViewer 2013-02-02 22:53:33 +02:00
manuelk
7a39b0ad7c - add cmake logic to parse package versions and include the correct headers
- add #ifdefs to work around the different versions of glfw
- add cmake logic to parse other packages versions and set minimum requirements
- fix X11 dependencies for static builds of glfw

- general Find.cmake cleanup

fixes #101
2013-01-31 15:34:35 -08:00
manuelk
a6bd013988 change access permissions on files 2013-01-31 15:29:45 -08:00
manuelk
1ba1f048e6 bail out of Rebuild call if the VBO / VAO have not been allocated yet.
fixes #100
2013-01-31 15:27:31 -08:00
manuelk
18e5ab5296 bail out of Rebuild call if the VBO / VAO have not been allocated yet.
fixes #100
2013-01-31 15:24:38 -08:00
Takahito Tejima
ab4f79c128 Remove deprecated GL calls, comply with 4.2/3.3 core profile. Use VAO, update glsl shaders, remove immediate draws, etc.
In example code, GLUT has been replaced with GLFW so that glViewer/ptexViewer can run on OSX (10.7 or later).

OSX note: still have some problem with clang, may need to explicitly specify gcc on cmake cmdline
 -DCMAKE_CXX_COMPILE=/usr/bin/g++

fixes #98
2013-01-29 15:54:18 -08:00
manuelk
d03a04d088 Fix OSD crash bug within CUDA & CL compute modules :
- remove the GL error check in cudaGLVertexBuffer :
  * unrelated GL errors left on the stack were triggering erroneous
  vertexBuffer allocation errors
  * we should not be checking for GL errors here anyway (as most other
  buffer allocations aren't checked either)

- add some pointer checking in the GL / D3D drawContexts in case the
  vertexBuffer pointers passed are NULL

- add some additional typedefs in OsdError to report some of the new
  CUDA / GL related errors
2013-01-25 18:31:40 -08:00
manuelk
f22c717e1c Merge branch 'master' of github.com:PixarAnimationStudios/OpenSubdiv 2013-01-24 14:17:25 -08:00
manuelk
48ba78d848 fixing a int->float warning for MSVC 2013-01-24 14:16:45 -08:00
Manuel Kraemer
4bbc42fd52 Merge branch 'master' of github.com:PixarAnimationStudios/OpenSubdiv 2013-01-24 14:09:30 -08:00
Manuel Kraemer
371c95ccef add the license banner to mayaViewer.cpp
fixes #96
2013-01-24 14:08:53 -08:00
manuelk
c912a284a8 Merge branch 'master' of github.com:PixarAnimationStudios/OpenSubdiv 2013-01-24 13:45:41 -08:00
manuelk
468198e4a8 more cleanup :
- consolidate cmake compile flags
- turn on -Wall
- suppress hidden overloaded function warning when using Clang
  (part of it is bug, part of it will require code refactoring
  on our end)
- add support for Maya 2013.5 for windows in cmake module
- clean up some glew includes which break builds with MSVC Express
  & Windows SDK
- move the bitmap for font_image into a compiled object
- remove some unused variables and other minor warnings

Note : this is a checkpoint, there are still a few more warnings to clean up...

fixes #96
2013-01-24 13:40:43 -08:00
Takahito Tejima
516da70e0d Replace deprecated GL api usage from gl_hud. It also supports OpenGLES. 2013-01-24 09:29:35 -08:00
manuelk
9ed6ac7da8 - clean up all unused variables / constructors...
- add a -Wall flag, but leave it commented out for now until the same is done for other compilers

fixes #96
2013-01-22 14:47:46 -08:00
manuelk
a2840260d7 Merge branch 'master' of github.com:PixarAnimationStudios/OpenSubdiv 2013-01-18 16:43:06 -08:00
manuelk
97f4c5a7c1 fix linking problems for maya viewer plugins (PLATFORM_LIBRARIES was being reset accidentally) 2013-01-18 16:42:22 -08:00
David G Yu
f3e155a96c Fixed include of cstdio for examples cudaInit.h 2013-01-18 16:03:17 -08:00
manuelk
d529460486 add correct conditional build of cuda modules in maya plugins
fixes #95
2013-01-18 14:49:25 -08:00
Manuel Kraemer
0bd9f0f916 fixes some OSX build issues :
- cmake should now be better at finding Maya installations on OSX automatically
- various dependency fixes for Maya plugins
- first pass at some code fixes to build Maya plugins on OSX

this not the final word on this : just like glutViewer, we will need a "_compat" version of these plugins

fixes #95
2013-01-18 14:25:02 -08:00
manuelk
2baa3c82c1 removing some crusty tabs & other minor formatting 2013-01-10 11:14:41 -08:00
David G Yu
50ddf242d6 Fixed simpleCPU example to run on OS X 2013-01-04 18:18:38 -08:00
David G Yu
950fa35180 Exposed DirectCompute by default in the DX11Viewer 2012-12-17 09:50:21 -08:00
David G Yu
77bdde36c6 Fixed a few build issues for OS X
Also, updated viewer_compat.cpp to more closely match viewer.cpp
2012-12-15 20:34:31 -08:00
David G Yu
7ca59fab69 Fixed default display modes in example viewers
Now the GL and DX11 viewers display surface+wire by default and display the correct keep-alive animation status.
2012-12-13 10:23:33 -08:00
manuelk
6a8f58b65e fix CMake dependencies for shader string in mainApple.mm
fix missing includes

fixes #81
2012-12-12 12:28:26 -08:00
manuelk
10c687ecd5 Release Candidate 1.0 :
- [Feature Adaptive GPU Rendering of Catmull-Clark Surfaces](http://research.microsoft.com/en-us/um/people/cloop/tog2012.pdf).

- New API architecture : we are planning to lock on to this new framework as the basis for backward compatibility, which we will enforce from Release 1.0 onward. Subsequent releases of OpenSubdiv should not break client code.

- DirectX 11 support

- and much more...
2012-12-10 17:15:13 -08:00
Jeremy Cowles
c89b4db270 Update simpleCpu example to compile under OSX after refactoring 2012-11-11 23:18:48 -08:00
U-octave\dyu
4168e5788d Fixed a couple build issues with Visual Studio 2010 2012-10-09 10:56:31 -07:00
jcowles
732cb10fe0 Fix header issues after merging recent revisions 2012-10-09 10:07:57 -07:00
jcowles
11d2800aef Clean up simpleCpu code a bit 2012-10-09 09:28:27 -07:00
jcowles
a287869e9c Merge branch 'master' of https://github.com/PixarAnimationStudios/OpenSubdiv 2012-10-08 16:05:08 -07:00
jcowles
b3214f09eb Added simpleCpu example with markdown commentary 2012-10-08 16:04:53 -07:00
manuelk
5f5207999f Refactoring far (cliff notes):
- All data representation classes are now single-templated for a vertex class 'U'

    - All constructors / instancing code has been moved into "Factory" functions that are dual-templated
      for two vertex classes <class T, class U=T>. This allows hbr specialization with a placeholder
      vertex flass 'T' for faster analysis without paying interpolation costs, while far can still specialize
      a fully implemented vertex class 'U' with full subdivision functionality.

    - Some preliminary clean-up work on FarVertexEditTables with the addition of a FarVertexEdit class
      as a replacement for the former HbrVertedEdit which was introducing back dependencies on hbr. The
      implementation is very lightweight. Some slight renaming / cleanup of the code, with some more to
      be done.

    - there are no more dependencies on hbr (not even #include) from far's data structure !

Notes :
    - the FarDispatcher mechanism has become somewhat awkward and should be re-evaluated when refactoring osd.

    - the "Factory" pattern survives this round of refactoring until we can find something better.

Closes #34
2012-09-17 18:41:48 -07:00
Takahito Tejima
88cba89055 Fix broken drawing for loop geometry in glutViewer 2012-09-13 09:39:41 -07:00
Takahito Tejima
c070674b35 Added OpenMayaUI lib 2012-08-27 09:28:22 -07:00
Takahito Tejima
b87e9bd265 Added new maya plugin example which uses MPxShaderOverride to display osdmesh. 2012-08-23 13:09:54 -07:00
Takahito Tejima
27779c8718 fix crash bug of mayaViewer with edgeCreases 2012-08-23 12:05:04 -07:00
Takahito Tejima
a157628b08 OsdMesh refactoring. Added OsdElementArrayBuffer and OsdPtexCoordinatesTextureBuffer, which manage GL resources on behalf of OsdMesh. 2012-08-22 13:57:36 -07:00
manuelk
783eed920a Remove IlmBase dependencies for now as we are not using any of the features.
Leaving cmake/FindIlmBase.cmake in case we need the API in the future.

Closes #36
2012-08-10 16:40:22 -07:00
manuelk
e2217e182c From now on, hbr assumes that its clients will provide the defition of a
mutex class with Lock / Unlock public functions.

- remove Mutex implementation from Hbr (and revert to original PRman code)
- provide a Mutex class stub in osd
- add some forward declarations in OsdMesh to limit some of the mutex spills
- #include <osd/mutex.h> where needed (little hackish until we can refactor
some of far better)
- remove ILM_BASE from some CMakeLists

Closes #48
2012-08-10 15:14:02 -07:00
Takahito Tejima
e3d939ee61 fix for win64 build 2012-08-03 20:15:24 -07:00
manuelk
a1552cfe82 Siggrpah 2012 - rolling over all of prepro work into beta 1.1 2012-08-03 19:51:27 -07:00
U-octave\dyu
d654a587e2 Fixed double-to-float and int-to-float conversions raising warnings in VS2010 2012-06-26 02:01:35 -07:00
U-octave\dyu
7464046595 Added GLEW to the include directories and link libraries for the glutViewer. 2012-06-26 01:57:58 -07:00
Takahito Tejima
ec30d8cf03 release vertexbuffer on exit viewer
Closes #28
2012-06-21 10:05:39 -07:00
gelder
fb97e723dd Merge branch 'master' of github.com:PixarAnimationStudios/OpenSubdiv 2012-06-20 18:52:54 -07:00
gelder
2c99708795 Missed in previous checkin. Make sure not to include glew.h in headers
where it can cause havoc downstream, and move vertexBuffers into the cpp
file to avoid gl.h inclusion and to fix dynamic cast issues.  These were
found during Presto integration.
2012-06-20 18:51:16 -07:00
manuelk
3920f9c39a Add a SHARED target for OSD and direct dependent example / regression code
to link against that version (except on Windows where we stay on STATIC mode
until all the kinks can be worked out)

Closes #27.
2012-06-20 18:20:41 -07:00
manuelk
6d545f8c46 Adding a drawnormals fucntion that captures the VBO after compute
in order to isnpect the interpolation of vertex data.

Misc code fixes / cleanup

Closes #25.
2012-06-20 16:16:15 -07:00
Takahito Tejima
38ba53404e cutGetMaxGflopsDeviceId seems failing only with 5.0dev driver.
so enabled this function and will work with cuda 4.2 sdk
2012-06-20 09:31:22 -07:00
manuelk
eb26c65a88 first pass at an osd regression suite, following similar lines to the far regression.
- modify shape_utils to return a vector of coarse vertices when creating an hbr mesh

- minor cleanup of osd mesh and the addition of a vector parameter in the creator to
  save the remapping between the hbr mesh progenitor and the current serialized osd mesh.

- minor fallout modifications to the glutViewer & far regression code

Notes :

- the dual template of far is causing a lot of complications
  -> suggest finding a way to isolate the T template to the factory code.
  -> far needs a concept of a vector of vertex & varying data (to abstract the vertex buffer
     away from osd)
  -> the dispatched mechanism is awkward and needs refactoring
  -> suggest moving the default CPU kernels away from the subdivision tables
  -> suggest finding a way to completely untemplate the tables (we might need a templated
     factory function though)
  -> osd should be able to call delete on the far mesh to get rid of all the CPU-bound data
     once the GPU data has been laid-out.

Closes #18.
2012-06-19 17:15:07 -07:00
Manuel Kraemer
5498afeac9 Remove syntax error
Closes #22.
2012-06-19 12:24:14 -07:00
manuelk
a2fad75855 Need to ifdef the CUDA registration (we need a better mechanism...)
Closes #21.
2012-06-18 15:25:49 -07:00
manuelk
3ead9514cd Adding CUDA kernels to maya demo viewer
Closes #21.
2012-06-18 15:24:27 -07:00
Manuel Kraemer
c465e3316f Adding support for OpenCL kernels (tested & working on F16 - still needs testing on Win / RH / Apple) 2012-06-16 16:03:52 -07:00
manuelk
f651dea885 * Fixed a while loop that could crash when boundary interpolation
rules are set to "none" (both in Catmark & Loop)

* Amended shape_utils to always set a default boundary interp. rule
  even when no tag was read (ie. don't default to "none")

* Added a regression test for the "dart" shape to test both
  "edge only" and "edge corner" boundary interp. rules.

Closes #2.
2012-06-15 19:13:29 -07:00
manuelk
b11148fe63 Merge branch 'master' of github.com:PixarAnimationStudios/OpenSubdiv 2012-06-15 11:42:28 -07:00
manuelk
468b00c5b9 The windows timer used does not have enough resolution - replacing with another high-res API.
Closes #12.
2012-06-15 11:41:16 -07:00
Takahito Tejima
91bb75f0ec Merge branch 'master' of https://github.com/PixarAnimationStudios/OpenSubdiv 2012-06-14 21:25:54 -07:00
Takahito Tejima
1981885f6d Changed to use kernel enum rather than strings. If clients need to add their own
kernel, call OsdKernelDispatcher::Factory::Register() and keep the integer
result value as kernel handle.

Attempted to elimiate registering function from client code, but currently
disabled (in kernelDispatcher.cpp) because of Maya plugin doesn't work with cuda
kernel.

glutViewer creates kernel menu dynamically according to linked kernels.

Fix a bug of maya plugin crashes.

Closes #14
2012-06-14 21:18:00 -07:00
manuelk
7a6fd95f6b Move Hbr behind the OpenSubdiv namespace
Fix all regressions / plugins.

Closes #3.
2012-06-14 18:47:57 -07:00
manuelk
0d2914460d Fix the post-build script that runs after Windows builds to copy
all the requisite DLLs into the build/bin area (there has to be
a better way of linking this...)

Closes #15.
2012-06-14 16:10:38 -07:00
manuelk
3b9e2771a1 Revert "Fixing the post-build script that runs after windows builds that"
This reverts commit 08c519fc46.
2012-06-14 16:10:08 -07:00
manuelk
08c519fc46 Fixing the post-build script that runs after windows builds that
copies DLLs around into the build/bin area (there should be a
better way to do this than copying DLLs around...)
2012-06-14 16:09:06 -07:00
manuelk
6206b2baad - making the FindGlew/Glut modules more Windows friendly (and fix some issues like static linking of GLEW)
- add status messages for missing dependencies and what features are being disabled.
- cleanup osd cmakefile

Closes #13.
2012-06-14 14:03:30 -07:00
manuelk
b3b857eec7 re-engineering the find_package strategy :
- use find_package(OpenMP) to test that the compiler supports OMP
  (looks like the "express" versions of MSVC do not)

- if not available, make sure that osd does not register those
  compute kernels (but does register the CPU standalone ones)

- similar refinements on other dependencies (Maya, CUDA) where
  the build "opts in" depending on which libs are found.

some CMakeLists still need more cleanup...

Closes #9
2012-06-13 17:41:18 -07:00
Manuel Kraemer
acad7e9c6d Renaming member variables of the stopwatch to make this compile under windows.
Closes #6
2012-06-13 11:09:08 -07:00
Takahito Tejima
ae2e3c18d1 fix scheme display HUD for bilinear subdivision 2012-06-13 09:13:04 -07:00
Takahito Tejima
13e815f600 follow Osd API changes 2012-06-12 16:37:40 -07:00
Takahito Tejima
4eaf554af1 follow Osd API changes 2012-06-12 16:36:53 -07:00
Takahito Tejima
287bd6d629 fixing glew dependency 2012-06-11 18:36:42 -07:00
Takahito Tejima
23a3b7b15f fix viewer. scheme was not set appropriately. 2012-06-11 17:26:02 -07:00
Manuel Kraemer
293b47a52c bug fixes 2012-06-11 17:03:14 -07:00
Manuel Kraemer
66820d3c5a oops - forgot licensing header 2012-06-11 12:35:47 -07:00
Manuel Kraemer
f66c7e19c9 - adding mayaViewer as another code sample
- more work on the glutViewr example
    - fixing some compiling / linking issues for osd
2012-06-11 11:53:35 -07:00
Manuel Kraemer
94cf1e4d41 second checkpoint of the glutViewer : mostly code-complete now, but not functional yet 2012-06-11 07:55:21 -07:00
Manuel Kraemer
284a2884bb checkpoint for the glutViewer in the example code (not functional yet) 2012-06-10 19:59:04 -07:00
Manuel Kraemer
1b399ce81a adding stub for example code (glutViewer & Maya viewport plugin soon to come) 2012-06-08 22:00:48 -07:00