Commit Graph

429 Commits

Author SHA1 Message Date
Takahito Tejima
37bce3be14 Fix the reserve size for BSpline patch (16, not 20) 2015-09-17 15:14:54 -07:00
Takahito Tejima
c380a0d67e BSpline endcap optimization. 2015-09-16 15:32:50 -07:00
Takahito Tejima
5e96a9ba31 GregoryBasis optimization. Replace arithmetic operators which uses a temporary
object.
2015-09-16 15:28:58 -07:00
Takahito Tejima
0e91dcd177 Optimize gregory basis endcap generation.
- replace std::vector with vtr::StackBuffer in GregoryBasis::Point
- remote getQuadOffsets call from ProtoBasis
- rewrite some inefficient code in the endcap generation.

Note that this is a temporary remedy for the performance issue in 3.0.
We'll fix it again in the later release.
2015-09-16 15:28:55 -07:00
Jeremy Cowles
5f393dbf23 Merge pull request #703 from Nazg-Gul/dev
Fixing linking errors on both Linux and WIndows
2015-08-03 22:51:52 -07:00
David G Yu
c8943d12b3 Merge pull request #719 from barfowl/far_errors
Minor content and formatting changes to Far error strings
2015-07-31 18:04:44 -07:00
David G Yu
bd95246032 Merge pull request #709 from jcowles/dev-stencilfix2
Respect factorizeIntermediatLevels option
2015-07-31 16:57:39 -07:00
barfowl
a094281541 Minor content and formatting changes to Far error strings
- made Far error strings consistent, including clearer source of error
    - minor formatting changes to the default error callback
2015-07-31 12:47:49 -07:00
David G Yu
2d16bfa5fc Fixed an incorrect comment in far/patchParam.h 2015-07-30 17:41:36 -07:00
George ElKoura
0cfc822c30 Merge pull request #714 from barfowl/topology_asserts
Replaced topology initialization assertions with errors
2015-07-30 16:59:15 -07:00
barfowl
0f9819d503 Changed use of Warning() to Error() in Far::TopologyRefinerFactory 2015-07-30 15:05:49 -07:00
David G Yu
e6b03f68a9 Merge pull request #712 from takahito-tejima/boundary
Retains boundary faces of bilinear scheme mesh with VTX_BOUNDARY_NONE
2015-07-30 10:59:54 -07:00
barfowl
a811fb9a80 Replaced topology initialization assertions with errors:
- TopologyRefinerFactory now issues errors for its minimum requirements
2015-07-29 19:38:05 -07:00
Takahito Tejima
ccfcca9abf Retains boundary faces of bilinear scheme mesh with VTX_BOUNDARY_NONE
We mark boundary faces as holes only if the vertex boundary interpolation
is none and the subdivision scheme has local neighborhood.
2015-07-29 17:21:26 -07:00
Takahito Tejima
168139d4ca Fix bug when PatchTableFactory::Options.generateAllLevels is set
generateAllLevels flags is used when we want to have uniform refined
patch array containing all levels together. There's an index offsetting
bug when this flag is enabled.
2015-07-29 14:49:51 -07:00
Jeremy Cowles
55565cca84 Respect factorizeIntermediateLevels option
Previously, this flag was being ignored during stencil table
construction.

Fixes issue #694
2015-07-23 00:45:47 -07:00
barfowl
ad6b1f9117 Eliminate or encapsulate ICC pragmas:
- eliminated need for disabling warning 177 in far/patchTableFactory.cpp
    - encapsulated all floating point equality tests (1572) in local functions
    - bracketed all ICC specific warning pragmas with #ifdef __INTEL_COMPILER
    - avoided GCC's stricter shadowing warning in vtr/array.h
2015-07-20 17:56:00 -07:00
Takahito Tejima
8a8771c97d Revert "Add ISPC limit surface evaluation" 2015-07-20 17:13:51 -07:00
Sheng Fu
d3f8725e79 Add ISPC limit surface evaluation 2015-07-20 14:12:11 -07:00
Sergey Sharybin
2f694727c3 Remove workaround for duplicated symbols with MSVC
This workaround actually caused linking errors related on missing
symbols and removing the workaround does not cause any duplicated
symbols with MSVC 2013.
2015-07-19 18:10:09 +02:00
Sheng Fu
51a9da3bf0 fix ICC compile warning 2015-07-16 09:27:49 -07:00
Sheng Fu
fe20023989 minimize the scope of disabled warnings 2015-07-16 09:27:48 -07:00
Sheng Fu
59382abeaa Fix Intel compiler warning 2015-07-16 09:27:48 -07:00
Jeremy Cowles
8dd7563060 Some minor compiler warning fixes
In one case, we were comparing int and unsigned int.

In primvarRefiner, some values were safely uninitialized, but older compilers
(GCC 4.1) were complaining.
2015-06-25 22:29:23 -07:00
David G Yu
0679161bf5 Fixed a few doxygen param mismatches and errors. 2015-06-22 13:45:55 -07:00
David G Yu
48f52dbeaf Removed commented out face-varying options
This was already commented out and is not intended for release.
2015-06-17 09:59:03 -07:00
barfowl
e1673ebbf3 Doxygen tweaks to prevent it mangling Far::TopologyRefinerFactory<MESH>
- suppressed forward declarations for Factory<TopologyDescriptor>
    - moved typedef out of Doxygen group of Factory<MESH> to preserve ordering
2015-06-12 14:33:21 -07:00
Takahito Tejima
34fab03921 Merge pull request #629 from davidgyu/patchParamFix
Fixed Far::PatchParam encoding of refinement level
2015-06-11 15:33:50 -07:00
David G. Yu
f0128a5f5e Fixed Far::PatchParam encoding of refinement level
This change restores the use of 4-bits in Far::PatchParam to
encode the refinement level of a patch. This restores one bit
that was stolen to allow for more general encoding of boundary
edge and transition edge masks. In order to accommodate all
of the bits that are required, the transition edge mask bits
are now stored along with the faceId bits.

Also, accessors are now exposed directly as members of Far::PatchParam
and the internal bitfield class is no longer directly exposed.
2015-06-11 15:10:30 -07:00
Takahito Tejima
12f3e5a384 Fix a bug in LimitStencilTableFactory
If the input cv stencil is given and it includes the local point
stencils for endcaps, LimitStencilTableFactory::Create failed
because of incorrect sanity checking.
2015-06-11 13:41:20 -07:00
Takahito Tejima
5bf1c3a396 Fix a bug in limit stencil table creation
LimitStencilTableFactory::Create was returning fewer number of
stencils, off by the number of coarse vertices.
2015-06-09 17:07:18 -07:00
barfowl
c748cf6cfa Made channel argument non-optional for internal face-varying methods
- removed default value assignment in Vtr::Level and Far::PatchTable
    - fixed one place where the expected channel argument was omitted
2015-06-03 19:23:50 -07:00
Takahito Tejima
815e54edd0 Suppress erroneous drawing around valence 2 interior vertex
Although valence 2 gregory patch is not well supported yet, this fix
mitigates artifacts around such a vertex.
Adding a shape catmark_gregory_test8 to see this issue.
2015-06-03 13:56:29 -07:00
Jeremy Cowles
12f260adad Merge pull request #593 from davidgyu/fvarSmoothPatchPostpone
Removed WIP face-varying bicubic patches
2015-06-03 13:46:39 -07:00
jcowles
b081055fe9 Clean up compiler warnings.
stb - potential use of uninitialized variable (this may have been safe)
farViewer - unused variable
patchTableFactory - _channelIndices potentially used uninitialized
FVarLevel - valueIndexInFace0 potentially used used uninitialized (was safe)
2015-06-03 13:17:40 -07:00
David G Yu
521f31468b Removed WIP face-varying bicubic patches
We'll restore this code and finish it up for the next release.

For now, removing this code restores parity with the 3.0 beta,
i.e. face-varying patches are always all bilinear.
2015-06-03 12:49:01 -07:00
Takahito Tejima
ef55c48123 Merge pull request #587 from davidgyu/fvarSmoothPatchPostpone
Prepare to defer face-varying bicubic patches
2015-06-03 12:33:05 -07:00
barfowl
35f64d085d Added Doxygen tags to some Far headers 2015-06-02 23:35:39 -07:00
barfowl
6c61f1b006 Separated Far's TopologyDescriptor from the RefinerFactory classes:
- moved TopologyRefiner out of the RefinerFactoryBase into Far
    - moved implementation of its Factory<MESH> to far/topologyDescriptor.*
    - updated examples and tutorials (no more references to FactoryBase)
2015-06-02 16:27:19 -07:00
David G Yu
1c4bdbb726 Prepare to defer face-varying bicubic patches
There's a lot of good foundational work here to eventually support
smooth interpolation of face-varying patches. Unfortunately, this
is not quite ready to release. Therefore, we've decided to defer this
feature until a later release.

This change hides this code behind the FAR_FVAR_SMOOTH_PATCH macro.
2015-06-02 15:28:31 -07:00
Takahito Tejima
36465ed96c Merge pull request #586 from davidgyu/fvarRename
Renamed per-patch face-varying access methods
2015-06-02 14:26:25 -07:00
David G Yu
0243f54b29 Updated patch table face-varying interface
Now the channel specifier is the last parameter in a method's
parameter list with a default of 0.  This is consistent with the
topological face-varying queries and also simplifies the common
case of just a single face-varying channel.
2015-06-02 13:51:32 -07:00
David G Yu
d0f8975117 Merge pull request #584 from takahito-tejima/singleCrease
Unlabel rotation of single crease patch.
2015-06-02 13:06:21 -07:00
David G Yu
385df434ec Renamed per-patch face-varying access methods
This matches more closely the pattern used elsewhere in Far:
    GetFVarPatchValues() --> GetPatchFVarValues()
    GetFVarPatchesValues() --> GetFVarValues()
2015-06-02 09:13:17 -07:00
Takahito Tejima
fe92265db9 Unlabel the rotation of single crease patch.
use boundaryMask to identify the crease edge from 4 edges.
with this change, single-crease patch no longer needs to be rotated on
its population.

In shader, experimentally use same infinite sharp matrix for both
boundary and single-crease patch.
2015-06-01 21:26:39 -07:00
barfowl
39eae0195f Renamed internal face-varying methods for consistency with public
- renamed Vtr::Level::getFVarFaceValues() to getFaceFVarValues()
    - updated all usage
2015-06-01 20:31:27 -07:00
George ElKoura
4536d44c31 Merge pull request #582 from barfowl/catmark_adaptive
Disabling feature-adaptive refinement for non-Catmark schemes
2015-06-01 19:02:57 -07:00
barfowl
d8f139ae47 Disabling feature-adaptive refinement for non-Catmark schemes 2015-06-01 18:21:55 -07:00
barfowl
dc5056fe76 Renaming of face-varying methods to access values per face:
- replaced FVarFaceValues with FaceFVarValues in a couple Far methods
    - rewrote face-varying Factory assignement to be clearer with terminology
2015-06-01 16:25:44 -07:00
David G. Yu
2bad68e029 Added include of algorithm for min/max 2015-06-01 11:12:20 -07:00