Commit Graph

1005 Commits

Author SHA1 Message Date
David G Yu
3aaf491dda Fixed Far::TopologyRefiner::GetNumLevels()
This method now returns the number of _farLevels where previously
it returned the number of _levels. This is primarily a semantic
difference, as the two containers should have equal size. But this
method is intended to accompany Far::TopologyRefiner::GetLevel()
which returns a reference to an element in _farLevels;
2016-01-22 17:38:58 -08:00
manuelk
4746ab4bc9 Surround D3D10_SHADER_RESOURCES_MAY_ALIAS with #ifdef to avoid build errors with some versions of D3D SDK
Fixes #773
2016-01-13 11:33:38 -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
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
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
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
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
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
Takahito Tejima
f5810bac97 Fix windows build 2015-09-30 11:20:03 -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
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
84ff9d3604 Merge pull request #728 from significant-bit/win32-lean
use WIN32_LEAN_AND_MEAN properly
2015-09-20 22:36:25 -07:00
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
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
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
6c437ae077 Release 3.0.2 2015-08-05 18:21:20 -07:00
David G Yu
b1ab8e3f8b Fixed single crease patch classification
This fixes a regression in the function used to identify single crease
patches. This also updates the patch color values used by the glImaging
regression test to match the colors used in other example viewers so
that patch types can be more easily identified during automated testing.
2015-08-04 17:50:51 -07:00
David G Yu
869c006b70 Release 3.0.1 2015-08-04 14:50:31 -07:00
David G Yu
e897a1c0e5 Merge pull request #702 from daz3d/cmake_error_on_no_gpu
Fixes cmake projects for non-gpu use case
2015-08-04 08:00:58 -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
David G Yu
38c5940b21 Merge pull request #710 from takahito-tejima/bilinear
Fix a bug in PatchTableFactory of uniform refinement containing all-levels
2015-07-30 10:52:43 -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
barfowl
db3fe9a8e8 Reduced warnings resulting from GCC's -Wshadow option
- eliminated warnings from core libraries and regression code
2015-07-29 18:46:18 -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