Commit Graph

660 Commits

Author SHA1 Message Date
David G Yu
09f6f9e2d5 Fixed num verts tested for patch frustum culling 2013-06-24 12:43:02 -07:00
David G Yu
9bab9185ab Partial cleanup of bicubic patch shader source
- Added OSD_ prefix to preprocessor symbols
- Adjusted transition sub-patch parameterization to be
  consistent with non-transition patches
- Unified BSpline shader code
- Removed duplicate Boundary, Corner, and Transition shader source
- Fixed a few discrepancies in the remaining duplicate code paths
2013-06-24 12:03:57 -07:00
manuelk
876cf3bc86 fix GLFW problems with ptexViewer and paintTest
GLFW 3.0.1 made the reshape callback explicit. Since we are using it to setup some framebuffers,
we need to call this function ourselves before starting the main-loop.

fixes #181
2013-06-20 13:51:07 -07:00
manuelk
30ec963112 fix example code to work with GLFW 3.0
- fix FindGLFW.cmake to match the new locations

- fix all viewer & examples to build with 3.0, 3.0.1 and 3.0.2

Note : ptxViewer and paintTest do not work with 3.0.1 and 3.0.2 (yet)
2013-06-20 11:53:33 -07:00
Takahito Tejima
4148655197 correct indentation. 2013-06-20 00:12:33 -07:00
Takahito Tejima
bbb23c3f0f Fix FarVertexEditTablesFactory to partition vertexEdit batch correctly.
fixes #148
2013-06-20 00:05:44 -07:00
manuelk
f973356783 fix limitEval dropping non-quads
FarPatchMap was not creating root-level leaf-nodes in the quad-tree for non-quad faces.

fixes #180
2013-06-19 17:45:22 -07:00
manuelk
f91ac77711 Fix Gregory patches for bad heptagon geo.
Gregory patch shaders rely on a correct estimate of the maximum valence of the vertices in the mesh.

In the current feature adaptive analysis, we stop at level 1, the center vertex of the heptagon is
never traversed, and its high valence is therefore not recorded. The fix is to take advantage of the
first pass and use the number of vertices in the coarse faces to catch those high-sided non-quads that
would generate high valence vertices that may not be revisited in the second pass.
2013-06-19 17:34:20 -07:00
manuelk
dae55d68e2 fix FarPatchTables::GetNumFaces() and FarPatchTables::GetFaceVertices() :
These functions are exclusive to uniformly subdivided topology. With the recent refactoring
of PatchTables and the generalization of topology, uniform meshes only retain the topology
of the highest level of subdivision by default. These functions are now fixed to reflect the
change.
2013-06-19 16:31:06 -07:00
manuelk
f89d3614ba fix OsdMash to catch up with some of the 1.2 code refactoring - thanks Sheng for digging this one up.
fixes #178
2013-06-19 14:53:03 -07:00
manuelk
a419830ee8 OsdGLDrawRegistry : fixing an OSD error message prefix when program linking fails 2013-06-19 12:59:43 -07:00
manuelk
85be47a135 OsdGlMesh : adding accessors for the FarMesh and the VertexBuffer for Scot 2013-06-19 12:55:12 -07:00
Takahito Tejima
043044827f Fix a bug of patch level computation for non-quad faces. 2013-06-18 19:17:41 -07:00
manuelk
edfc9b4bb6 limitEval example : add the ability to read regular obj files as a command line argument (usefuly for debugging...) 2013-06-18 16:52:21 -07:00
Takahito Tejima
047a943bf2 Added an #ifdef around glew.h to avoid a conflict with gl.h in a client code. 2013-06-18 16:16:38 -07:00
manuelk
12f572946e fix read/write permissions on files 2013-06-18 15:02:46 -07:00
Takahito Tejima
3885c4a6f7 Fix bug of incorrect patchParam table splicing. 2013-06-18 14:07:32 -07:00
manuelk
d3e9bdbfee Merge branch 'release/v1_2_3' into dev 2013-06-17 19:36:14 -07:00
manuelk
12e25f076a Release 1.2.3 2013-06-17 19:35:29 -07:00
manuelk
bbe4435b19 minor API refactor of for EvalLimit :
- Replaced EvalData and EvalVertexData classes with a simpler DataStream class that only
  accesses a single data stream, binds and unbinds it

- DataStream has both an input and an output version which avoids much of the const-ness
  const-related ambiguity of the previous design pattern

- Vertex, varying and face-varying data now all have a dedicate struct (VertexData, VaryingData, FaceVaryingData)
  as a way of gathering the various data-streams required to perform sampling

- renamd some "Buffers" into "Tables" for better naming consistency with Far
2013-06-17 18:13:13 -07:00
David G Yu
077f95b8f0 Fixed a couple bugs/typos in simple_math.h 2013-06-14 09:55:55 -07:00
David G Yu
185e55b859 Fixed VS2010 error/warning 2013-06-14 09:54:38 -07:00
manuelk
cf13a8d755 Add check in shape_utils that detects dicsonnected vertices in a shape mesh and exits with an error message.
A more permanent fix will be to handle fully non-manifold topology at the Hbr level, but that is beyond the
scope of fixing this problem.

fixes #175
2013-06-13 16:22:59 -07:00
manuelk
795dec5fdc Merge branch 'dev' of github.com:PixarAnimationStudios/OpenSubdiv into dev 2013-06-13 14:02:08 -07:00
manuelk
54bef92aab switch cpuEvalLimitController to use a quad-tree based patch access map :
- remove PatchMap from FarPatchTables

- add a new FarPatchMap quad-tree class (constructed from FarPatchTables)

- refactor the EvalLimitController to use the quad-tree search instead of a
  serial loop access

fixes #174
2013-06-13 14:01:23 -07:00
manuelk
642bb27d68 fix FarPatchParm : adding version.h include 2013-06-11 17:25:54 -07:00
manuelk
fab0527f91 minor FarPatchTables::PatchMap code refactor :
- replace use of std::multimap with an std::sort
- refactor some methods into PatchParam
2013-06-11 15:59:43 -07:00
David G Yu
38c951a06c Fixed patch color override for uniform subdivision 2013-06-10 23:33:34 -07:00
David G Yu
61b8fb4713 Removed extraneous clipFlag declaration. 2013-06-10 23:00:38 -07:00
David G Yu
06701a8855 Removed examples/evalTest from examples/CMakeLists 2013-06-10 17:26:58 -07:00
David G Yu
6c487c5bac Deleted examples/evalTest 2013-06-10 17:24:34 -07:00
David G Yu
29afdfc8b3 Fixed GLSL transform feedback initialization. 2013-06-10 16:56:32 -07:00
David G Yu
f5f524322a Fixed VS2010 build warning/error 2013-06-10 16:32:45 -07:00
David G Yu
2b972f3117 Consolidated OpenGL includes into osd/opengl.h 2013-06-10 16:32:45 -07:00
David G Yu
967fc4db72 Fixed glsl shader portability edgeDistance
Moved all edgeDistance declarations to client shader code.
2013-06-10 16:32:45 -07:00
David G Yu
1461deb308 Fixed glsl shader portability (input,output) 2013-06-10 16:31:30 -07:00
David G Yu
ffe427dc65 Fixed glsl unsigned conversions in Gregory shaders 2013-06-10 16:21:48 -07:00
David G Yu
2551c32448 Fixed glsl shader portability
- defined a fallback value for ROTATE
- made GetPatchLevel() a macro to avoid
  referencing gl_PrimitiveID from vertex shaders
- fixed float array initializers
2013-06-10 16:21:47 -07:00
David G Yu
e1930e58cd Fixed some glsl preprocessor tests
Changed #if --> #ifdef for OSD_ENABLE_SCREENSPACE_TESSELLATION
2013-06-10 16:21:47 -07:00
David G Yu
c185968809 Updated glsl code texelFetchBuffer -> texelFetch
This allows us to remove unnecessary directives
to require GL_EXT_gpu_shader4
2013-06-10 16:21:47 -07:00
manuelk
7cb2463dc7 fix FarPatchTables::IsFeatureAdaptive() :
- trivial return if Gregory specific patch data is set
- or iterate through the patch-arrays until an adaptive patch is found (REGULAR,...,GREGORY_BOUNDARY)

fixes #173
2013-06-10 14:36:25 -07:00
manuelk
419b6b9716 - add a message to limitEval when trying to display face-varying UVs on shapes
that do not have that type of data

- fix some regression shapes that had "empty" uv values
  (including some minor topo surgery that luckily appears to not break
  regression baselines)
2013-06-07 17:53:23 -07:00
manuelk
cf1b2f1334 - fix a face-varying bug in shape_utils : now face-varying UVs are indexed correctly
coming out of our shape format

- set blue component of point-cloud to 0 in face-varying mode (save a few micro-secs)
2013-06-07 14:47:41 -07:00
manuelk
307b353b13 shape_utils : make sure we don't create a mesh with face-varying data declared
if the shape does not actually contain usable face-varying data.
2013-06-07 10:40:11 -07:00
manuelk
f5a7ad4cdb evalLimit example : make sure to reset the output buffer on creation - some of the prims may not
set all the point colors (if face-varying data is missing on the test shape for instance)
and we don't want random values creeping from unset memory allocations.
2013-06-07 10:38:10 -07:00
manuelk
c18cf5bff2 first pass at face-varying interpolation for CpuEvalLimit - still
a couple of kinks to be worked out...
2013-06-06 18:07:46 -07:00
Takahito Tejima
f0be0b5799 Fix bug : multi mesh wasn't working correctly. FarMultiMesh has to set meshIndex to FarKernelBatch.
fixes #170
2013-06-06 16:20:40 -07:00
manuelk
043369485c - adding varying data interpolation to the EvalLimit module
- minor refactoring of the LimitEvalContext to accomodate all the data buffers

- pushing some minor sub-patch functionality back to FarPatchParams

- extend example code with randomly generated varying vertex colors
2013-06-05 11:44:30 -07:00
Takahito Tejima
b0e8533ef4 Fix cmakefile and #ifdefs for opencl configuration. 2013-06-05 10:44:21 -07:00
manuelk
5fe38c3ac0 If Hbr carries no fvar data, then we shouldn't attempt to build fvar data tables in Far,
where the factory requests it or not...

fixes #169
2013-06-04 17:53:28 -07:00