Commit Graph

2101 Commits

Author SHA1 Message Date
David G Yu
53d80e0d2f Updated Far::EndCap*PatchFactory for fvar patches
Added support for gathering face-varying patch points to
the Far::EndCap*PatchFactory classes. Also, changed these classes
to compute varying stencils optionally, since separate varying
stencils are not needed for face-varying patches.

Also, removed a no longer used stateless factory method from
the EndCapGregoryBasisPatchFactory.
2016-08-05 19:08:04 -07:00
David G Yu
4c558d34a4 Fixed packing of regular patches
The case where refinement produces no regular
patches was not being accounted for correctly.

Also, fixed the spelling of PatchTupleVector.
2016-08-05 19:03:52 -07:00
barfowl
8b885eeda6 Merge pull request #828 from davidgyu/patch_table_builder
Looks good -- glad to see this taking shape.  I'll leave you to correct the spelling of "PatchTuppleVector" in a later set of changes ;)
2016-08-05 17:54:27 -07:00
David G Yu
35d8519895 Refactored Far::PatchTableFactory
Re-organized the implementation of the patch table factory
in advance of adding support for bicubic face-varying patches.

- Renamed the AdaptiveContext internal class to BuilderContext
  since this can be used (eventually) to build patch tables for
  uniformly refined topology as well as adaptively refined
  topology.
- Added utility methods to gather patch vertices from the
  levels (and eventually fvarLevels) of a refiner.
- Replaced the FVarChannelCursor with a simpler array of integer
  face-varying channel indices.
- Extracted the topology inspection needed to identify
  patches into a computePatchTag() method.
- Simplified the two-pass traversal of the topology into a
  single pass traversal of the refined topology followed by
  an iteration over the patches that have been identified.
- Replaced internal templated PatchTypes class with simpler
  and more direct accounting and patch array building facilities.
- Changed the API of the end cap patch factories to no longer
  depend on the patch table factory's PatchFaceTag. This has
  been superseded by the specification of appropriate
  VSpans at the corners of the end patch.
2016-08-05 12:38:05 -07:00
David G Yu
4da88a8503 Merge pull request #826 from barfowl/inf_sharp_tags
Added new vertex tags to identify infinitely sharp features
2016-07-21 09:02:34 -07:00
David G Yu
b63c267888 Merge pull request #825 from barfowl/bspline_factory
Update BSpline end cap factory to detect partial rings at corners
2016-07-20 20:35:43 -07:00
barry
a9ecd79c32 Added new VTags for inf-sharp features:
- added new Vtr::Level::VTag members for inf-sharp features
    - updated Vtr::Level::print() to recognize new tags
    - explicitly initialized tags for new edge-verts in Vtr::Refinement
    - initialized tags for base level verts in Far::TopologyRefinerFactory
2016-07-20 16:16:52 -07:00
barry
47934add68 Update BSpline end cap factory to inspect partial neighborhoods at corners
- any partial neighborhood at a corner warrants use of Gregory patch
    - make use of corner tags for other tests rather than revisiting topology
2016-07-20 15:55:17 -07:00
Takahito Tejima
1e625e690e Merge pull request #824 from davidgyu/patch_table_api
Updated PatchTable for Varying and Face-Varying
2016-07-20 11:40:24 -07:00
David G Yu
fc12816d97 Updated PatchTable for Varying and Face-Varying
This change updates Far::PatchTable to include support for
evaluating varying and face-varying data on patches.

This adds to existing API and follows the existing patterns
used for vertex patches.

This includes data and methods to evaluate varying and
face-varying basis functions as well as methods to compute
local point values for varying and face-varying primvar data.

This is the foundation for updating Far::PatchTableFactory
to generate bicubic patches for face-varying channels.
2016-07-20 10:44:45 -07:00
David G Yu
d96c0964cd Merge pull request #823 from barfowl/xord_isolation_level
Add internal support for separate levels of refinement for different features
2016-07-19 17:23:22 -07:00
barry
20d7ed5d79 Fixed MSVC warning regarding int to bool conversion 2016-07-19 10:53:17 -07:00
barry
61aedddd3e Added support for separate isolation levels of adaptive refinement:
- removed PatchTableFactory assert that irreg patches exist at last level
    - fixed Gregory end cap Factory to accomodate irreg patches at any level
    - parameterized adaptive refinement for differing feature sets per level
2016-07-19 10:05:15 -07:00
David G Yu
559de9a9c1 Merge pull request #760 from dcclyde/subdcloth
Teach the LimitStencilTable to compute 2nd partial derivatives
2016-07-18 16:16:21 -07:00
Dave Clyde
653c9b7e76 Fix additional instances of 'and' 2016-07-16 21:29:05 -07:00
Dave Clyde
61d0c66531 Merge current github/dev into pull request 760 2016-07-16 20:52:54 -07:00
David G Yu
5aff46607d Merge pull request #821 from barfowl/single_crease_test
Improved Vtr::Level::isSingleCreasePatch() test
2016-07-14 15:15:13 -07:00
David G Yu
1fbca298ae Merge pull request #820 from barfowl/patch_sharpness_bug
Fixed bug in Far::PatchTableFactory to correct sharpness assignment:
2016-07-14 15:06:56 -07:00
barry
da204a2d2d Improved Vtr::Level::isSingleCreasePatch() test:
- make greater use of the VTags of the face corners
    - results in quicker rejection and reduced iteration
2016-07-14 13:46:13 -07:00
barry
dc1ed8a296 Fixed bug in Far::PatchTableFactory to correct sharpness assignment:
- sharpness pointers specific to the patch type now used instead of
      the pointer for regular patches
2016-07-14 13:06:18 -07:00
David G Yu
9fa96fc5f5 Merge pull request #819 from barfowl/vtr_vspan_addition
Introducing Vtr::Level::VSpan to standardize representation of partial rings around vertices
2016-07-13 18:37:24 -07:00
barry
2d33a6ebf4 Adding VSpan to standardize representation of partial rings around vertices:
- added definition and gathering method to Vtr::Level
    - extended Far::EndCap...PatchFactories with VSpan[4] for patch corners
    - extended Far::EndCapGregoryPatchFactory to avoid last level assumption
    - adapted Far::PatchTableFactory to use above extensions
    - extended Far::GregoryBasis to recognize VSpan corners
    - simplified Far::GregoryBasis treatement of boundaries
    - fixed bug in Far::GregoryBasis related to smooth corners
2016-07-13 18:16:11 -07:00
David G Yu
fc9bbb154b Merge pull request #818 from c64kernal/dev_srcdir
No longer use CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR
2016-07-11 09:02:35 -07:00
George ElKoura
d856975ef3 No longer use CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR
As mentioned in issue #814, avoiding the use of CMAKE_SOURCE_DIR makes it easier to integrate OpenSubdiv as a submodule in other projects.

Fixes #814.
2016-07-08 22:45:33 -07:00
George ElKoura
9bd1c7e0d9 Merge pull request #817 from davidgyu/dev-iso646-fix
iso-646 fix remove obsolete compiler defines
2016-07-07 22:21:08 -07:00
David G. Yu
cf0c75cc4f iso-646 fix remove obsolete compiler defines
Fixes #779
2016-07-07 12:31:48 -07:00
David G Yu
724ab46572 Merge pull request #813 from c64kernal/dev_av
Add appveyor support for OpenSubdiv
2016-06-26 11:15:26 -07:00
David G Yu
781b060bd8 Merge pull request #812 from c64kernal/dev_dxv
Fix unsigned/signed compare in dxViewer
2016-06-26 10:49:20 -07:00
George ElKoura
cc7d27827c Add appveyor support for OpenSubdiv
- Initial attempt to get AppVeyor (Windows CI) running on OpenSubdiv
- Initial support is bare-minimum, i.e., no OpenGL, no OpenCL, CUDA, TBB, etc..
2016-06-25 22:04:38 -07:00
George ElKoura
507e655a10 Fix unsigned/signed compare. 2016-06-25 21:55:51 -07:00
George ElKoura
a95af03997 Merge pull request #811 from davidgyu/dev-iso646-fix
iso-646 fixes for CUDA / CL / TBB / Ptex
2016-06-25 21:39:12 -07:00
David G. Yu
c0dee5510f Fixed typo in previous commit 2016-06-25 21:31:00 -07:00
David G. Yu
1ba1e07ad1 iso-646 fix for ptex / examples / tutorials 2016-06-25 14:27:53 -07:00
David G. Yu
3e3695652f iso-646 fix for CUDA / CL / TBB 2016-06-25 14:23:55 -07:00
David G Yu
3d08e0ac27 Merge pull request #810 from thomthom/dev-iso646-fix-dx
iso-646 fix for DirectX project
2016-06-25 13:55:54 -07:00
David G Yu
d34f167ee5 Merge pull request #809 from thomthom/dev-iso646-fix-gl
iso-646 fix for GLEW and GLFW projects
2016-06-25 13:54:22 -07:00
Thomas Thomassen
b1e1ff31b4 Clean up DX, example and tutorials. 2016-06-25 10:30:50 +02:00
Thomas Thomassen
72610a3043 Glean up GLEW and GLFW. 2016-06-25 10:29:59 +02:00
David G Yu
0e4a8b424a Merge pull request #790 from thomthom/dev-iso646-fix-base
Rename and, or and not to &&, || and ! etc. Ref #779
2016-06-24 14:59:52 -07:00
Thomas Thomassen
aa0599b4bc Merge branch 'dev'
Conflicts:
	opensubdiv/far/patchTableFactory.cpp
2016-06-24 23:30:44 +02:00
George ElKoura
5f643ee30d Merge pull request #806 from davidgyu/devFixTBB
Added TBB support for MSVC14 / Visual Studio 2015
2016-06-23 20:23:05 -07:00
David G. Yu
50e8cee18e Added TBB support for MSVC14 / Visual Studio 2015 2016-06-23 14:04:49 -07:00
David G Yu
90e8b58145 Merge pull request #804 from c64kernal/dev_cmake
Use cmake's folder feature on platforms that support it.
2016-06-23 12:56:01 -07:00
David G Yu
15a40ecc68 Merge pull request #803 from c64kernal/dev_hud
Fixed two issues with HUD sliders.
2016-06-23 09:54:33 -07:00
George ElKoura
923d60ca74 Use cmake's folder feature on platforms that support it.
We now make use of folders where they are supported.  In particular, on Visual Studio, this produces much nicer solutions to navigate.
2016-06-09 17:04:26 -07:00
George ElKoura
bd4ee29144 Fixed two issues with HUD sliders.
- Capping was broken (thanks to fakebits for pointing it out).  Fixes #801.
- Slides where min != 0 were also broken.
2016-05-01 13:43:21 -07:00
David G Yu
12a623ff81 Merge pull request #799 from barfowl/far_regression
Improvements to far_regression
2016-04-18 12:07:12 -07:00
David G Yu
1b564a53a5 Merge pull request #798 from barfowl/chaikin_bug
Fixed Chaikin-related bug causing crashes in debug for MSVC and others
2016-04-18 11:56:02 -07:00
barfowl
f00d69ae55 Improvements to far_regression:
- overloaded utilities in regression/common to take existing Shape
    - updated init_shapes.h to include all from regression/shapes
    - all Shapes now created and refined regardless of content
    - only "Hbr compatible" Shapes compared to Hbr, else print warning
2016-04-04 19:49:27 -07:00
barfowl
4808b50785 Fixed Chaikin-related bug subdividing edge sharpness:
- child sharpness should retain parent sharpness when not semi-sharp
2016-03-30 18:32:55 -07:00