Commit Graph

2659 Commits

Author SHA1 Message Date
David G Yu
d8abffc976 Updated more example viewer shape lists
Updated the shape lists in the glEvalLimit, glImaging,
and glStencilViewer examples to match recent updates
to the other example viewers.
2019-06-17 17:36:48 -07:00
David G Yu
62195753a9 Updated default options for examples
Changed several default options in the example viewers to the
preferred settings for improved shape fidelity and to improve
consistency between the different viewers:
 - enabled smooth corner, and inf sharp patch options by default
 - disabled screenspace tess and fractional tess by default
 - changed the default approximation to Gregory in the mtlViewer
2019-06-17 17:33:40 -07:00
David G Yu
db9c01e7e0
Merge pull request #1124 from barfowl/examples_loop_tet
Added simple tetrahedron to set of Loop test shapes
2019-06-14 17:37:32 -07:00
barry
4a198ace66 Added new Loop tetrahedron shape to main example viewers:
- added to the main geometry viewers: glViewer, dxViewer, mtlViewer
    - added to glFVarViewer for viewing face-varying UVs
2019-06-14 15:24:00 -07:00
barry
e8dcef6760 Added Loop tetrahedron to regression/shapes:
- added Loop tetrahedron shape with two UV sets
    - added the new shape to all.h
2019-06-14 15:20:29 -07:00
David G Yu
51d5ac4a49
Merge pull request #1123 from barfowl/far_loop_patch_bug
Fixed Loop patch creation bug with val-3 vertex at third corner
2019-06-14 12:48:10 -07:00
barry
3ea2f4caac Rotated faces in shapes for extra-ordinary vertices for better test coverage:
- rotated faces to place extra-ordinary vertex at each corner
    - updated both Catmark and Loop shapes for both boundary and interior
2019-06-14 11:32:59 -07:00
barry
69ab4d6170 Fixed Loop patch creation bug with val-3 interior vertex at third corner:
- adjusted point-sharing logic in PatchBuilder::SourcePatch to correct
2019-06-14 11:28:22 -07:00
Barry Fowler
ff9a3b4fcb
Merge pull request #1119 from davidgyu/far_perf_spreadsheet
Thanks, David
2019-06-10 17:44:41 -07:00
David G Yu
e64cc8d4b3
Merge pull request #1120 from barfowl/docs_release_34
Updated documentation for 3.4 release notes and past release dates
2019-06-10 17:06:26 -07:00
barry
0245184e11 Updated documentation for 3.4 release notes and past release dates:
- added new page and images for 3.4 release notes
    - updated Release Notes page with dates for all past releases
2019-06-10 16:33:41 -07:00
Pol
eff740d9f3
Merge pull request #1118 from davidgyu/osd_api_revisions
Minor revisions to some Osd deprecation notes
2019-06-10 15:42:27 -07:00
David G Yu
f881c49a5b Minor revisions to some Osd deprecation notes
Several of the methods in osd/patchBasisCommon.h were
never intended as public API, and several have been
deprecated in favor of the newer OsdEvaluatePatchBasis()
and OsdEvaluatePatchBasisNormalized() methods. These
obsolete methods have now all be marked as deprecated.

Also, fixed a minor spelling typo in glslPatchBasisCommon.glsl
2019-06-10 15:29:03 -07:00
David G Yu
e7cfe1188d Updated far_perf output and options
Added a -spreadsheet option to far_perf which outputs
result data as comma separated values (CSV) which can
be imported directly into spreadsheet applications for
further analysis and charting.

Also, updated the other far_perf options to be more consistent
with the other tutorials and examples, e.g. when specifying
scheme types, refinement options, etc.
2019-06-10 15:10:54 -07:00
David G Yu
943f1a8886
Merge pull request #1117 from barfowl/far_api_revisions
Minor revisions to a few precision related methods of Far classes
2019-06-07 20:56:57 -07:00
barry
b2d610fd56 Minor revisions to some precision related methods of Far classes:
- renamed PatchTable methods to query the precision of its StencilTables
    - removed the "set" prefix from precision-related PatchTableFactory::Options
2019-06-07 18:40:53 -07:00
David G Yu
c1746b58a0
Merge pull request #1116 from barfowl/far_irregular_box_spline
Improved regular patch approximations of irregular features for Loop
2019-06-07 18:22:28 -07:00
barry
cb79eab120 Improved Loop regular patch approximations of irregular features:
- updated LoopPatchBuilder with new Gregory to Box-spline conversion matrix
2019-06-07 17:55:31 -07:00
David G Yu
d8619b2997
Merge pull request #1115 from barfowl/examples_fvar_shapes
Updated shape list for GL face-varying viewer
2019-06-06 09:47:13 -07:00
barry
347eb033d5 Update shape list for examples/glFVarViewer:
- included shapes added in recent pull requests
    - removed redundant shapes
2019-06-05 16:16:45 -07:00
David G Yu
6ac61929ac
Merge pull request #1114 from barfowl/examples_viewer_shapes
Updated shape lists for example viewers
2019-06-05 08:14:38 -07:00
barry
cf9573cdc5 Updated shape lists for example viewers:
- included shapes added in recent pull requests
    - removed old shapes made redundant by recent additions
    - ordered Catmark and Loop sets for consistency
2019-06-04 19:14:38 -07:00
Barry Fowler
692949fc87
Merge pull request #1113 from davidgyu/gregory_transitional_fix
Thanks, David
2019-06-04 09:57:54 -07:00
David G Yu
67cc2a3810 Irregular patch shader transition edges
Updated the Gregory patch tessellation shaders to account for
transition edges.

Changed the implementation of OsdGetTessParameterizationTriangle()
to take the input parametric location as a 3-component value. This
allows the edge parameterization to be more numerically robust and
consistent.

Also, corrected some minor discrepancies between the various
tessellation shader configurations.
2019-06-03 15:34:40 -07:00
David G Yu
9f54ace55b
Merge pull request #1112 from barfowl/examples_shapes_tets
Added tetrahedron shape use in documentation images and logo
2019-06-01 07:19:42 -07:00
barry
079b1a9760 Added tetrahedron shape use in docmentation images and logo:
- added Catmark and Loop versions of the toroidal tetrahedron shape
    - update shapes/all.h with the additions
2019-05-31 16:05:13 -07:00
David G Yu
17bc75b488 Compute transition mask for irregular patches
The irregular patches around extraordinary vertices
might have transitions edges depending on the secondary
refinement level specified during topological refinement.

We used to skip the computation of the transition mask
for irregular patches, but this is now necessary
since the introduction of the secondary level option.
2019-05-30 12:12:53 -07:00
Pol
5fec55ede8
Merge pull request #1111 from davidgyu/loop_patches_mtl_drawing
Drawing Loop patches with Metal tessellation shaders
2019-05-30 10:28:16 -07:00
David G Yu
4789df9522 Mtl implementation mtlViewer support for Loop
Updated mtlViewer to support drawing of tessellated
Loop scheme meshes.
2019-05-30 10:04:02 -07:00
David G Yu
2e175ff52b Mtl implementation mtlViewer organization
Refactored computation and drawing code used
for tessellated patches to improve readability
and extensibility.

- Updated mtlViewer.metal computation kernel to express
  data indexing using familiar semantic concepts: i.e.
  primitiveID, vertexID, etc. instead of threadgroup
  semantics.
- Updated mtlViewer.mm to consolidate patch type
  dispatch. Now, the configuration and execution
  of the compute and drawing passes is controlled
  by a PipelineConfig descriptor.
2019-05-30 10:00:55 -07:00
David G Yu
4d84b6ff9b Mtl implementation fixed mtlViewer fractional tess
Fixed mtlViewer to be more consistent with the other
example viewers and allow screen space tessellation
to be enabled independently from fractional tessellation.
2019-05-30 00:47:50 -07:00
David G Yu
232d50c231 Mtl implementation cleanup thread dispatch
Moved some of the boiler-plate code related to
thread group dispatching and configuration from
the osd shader source to the example shader source.
2019-05-30 00:47:50 -07:00
David G Yu
cc6c9da070 Mtl implementation drawing triangle patches
Updated Metal shaders to add support for drawing triangle
patches. This matches the current GLSL implementation.

- BoxSplineTriangle and GregoryTriangle patch shaders
- tess factor and tess evalutation for triangle patches
- improved adaptive tessellation code organization and function names
- quartic Bezier triangle patch evaluation
- OsdGetPatchIsTriangleRotated() function added
- OsdInterpolatePatchCoordTriangle() function added
2019-05-30 00:47:50 -07:00
David G Yu
ed8ecd84d1 Mtl implementation example options
Updated the Metal viewer runtime options to more
closely match the other viewers:

- default to adaptive tessellation
- default to patch type coloring
- present end cap options as: Linear/Regular/Gregory
- exposed switches for patch refinement options:
  smooth corner, single crease, inf sharp
- updated fvar linear interpolation labels
  and methods to match glFVarViewer
- updated iOS Main.storyboard GUI to match
2019-05-30 00:47:50 -07:00
David G Yu
ebf2917dc7 Mtl implementation fixed example fvar interp
Refactored the Metal viewer's implementation of
smooth face-varying uv interpolation so that the
face-varying patch basis is correctly determined
by inspecting the face-varying patch array type
descriptors.
2019-05-30 00:47:45 -07:00
David G Yu
510ff8e85e
Merge pull request #1110 from barfowl/vtr_semi_sharp_fvar
Fixed semi-sharp face-varying boundaries when creating inf-sharp patches
2019-05-28 15:26:27 -07:00
David G Yu
8912b3f3d3 Mtl implementation screenspace fvar interp
Fixed smooth face-varying interpolation for the Metal viewer
when using screen-space tessellation. The location to evaluate
the face-varying value needs to match the computed tess location
instead of the intrinsic position_in_patch.
2019-05-28 10:02:08 -07:00
David G Yu
11bcf82632 Mtl implementation common tess shader source
Moved Metal shader code which computes tessellation factors and
tessellation parameterization into a separate source file.
2019-05-28 10:02:04 -07:00
David G Yu
9cc0cb2c01 Mtl implementation fixed typo in shader source
Fixed a misspelling in a macro: BOUNDRY -> BOUNDARY which was
preventing the Metal legacy gregory shader source from being
compiled correctly.
2019-05-24 12:39:20 -07:00
David G Yu
770c8a45e2 Mtl implementation legacy gregory shader
This migrates a fix from the legacy GLSL shader code
to improve consistency between the implementions.
2019-05-24 12:36:52 -07:00
David G Yu
1ae203ed20 Mtl implementation legacy shader code
Moved Metal shader code used for evaluation of legacy gregory patches
to a separate source file.

These methods should not be used for new development, but are provided
for backward compatibility.
2019-05-22 18:40:58 -07:00
David G Yu
291eff0bed Mtl implementation whitespace fixes
Fixed numerous whitespace inconsistencies and violations
in the core osd metal implementation and examples.
2019-05-22 18:00:36 -07:00
barry
f4a3ee1283 Fixed sharpening of semi-sharp features on face-varying boundaries:
- updated VTag initialization to tag inf-sharp crease for semi-sharp values
2019-05-22 17:05:43 -07:00
David G Yu
24c37eecd3
Merge pull request #1109 from barfowl/far_smooth_corner_approx
Fixed regression with legacy smooth corner patch approximation
2019-05-22 16:24:50 -07:00
barry
a18a706f93 Fixed regression in application of smooth corner patch approximation:
- only apply the approximation at corners determined to be smooth
2019-05-21 19:53:21 -07:00
David G Yu
eec8e94b2a
Merge pull request #1108 from barfowl/vtr_max_valence
Fixed refinement bug for non-manifold edges with many incident faces
2019-05-17 18:45:09 -07:00
barry
07b4ecc1cc Added new regression shapes for non-manifold edges with many incident faces:
- added simple shapes for both Catmark and Loop
    - included per-vertex UVs, which triggered issues with FVar StencilTables
2019-05-16 14:47:01 -07:00
barry
5aa10c8f55 Fixed max-valence assignment in refinement to account for non-manifold edges:
- consider the vertex from the edge with the maximum number of faces
2019-05-16 14:42:23 -07:00
David G Yu
6fa58d1879
Merge pull request #1107 from barfowl/examples_glFVarViewer
Minor improvements to examples/glFVarViewer
2019-05-16 09:31:22 -07:00
barry
239eb28fcd Minor improvements to examples/glFVarViewer:
- added checkboxes for Control Edges and Vertices as used elsewhere
    - added checkbox for UV Backface Culling specific to this example
    - relabeled the Boundaries pulldown to Linear Interpolation
    - renamed variables in source to better reflect the affected enum
2019-05-15 15:22:18 -07:00