Commit Graph

2235 Commits

Author SHA1 Message Date
barfowl
ffdb32cbac Merge pull request #877 from davidgyu/inf_sharp_stencil_viewer
Updated glStencilViewer for InfSharpPatches
2016-10-10 16:45:45 -07:00
barfowl
56ddd31e8f Merge pull request #876 from davidgyu/inf_sharp_limit_stencil
Updated LimitStencilTableFactory for InfSharpPatch
2016-10-10 16:43:25 -07:00
barfowl
20382bad6d Merge pull request #875 from davidgyu/inf_sharp_eval_limit
Updated glEvalLimit viewer for InfSharpPatch
2016-10-10 16:42:09 -07:00
barfowl
06e715d21f Merge pull request #874 from davidgyu/fvar_gregory_eval_fix
Fixed FVar patch evaluation with Gregory basis
2016-10-10 16:37:53 -07:00
David G Yu
3d1cd8c632 Fixed FVar patch evaluation with Gregory basis
This fixes evaluation of face-varying patches when
the patch table has been created using Gregory basis
end caps.
2016-10-10 14:38:26 -07:00
David G Yu
705e144fb5 Updated glStencilViewer for InfSharpPatches
Added a toggle to enable the use of infinitely sharp
patches and also implemented fitFrame ('f' keypress).
2016-10-07 17:40:58 -07:00
David G Yu
a3ba5f08f3 Updated glEvalLimit viewer for InfSharpPatch
Added a toggle to enable the use of infinitely sharp
patches and also implemented fitFrame ('f' keypress).
2016-10-07 17:21:59 -07:00
David G Yu
2b371f0aff Updated LimitStencilTableFactory for InfSharpPatch
Far::LimitStencilTableFactory computes limit stencils using
patches from a Far::PatchTable, creating one temporarily if
necessary. This change propagates the useInfSharpPatch option
from adaptively refined topologies.
2016-10-07 16:41:08 -07:00
David G Yu
086213bd3c Merge branch 'release/v3_1_0_RC1' into dev 2016-09-30 18:31:47 -07:00
David G Yu
0034966af4 Release 3.1.0 RC1 2016-09-30 18:29:51 -07:00
barfowl
9f67a39a4d Merge pull request #872 from davidgyu/inf_sharp_examples
Updated DX/GL Viewers for Inf Sharp Patches
2016-09-30 12:00:26 -07:00
David G. Yu
c9a3bb4d87 Updated glViewer and dxViewer for InfSharp patches
Both of these have been updated to expose toggles
to enable refinement and creation of infinitely
sharp patches.
2016-09-30 11:00:31 -07:00
Aaron Luk
66cb665a28 [README] Remove reference to Maya SDK now that example plugin has been retired. 2016-09-30 19:59:57 +02:00
David G. Yu
8257516427 Updated Osd mesh util classes for InfSharp patches
This adds some support to the Osd::*Mesh classes for
refining and populating infinitely sharp patches.
2016-09-30 10:56:22 -07:00
David G Yu
68002ba9dd Merge pull request #870 from barfowl/fvar_adaptive
Fixed overly aggressive adaptive refinement of face-varying channels
2016-09-29 23:59:34 -07:00
barry
4e0c2dc763 Fixed overly aggressive adaptive refinement of face-varying channels:
- added Vtr::Level method to combine VTags for all FVar values of a vertex
    - updated adaptive refinement of FVar data to use combined VTags of corners
2016-09-29 22:54:05 -07:00
barfowl
39c53b234a Merge pull request #869 from davidgyu/cuda_build_fix
Fixed CUDA build with newer SDKs
2016-09-29 21:15:49 -07:00
barfowl
775c4e59e8 Merge pull request #868 from davidgyu/patch_eval_cuda_fix
Fixed Osd::CudaEvaluator
2016-09-29 21:05:23 -07:00
David G Yu
c824dc34e0 Fixed CUDA build with newer SDKs
Recent CUDA SDKs no longer support the "compute_11"
gpu architecture. We now fallback to "compute_20"
instead for newer SDK versions. Additionally, this
behavior can be overriden using the new CMake list
variable OSD_CUDA_NVCC_FLAGS so that it is easier
for clients to target newer architectures and specify
additional arguments.
2016-09-29 21:04:42 -07:00
David G Yu
710da328f9 Fixed Osd::CudaEvaluator
- Fixed the size of a cudaMemcpy
- Fixed the use of local "static" storage
2016-09-29 20:27:43 -07:00
David G Yu
8929b3062b Merge pull request #867 from barfowl/patch_param_rename
Added inverse of Far::PatchParam::Normalize()
2016-09-29 20:13:36 -07:00
David G Yu
6a63b6b9f5 Merge pull request #866 from barfowl/gregory_legacy
Fixed regressions introduced in legacy Gregory boundary patches
2016-09-29 20:12:07 -07:00
barry
4314e46eb5 Added inverse of Far::PatchParam::Normalize()
- added Far::PatchParam::Unnormalize()
    - removed the now redundant MapBaseToRefined and MapRefinedToBase()
2016-09-29 19:18:16 -07:00
barry
1cb6b1aee1 Fixed regressions introduced in legacy Gregory boundary patches 2016-09-29 19:10:28 -07:00
David G Yu
886324d03e Merge pull request #865 from barfowl/inf_sharp_option
Exposed public patch table option to enable use of inf-sharp patches
2016-09-29 19:03:45 -07:00
barry
c8522854d7 Added inf-sharp patch detection intended in previous commit:
- detect patch as irregular when inf-sharp vertex but no inf-sharp edges
2016-09-29 16:59:33 -07:00
barry
05a3fdf036 Exposed option to enable use of inf-sharp patches:
- added new public member to PatchTableFactory::Options
    - replaced internal option with new public option
    - updated tagging and Gregory conversion for sharp patches
2016-09-29 15:05:59 -07:00
barfowl
3e67332880 Merge pull request #864 from davidgyu/patch_fvar_examples
Updated glFVarViewer and glEvalLimit examples
2016-09-29 10:55:42 -07:00
barfowl
4127966587 Merge pull request #863 from davidgyu/patch_mesh_osd
Updated Osd mesh util classes for FVar refinement
2016-09-29 10:55:19 -07:00
barfowl
feda3cb054 Merge pull request #862 from davidgyu/patch_eval_osd
Osd Varying and FaceVarying Patch Evaluation
2016-09-29 10:54:56 -07:00
barfowl
0e0974188d Merge pull request #861 from davidgyu/patch_basis_osd
Added a common patchBasis implementation for Osd
2016-09-29 10:54:25 -07:00
barfowl
77daca6fcc Merge pull request #860 from davidgyu/patch_table
Added Far::PatchTable::GetVaryingPatchDescriptor()
2016-09-29 10:53:42 -07:00
barfowl
49cfba45a3 Merge pull request #859 from davidgyu/patch_descriptor
Removed bitfield size from Far::PatchDescriptor
2016-09-29 10:52:59 -07:00
barfowl
7c08b5d8f6 Merge pull request #858 from davidgyu/patch_param_restore
Reverted recent Far::PatchParam refactoring
2016-09-29 10:50:47 -07:00
David G. Yu
42f5090290 Updated glFVarViewer and glEvalLimit examples
These have both been updated to test the refinement
and evaluation of face-varying patch data.
2016-09-29 10:00:19 -07:00
David G. Yu
6575a6e326 Updated Osd mesh util classes for FVar refinement
This adds some support to the Osd::*Mesh classes for
refining and populating face-varying patches.
2016-09-29 09:58:47 -07:00
David G. Yu
236afb2c06 Osd Varying and FaceVarying Patch Evaluation
Implemented EvalPatchesVarying and EvalPatchesFaceVarying
methods for Osd::*Evaluator classes, i.e. cpu, omp, tbb,
GLXFB, GLSLCompute, OpenCL, and CUDA.

Also, the GPU Kernel implementations have been updated to use
the common patchBasis implementation instead of re-implementing
methods to compute patch basis weights locally.
2016-09-29 09:56:15 -07:00
David G. Yu
552331f6d9 Added a common patchBasis implementation for Osd
This is used to compute patch basis weights for
the Osd::*Evaluator classes that are unable to
use the C++ implementation from far/patchBasis.h,
e.g. the GLSL, HLSL, OpenCL, and CUDA kernels.

Instead of duplicating this code for each different
kernel language, we share a single implementation
which is minimally adapted to accommodate specific
language restrictions and syntax.

This implementation can also be used by client
shader code executed while drawing, e.g. to
compute patch basis weights for evaluating varying
and face-varying patches.
2016-09-29 09:53:40 -07:00
David G. Yu
5e83b995d1 Added Far::PatchTable::GetVaryingPatchDescriptor()
Also, added guards against empty containers to the
varying data accessors.
2016-09-29 09:51:19 -07:00
David G. Yu
df0cd7ac2f Removed bitfield size from Far::PatchDescriptor
This was an obsolete relic from when PatchDescriptor
was more than a single enum value, but it can cause
problems when sharing patch descriptor values between
devices.

Also, marked the GetNumFVarControlVertices() method as
deprecated.
2016-09-29 09:44:11 -07:00
David G. Yu
4e97cb2aba Reverted recent Far::PatchParam refactoring
This reverts most of the recent changes to the
organization of Far::PatchParam. In particular,
the core parameterization is no longer exposed
as a speparate PatchParamBase class.

We'll revisit this again in a later release, but
for now we will stick with a more straight
forward implementation.
2016-09-29 09:38:32 -07:00
barfowl
ae6678e1c1 Merge pull request #856 from davidgyu/limit_stencil_options
Added Derivative Options to LimitStencilFactory
2016-09-28 14:00:58 -07:00
David G Yu
3e34c6031d Added Derivative Options to LimitStencilFactory
This change updates the Far::LimitStencilFactory to
to support options to generate 1st and 2nd derivative
limit stencil weights.

For backward compatibility, the option to generate 1st
derivatives defaults to true.  While for efficiency,
the option to generate 2nd derivatives defaults to false.

Also, updated the Far::LimitStencil class to expose
computed 1st and 2nd derivative limit stencil weights.
2016-09-28 11:56:55 -07:00
David G Yu
5f220e6d0c Merge pull request #855 from barfowl/fvar_tag_bug
Fixed topology tagging bug affecting face-varying patches
2016-09-27 21:51:19 -07:00
David G Yu
36dee7c00b Merge pull request #854 from barfowl/adaptive_options
Added new options for adaptive refinement
2016-09-27 21:50:29 -07:00
barry
b3b0a93a9d Fixed face-varying tagging bug affecting refinement for patches:
- correctly tag sharpened boundaries as irregular
    - distinguish the single-value case between dart and boundary
2016-09-27 19:42:10 -07:00
barry
98451db803 Added new public members to Far::TopologyRefiner::AdaptiveOptions:
- added flag to consider features in face-varying channels
    - added flag to reduce refinement for infinitely sharp patches
    - added secondary isolation level to reduce refinement of smooth features
2016-09-27 19:30:27 -07:00
David G Yu
9a82ba67eb Merge pull request #853 from barfowl/inf_sharp_bugs
A few bug fixes and minor improvements for inf-sharp patches
2016-09-27 08:33:01 -07:00
barry
9832e11939 A few bug fixes and minor improvements for inf-sharp patches:
- updated face-varying VTag conversion to set VTag::_corner correctly
    - updated adaptive refinement to prevent over-isolation of inf-sharp features
    - fixed patch regularity test when inf-sharp and xord features not separated
      at level 0 or 1
    - generalized BSpline end-cap factory boundary test to defer to Gregory patch
      for any non-smooth corner
2016-09-26 19:14:42 -07:00
Takahito Tejima
de3a781537 Merge pull request #852 from barfowl/inf_adapt_refine
Extended adaptive refinement for inf-sharp patches and simplified
2016-09-23 17:34:46 -07:00