Commit Graph

1378 Commits

Author SHA1 Message Date
David G Yu
5edde65063 Merge pull request #438 from takahito-tejima/refactor4
Refactor again FarPatchTableFactory.
2015-04-24 09:12:15 -07:00
Takahito Tejima
74b78b3d17 Refactor again FarPatchTableFactory.
- rename "Regular end cap" to "BSplineBasis end cap"
- revert templating and add EndCapType into PatchTablesFactory::Options.
- make EndCapFactories internal in PatchTablesFactory.
- move end cap stencils into PatchTables, keep them relative to the max level.
- add a utility StencilTablesFactory::AppendEndCapStencilTables to splice and factorize endcap stencil tables.
2015-04-23 16:58:56 -07:00
Jeremy Cowles
9f88363d07 Merge pull request #436 from takahito-tejima/dev
Fixes far_tutorial_6 crash
2015-04-22 20:30:47 -07:00
Jeremy Cowles
51e3126c0e Merge pull request #433 from c64kernal/dev_ptex
Separating out Ptex API from TopologyRefiner.
2015-04-22 20:27:15 -07:00
George ElKoura
0371a3aa5f Renamed methods on Far::PtexIndices.
GetNumPtexFaces() became GetNumFaces()
GetPtexIndex() became GetFaceId()
GetPtexAdjacency() became GetAdjacency()
2015-04-21 22:23:22 -07:00
George ElKoura
bded4cb075 Small clean up to how we validate the refiner when we build a PtexIndices. 2015-04-21 22:08:26 -07:00
George ElKoura
fcc1971767 Added an informative error check when passing in a refiner with an incompatible scheme to build PtexIndices. Also fixed an assert to not check for an explicit scheme type, and use traits instead. 2015-04-21 21:06:52 -07:00
George ElKoura
1ea3ec7958 Fixing comments. 2015-04-21 17:46:55 -07:00
George ElKoura
420473b45b Experiment separating out Ptex from TopologyRefiner.
Remove the ptex-specific code from the Far::TopologyRefiner and instead provide it in a separate class Far::PtexIndices.  Clients who need to use the Ptex API need to first build a Far::PtexIndices object by providing it with a refiner.

This has the advantage of keeping the API on the TopologyRefiner a little cleaner.  The ptex methods were const but were mutating state with const_casts.  The new mechanism still achieves the same lazy initialization behavior by forcing clients to instantiate them exactly when needed.

A disadvantage of this approach is that the PatchTablesFactory creates its own PtexIndices and throws it out after the patch tables are created.  This is great if you're never going to need the ptex indices again, but not so great if you will need them again.
2015-04-21 17:34:02 -07:00
takahito-tejima
c4acb578f2 Fixes far_tutorial_6 crash 2015-04-21 15:38:51 -07:00
Jeremy Cowles
7e3bd65432 Merge pull request #435 from davidgyu/patch-drawing
Limit position screen-space tessellation level metric
2015-04-21 14:43:40 -07:00
David G Yu
7d9dcf8c03 Added a new screen-space adaptive tessellation metric which
computes edge lengths using limit surface points. Made this
the default screen-space metric so that we avoid cracks when
using Gregory Basis or Regular B-spline end caps.

The alternative method which computes edge lengths using the
distance between B-spline control points is still available.

Added a diagram and comments to explain how the control
points and limit points are organized.
2015-04-21 14:17:29 -07:00
David G Yu
1bdf70973b Merge pull request #432 from takahito-tejima/refactor3
Refactor Far::PatchTablesFactory
2015-04-21 13:08:39 -07:00
Takahito Tejima
43aa2500c4 Refactor far factories.
This change moves all gregory patch generation from Far::PatchTablesFactory
so that we can construct patch tables without stencil tables as well as client
can chose any end patch strategies (we have 3 options for now: legacy 2.x style
gregory patch, gregory basis patch and experimental regular patch approximation).

Also Far::EndCapGregoryBasisPatchFactory provides index mapping from patch index
to vtr face index, which can be used for single gregory patch evaluation on top
of refined points, without involving heavier stencil tables generation.
2015-04-20 18:59:07 -07:00
Takahito Tejima
e1ffd135aa Merge pull request #430 from jcowles/fixglfw
Fixing FindGLFW cmake module
2015-04-20 08:52:33 -07:00
Jeremy Cowles
2c3f519092 Merge pull request #425 from asluk/dev
Fixed off-by-1 error for lefthanded meshes in facevarying channels.
2015-04-18 21:43:27 -07:00
Jeremy Cowles
ef97b4523d Fixing FindGLFW cmake module
Previously, FindGLFW would search for both GL/glfw.h and GLFW/glfw3.h, which
does not work when a system has both GLFW 2.0 and 3.0 installed.

The fix still probes for both files, but does so in two passes, preferring
glfw3.h.
2015-04-18 21:28:07 -07:00
Takahito Tejima
247683e340 Merge pull request #429 from davidgyu/macbuildfix
Fixed Mac OS X build/runtime issues.
2015-04-18 19:47:16 -07:00
Takahito Tejima
9a5b4f0e09 Merge pull request #428 from davidgyu/winbuildfix
Updated HLSL shaders for unified patch drawing
2015-04-18 19:46:32 -07:00
David Yu
d3a554c5de Fixed glViewer shader code for OS X GL runtime. 2015-04-18 15:24:24 -07:00
David G Yu
50ee424b1c Updated vtrViewer to match recent API changes. 2015-04-18 14:59:16 -07:00
David G. Yu
9f1da077e8 Updated HLSL shaders for unified patch drawing 2015-04-18 14:08:53 -07:00
David G Yu
963d952c7b Merge pull request #427 from c64kernal/dev_wincursor
Fixed a bug in the display of the dxViewer cursor
2015-04-18 13:54:24 -07:00
George ElKoura
6ac11ae63b Fixed a bug in the display of the dxViewer cursor
Make sure to initialize the cursor of the window class in dxViewer as required.
2015-04-18 00:45:02 -07:00
George ElKoura
2153de2ed8 Merge pull request #426 from davidgyu/winbuildfix
Fixed build errors on windows
2015-04-18 00:07:01 -07:00
David G. Yu
cb689194ab Fixed windows build errors. 2015-04-17 18:29:56 -07:00
David G. Yu
acedb6c710 Fixed windows build regressions. 2015-04-17 18:28:38 -07:00
asluk
d164fb4650 Fixed off-by-1 error for lefthanded meshes in facevarying channels. 2015-04-17 18:14:59 -07:00
David G Yu
0f543c6c83 Merge pull request #423 from takahito-tejima/dev
Fix boundary patch and refactor single crease patch drawing into unfied shader.
2015-04-17 16:29:10 -07:00
Takahito Tejima
c58e63c8d5 Refactor single crease patch to be in unfined shader. 2015-04-17 16:26:57 -07:00
Takahito Tejima
3d66bd449d Fixed boundary patch rotation flag 2015-04-17 15:43:33 -07:00
Takahito Tejima
aec1f61fb0 Merge pull request #422 from davidgyu/patch-drawing
Unified adaptive patch drawing
2015-04-17 15:39:37 -07:00
David G Yu
336fbb6748 Removed some more obsolete transition patch state
Temporarily disabled fractional tessellation for Gregory patches.
2015-04-17 15:24:48 -07:00
David G Yu
759513d2dc Fixed adaptive tessellation and removed debug code 2015-04-17 12:04:21 -07:00
David G Yu
010a31efc4 Checkpoint changes to unify adaptive patch drawing. 2015-04-17 07:42:53 -07:00
Takahito Tejima
1f9849c419 Merge pull request #421 from c64kernal/dev
Fixed a bug in our obj parser
2015-04-17 00:46:50 -07:00
George ElKoura
5d4f69dcdf Fixed a bug in our obj parser
Fixed a case where we could erroneously fill in the texture
or normal index for a vertex on a face when they are not
actually speficied in the obj.
2015-04-16 18:57:47 -07:00
Jeremy Cowles
6efe3e0bce Merge pull request #418 from asluk/dev
osd3 support for lefthanded meshes
2015-04-16 16:59:05 -07:00
Takahito Tejima
a6ea4a0249 Merge pull request #420 from c64kernal/dev
Fix incorrect padding of manifold ring
2015-04-16 14:51:10 -07:00
George ElKoura
bca5adacc6 Fix incorrect padding of manifold ring
We were incorrectly padding manifoldRing for end boundary vertices.
2015-04-16 12:41:31 -07:00
George ElKoura
dbc63d3e91 Merge pull request #419 from takahito-tejima/ctest
CMakeLists: add enable_testing/add_test
2015-04-16 11:14:47 -07:00
Takahito Tejima
6e6e8040b7 CMakeLists: add enable_testing/add_test 2015-04-16 10:52:08 -07:00
asluk
df3c856b51 Changed lefthanded flag to isLeftHanded. 2015-04-15 16:15:19 -07:00
asluk
4752bcdd69 Add support for lefthanded meshes. 2015-04-15 16:13:43 -07:00
George ElKoura
9baa85ca82 Merge pull request #416 from c64kernal/dev
Fixing invalid memory read error in glEvalLimit.
2015-04-15 13:43:02 -07:00
George ElKoura
88cae52f85 Fixing invalid memory read error in glEvalLimit.
We were erroneously using the number of vertices of the refined mesh to copy
data only allocated for the coarse mesh's number of vertices.
2015-04-15 13:38:59 -07:00
Jeremy Cowles
b29f5fd653 Merge pull request #415 from jcowles/dev
Updating documentation in readme and far_overview.
2015-04-12 18:18:48 -07:00
jcowles
9ef4be64f0 Updating documentation in readme and far_overview.
Pointing the README build notes to the public web site so there is a single
source of build documentation.

Fixed minor typo in far_overview.
2015-04-12 18:13:23 -07:00
Jeremy Cowles
55a700b4bf Merge pull request #414 from c64kernal/dev
Appease gcc warning about multi-line comments.
2015-04-12 18:02:27 -07:00
Jeremy Cowles
41ad749f9c Merge pull request #413 from c64kernal/dev_regrename
Renamed vtr_regression to far_regression
2015-04-12 18:01:48 -07:00