Commit Graph

2070 Commits

Author SHA1 Message Date
Jeremy Cowles
60cf73d550 Merge pull request #766 from davidgyu/localPointStencilFix
Improved fix for stencil table construction
2015-12-11 15:53:53 -08:00
David G. Yu
67a07044d7 Improved fix for stencil table construction
My previous fix added some defensive logic in case the
local point stencil table was empty when attempting to
append local point stencils to an existing stencil table.

This change fixes Far::PatchTableFactory to not return
empty local point stencil tables when there are no local
point stencils. This behavior is now more consistent with
earlier releases.

We will leave the earlier defensive logic in place as well.
2015-12-11 14:37:39 -08:00
Jeremy Cowles
b3213df0a1 Merge pull request #761 from davidgyu/stencilFactoryFix
Fixed potential crash in Far::StencilTableFactory
2015-12-11 10:56:29 -08:00
Jeremy Cowles
0fc0f3c003 Merge pull request #762 from davidgyu/fractionalFix
Disabled fractional spacing w/o screen space tess
2015-12-11 10:55:50 -08:00
xiao-deng
73b5883d02 Add events control to clVertexBuffer and clEvaluator 2015-11-23 17:54:03 +08:00
David G. Yu
d1b9e45c13 Fixed potential crash in Far::StencilTableFactory
Now StencilTableFactory::AppendLocalPointStencilTable() does
nothing when the localPointStencilTable is empty. This avoids
a potential crash (failed assertion) when both the baseStencilTable
and the localPointStencilTable are empty, as is the case for
simple geometry like the all-quads torus regression test shape.
2015-11-18 18:57:47 -08:00
David G. Yu
c588e95e13 Disabled fractional spacing w/o screen space tess
For now, the common patch shader code supports fractional spacing
modes only when screen-space tessellation is also enabled.

It's possible to relax this restriction, but that requires changing
the client shader interface.
2015-11-18 18:54:19 -08:00
Jeremy Cowles
cf7135eb2a Merge pull request #756 from davidgyu/limitStencilFix
Added missing LimitStencil accessor methods
2015-10-30 13:21:33 -07:00
Jeremy Cowles
53696858c7 Merge pull request #755 from takahito-tejima/gregory
Reduce the transient memory consumption in endcap construction.
2015-10-30 13:21:14 -07:00
Jeremy Cowles
f8bbeb938a Merge pull request #754 from davidgyu/fractionalTessellation
Restored support for Fractional tessellation
2015-10-30 13:20:20 -07:00
David G Yu
b9a7d40559 Added missing LimitStencil accessor methods
Now Far::LimitStencilTable provides proper accessor
methods for retrieving individual LimitStencils from
the table.
2015-10-26 14:17:53 -07:00
David G. Yu
dcc4b61bf7 Re-enabled fractional tessellation in viewers 2015-10-23 15:26:46 -07:00
David G. Yu
b0d612f837 Restored support for fractional tessellation
This change includes support for both fractional_even_spacing
and fractional_odd_spacing.

The implementation follows the existing pattern of re-parameterizing
the tessellation domain only along transition boundary edges. This
allows for crack-free tessellation, but it might be better to
consistently re-parameterize all of the outer edges of all patches,
which also would be required for numerically watertight tessellation.

This is implemented in a way that requires no changes to the client
shader API. It should be more efficient to move some computations to
the control/hull shaders and reduce divergence in the execution of
eval/domain shaders.
2015-10-23 15:24:35 -07:00
Takahito Tejima
024da1f729 Reduce the transient memory consumption in endcap construction.
- instead of accumulating GregoryBasis::Point (fixed size stencils
  backed by stackbuffer), pack the stencils into StencilTable as they
  are evaluated
- use single integer for varying stencils of patch points, not
  a GregoryBasis::Point
- cap the reserved stencil entry size.
2015-10-23 15:05:02 -07:00
Takahito Tejima
4964f61bc8 Merge pull request #753 from takahito-tejima/dev
fix .travils.yaml to point 15.10 dist
2015-10-23 15:03:41 -07:00
Takahito Tejima
30b765b43b fix .travils.yaml to point 15.10 dist 2015-10-23 14:54:40 -07:00
jcowles
c8a538cd43 Merge branch 'release/v3_0_3' into dev 2015-10-05 16:31:13 -07:00
jcowles
9f0e49edc6 Release 3.0.3 2015-10-05 16:27:09 -07:00
Jeremy Cowles
caaff5d85b Merge pull request #748 from davidgyu/assertFix
Fixed out of bounds mem access for OMP and TBB
2015-09-30 13:41:53 -07:00
Jeremy Cowles
e2dcc10463 Merge pull request #747 from davidgyu/buildFix
Fixed double to float conversion warnings
2015-09-30 13:41:44 -07:00
David G. Yu
6bbf0f78ce Fixed out of bounds mem access for OMP and TBB 2015-09-30 13:26:35 -07:00
David G. Yu
287441118e Fixed double to float conversion warnings 2015-09-30 13:15:42 -07:00
David G Yu
15ee687aca Merge pull request #746 from takahito-tejima/dev
Fix windows build
2015-09-30 12:28:12 -07:00
Takahito Tejima
f5810bac97 Fix windows build 2015-09-30 11:20:03 -07:00
Jeremy Cowles
b5d2a087b1 Merge pull request #745 from barfowl/nonman_patches
Improved patch approximations around non-manifold features
2015-09-28 09:53:29 -07:00
barfowl
0aea00a2e8 Improved patch approximations around non-manifold features
- use regular corner patches around non-manifold verts that were sharpened
2015-09-22 17:26:09 -07:00
Jeremy Cowles
f744e20c4b Merge pull request #742 from anshuarya/dev
Set layout to std430 for GLSL Compute kernel
2015-09-21 23:50:56 -07:00
Jeremy Cowles
e2b7abf3f2 Merge pull request #744 from takahito-tejima/dev
Removing debug code that mistakenly slipped into glPatchTable.cpp.
2015-09-21 20:26:22 -07:00
Takahito Tejima
007a2e8885 Removing debug code that mistakenly slipped into glPatchTable.cpp.
Also use GL_ARRAY_BUFFER for the binding point of updating indices instead of GL_ELEMENT_ARRAY_BUFFER
2015-09-21 14:33:11 -07:00
Anshu Arya
4be4b25cc9 Set layout to std430 for GLSL Compute kernel
Fixes corrupted mesh issues with GLSL Compute
on AMD platforms.
2015-09-21 09:01:47 -07:00
Jeremy Cowles
fb4f3f6a62 Merge pull request #741 from takahito-tejima/bspline
optimize PatchTableFactory::Create performance

The primary hesitation here is that this change alters the approximation for BSpline end caps, however the consensus is that BSpline end caps were already the most extreme approximation, so it makes sense to sacrifice quality for speed.

Reviewed by David, Barry, George and myself.
2015-09-20 22:51:30 -07:00
Jeremy Cowles
0ee4525211 Merge pull request #740 from poljere/dev
New "tutorial_8" calculates approximated smooth normals for uniform subdivision
2015-09-20 22:44:53 -07:00
Jeremy Cowles
327e586206 Merge pull request #739 from takahito-tejima/perftest
add a far performance test
2015-09-20 22:39:47 -07:00
Jeremy Cowles
84ff9d3604 Merge pull request #728 from significant-bit/win32-lean
use WIN32_LEAN_AND_MEAN properly
2015-09-20 22:36:25 -07:00
Pol
fe7a4decc5 Added section at the beginning that explains each method, how it works and how
it approximates smooth normals.
2015-09-17 15:29:00 -07:00
Takahito Tejima
37bce3be14 Fix the reserve size for BSpline patch (16, not 20) 2015-09-17 15:14:54 -07:00
Pol
67e86104f6 Minor fixes in the code, mostly spacing 2015-09-17 13:55:08 -07:00
Pol
2fc7bd1660 Adding two more methods to the smooth normals tutorial, the first one using the 4 vertices
to generate two vectors to use in the cross product, the second one using the
normals in the limit.
2015-09-17 13:45:52 -07:00
Pol
97c5e1f23d Added "tutorial_8" that shows how to calculate smooth normals for uniform subdivision. 2015-09-16 15:50:55 -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
Takahito Tejima
c1da218b54 add a far performance test 2015-09-16 15:27:26 -07:00
Takahito Tejima
6b3b7801a1 Merge pull request #738 from Nazg-Gul/dev
Fix GLSL program being deleted twice in GLSL Compute controller
2015-09-10 09:57:34 -07:00
Sergey Sharybin
b25c0dd777 Fix GLSL program being deleted twice in GLSL Compute controller
GLSL programs used by stencil and patch kernels were freed from
both GLSL Compute Evaluator and from kernel classes themselves.
2015-09-10 20:00:42 +05:00
David G Yu
3a20df2918 Merge pull request #734 from c64kernal/dev
Fixed small bug in glFVarViewer for Loop.
2015-08-24 18:12:53 -07:00
George ElKoura
effe6a2ed6 Fixed small bug in glFVarViewer for Loop.
- Make sure to pass in the LOOP define to the shader when dealing with
Loop surfaces.
2015-08-24 17:33:30 -07:00
Mike Erwin
585858c1e4 use WIN32_LEAN_AND_MEAN properly
Misspelled W32_LEAN_AND_MEAN in osd/opengl.h had no effect on windows.h.

Also added to example code wherever windows.h is included.
2015-08-07 17:45:41 -04:00
David G Yu
404659fffa Merge branch 'release/v3_0_2' into dev 2015-08-05 18:22:10 -07:00
David G Yu
6c437ae077 Release 3.0.2 2015-08-05 18:21:20 -07:00