Commit Graph

356 Commits

Author SHA1 Message Date
manuelk
7704d682d6 Reset default prim in glViewer code example to first in list 2014-10-13 11:27:43 -07:00
Takahito Tejima
c0907c7bc1 Introduces 'single-crease patch' : implements "Efficient Evaluation of Semi-Smooth Creases in
Catmull-Clark Subdivision Surfaces", Niessner et al, Eurographics 2012.

This change includes;
-topology identification for single-crease patch during adaptive refinement.
-patch array population (similar to boundary)
-sharpness buffer generation
-glsl shader

Eval stuffs will be coming.
2014-10-13 08:52:09 -07:00
manuelk
c30087cb52 Fix face-varying code in examples / tutorials to reflect changes in commit 4d84dfd7be 2014-10-10 11:57:43 -07:00
manuelk
a79832b3a1 Far::PatchTables re-factor & clean-up
- remove Descriptor iterators
- switch 'unsigned int' indices to typed Far::Index

We aren't done yet... but its a step in the right direction
2014-10-09 14:48:50 -07:00
manuelk
64610cacf7 Addng a regression shape to test face-varying boundary interpolation rules 2014-10-06 16:22:10 -07:00
manuelk
43c235b85d Adding 2 regression shapes to exercise face-varying interpolation code paths 2014-10-03 10:35:32 -07:00
manuelk
43493bb9ae Add support for bilinear stencils to the FarLimitStencilsFactory
- also update glSencilViewer code example to visualize the new stencil type
2014-10-02 16:09:17 -07:00
manuelk
431ee0fabb Fix boundary interpolation rule bug in glFVarViewer
- "propagate corner" rule was swapped with "always sharp" rule
2014-10-01 16:38:06 -07:00
manuelk
d898ab9779 Update glFVarViewer code example to match face-varying boundary policy changes in Sdc 2014-10-01 11:27:57 -07:00
manuelk
0d4582b34c Add 'sticles' to the glEvalLimit code example
Make the sample locations dynamic by adding a velocity vector. Face boundary
crossing is handled using the new ptex adjacency functionality recently
added to the Far::TopologyRefiner.
2014-09-30 18:53:47 -07:00
manuelk
82e7a1bcc5 Minor EvalLimit naming refactor
- also added some additional animation to the glEvalLimit code example
2014-09-22 16:01:43 -07:00
manuelk
d02bfc48d2 WIP on LimitStencilTablesFactory
- added an option to Far::StencilTablesFactory to generate stencils for
  coarse control vertices
- refactored interpolation code out into Far::PatchTables
- corrected tangent interpolation
- code cleanup & comments
2014-09-18 17:48:34 -07:00
manuelk
2e81594050 Fix GL_DEPTH_TEST in glStencilViewer 2014-09-17 17:52:37 -07:00
manuelk
cab8e0a038 Adding catmark_chaikin2 test shape
- this shape tests for Chakin rule around vertices with multiple incident creased edges
  (shows where Hbr is wrong)
2014-09-17 14:46:10 -07:00
Manuel Kraemer
4eb6450bfe Partial fix of bad tangents for arbitrary limit stencils 2014-09-13 07:38:12 -07:00
manuelk
c3cfb6824b Fix window title for glStencilViewer code example 2014-09-12 17:04:26 -07:00
manuelk
c66ee724a8 WIP limit stencils factory
todo:
- fix rotated tangents on patches
- add "end-caps" (bilinear or Gregory ?)
- add pure bilinear stencil mode
2014-09-12 16:59:16 -07:00
Takahito Tejima
0d6aaeeebe Fixes GL error caused by incomplete framebuffer on hud initialization. 2014-09-10 15:29:24 -07:00
Takahito Tejima
b3f6f52bb9 Fixes the bug of glShareTopology. This example mutates patchDescriptor in drawcontext, so it needs a write access.
Adding another GetPatchArray() returning non-const reference. We should think about better API for this.
2014-09-10 15:24:16 -07:00
manuelk
b07c3de607 Fix GL_DEPTH_TEST for GL code examples after adding image shader 2014-09-10 14:28:55 -07:00
manuelk
f784e2d958 Cosmetic update to glPaintTest code example
- added image shader to fill in background gradient
- fix retina display bug
2014-09-10 14:00:21 -07:00
manuelk
7323cdf2bb Cosmetic changes to glShareTopology
- add image shader to fill baground gradient
- fix retina display bug
2014-09-10 13:54:18 -07:00
manuelk
935b691f45 Cosmetic update to glEvalLimit
- add image shader to fill background gradient
2014-09-10 13:46:26 -07:00
manuelk
770ebfeb9c Cosmetic updates to glFVarViewer
- apply image shader on background (look consistent with glViewer)
- fix retina display bug
2014-09-10 13:17:52 -07:00
manuelk
c93a15b9df Extend export_obj.py Maya script to export uv set named 'map1' 2014-09-10 11:11:42 -07:00
manuelk
c399655dcc Landing 3.0.0.alpha
Sync'ing the 'dev' branch with the 'feature_3.0dev' branch at commit 68c6d11fc36761ae1a5e6cdc3457be16f2e9704a

The branch 'feature_3.0dev' is now locked and preserved for historical purposes.
2014-09-05 15:07:46 -07:00
Nicholas Yue
4d36cf8c3c Fix duplicate variables with identical name 2014-06-25 14:52:33 -07:00
manuelk
50874a5d00 Fix OSX Core Profile build
- remove obsolete glPushClient functions

note: this code is still duplicated in the ptexViewer (which still needs to be upgraded to the new framebuffer)

fixes #307
2014-05-28 12:39:43 -07:00
manuelk
84fcf01a40 Fixing broken build (forgot to remove WIP hbao from CMakeList) 2014-05-28 10:37:56 -07:00
Manuel Kraemer
8741687d20 Code cleanup for GLFrameBuffer in examples/common
- cleanup some duplicated code
- change the background color ramp function to make UI more readable
2014-05-27 07:20:57 -07:00
Takahito Tejima
46baf7af2f Fix Hud (d3d11) 2014-05-23 13:30:36 -07:00
Takahito Tejima
9a6c37b86d Fix Hud display for higher DPI (MBP retina) 2014-05-23 13:24:31 -07:00
Sergey Sharybin
6ef232c95a Integrate CLEW into osd library and examples
If the system has CLEW installed (which is detected by recently
added FindCLEW routines) then OpenSubduv would be compiled against
this library.

It makes binaries and libraries more portable across the systems,
so it's possible to run the same binary on systems with and without
OpenCL SDK installed.

The most annoying part of the change is updating examples to load
OpenCL libraries, but ideally code around controllers and interface
creation is to be de-duplicated anyway.

Based on the pull request #303 from Martijn Berger
2014-05-22 09:10:59 +02:00
David G. Yu
b28d470e9b Fixed build warnings/errors with VS2010 Pro 2014-05-19 09:23:22 -07:00
Sergey Sharybin
f6d45a6de0 Fix compilation error on windows+msvc2013
- Some missing includes of <algorithms> in order to have
  stdd::min() and similar functions.
- Need to cast numIndices and numNVerts to int explicitly
  in order to solve warning treated as an error about
  precision loss.
- Can't do vector[0] for an empty vector, it'll generate
  a runtime range check error.
- MSVC only works fine with make_pair(foo, bar) syntax,
  without explicit template substitution here. Otherwise
  weird 'can't cast int to int&&' errors are happening.
2014-05-17 12:52:02 -07:00
manuelk
da5db17d15 Fix framebuffer shader compiling for OSX
The driver apparently does not tolerate #version after a #define
2014-05-16 14:36:29 -07:00
manuelk
77b71a0446 Minor fixes to gl_hud and gl_framebuffer
- leave framebuffer off by default (and remove SSAO UI from examples)
- fix some resources leakage when toggling SSAO on/off
2014-05-16 13:38:25 -07:00
manuelk
9913e349df Adding a programmable image shader to gl_hud
- add a framebuffer to gl_hud with programmable image shader
- add optional SSAO image shader to the new framebuffer
- add screenshot to png functionality
- implement in glViewer

note: ptexViewer and some others still need refactoring to use the new hud capabilities
2014-05-15 13:53:43 -07:00
manuelk
5ff9edf4f9 Decrease compiler warning thresholds and fix outstanding warnings.
Note: this round fixes clang / gcc -Wetra warnings. More fixing remains for icc -w3 errors.
2014-05-15 13:34:32 -07:00
Takahito Tejima
efc8cddb18 examples: use GL timer query to measure the GPU draw timing more precisely. 2014-05-15 10:26:23 -07:00
Takahito Tejima
8cb0028db4 glViewer: use GL timer query to measure the GPU draw timing more precisely. 2014-05-15 09:32:47 -07:00
Manuel Kraemer
827efd14e3 Reorganize EvalLimitContext and EvalLimitController
Moved transient states (current vertex buffer etc) to controller.
ComputeContext becomes constant so that it's well suited for coarse-grain
parallelism on cpu.

Client-facing API has changed slightly - limitEval example has been adjusted
2014-05-10 17:55:50 -07:00
Takahito Tejima
4589453608 Added new example 'topologySharing'.
It tests vbo interleaving, aggregation, sharing topology, etc
2014-05-09 15:44:52 -07:00
Takahito Tejima
9aaacae853 Added interleaved buffer mode in glViewer 2014-05-09 15:44:52 -07:00
Takahito Tejima
ee061291b7 Interleaved buffer support in OsdCompute. Removed OsdVertexDescriptor and replaced with OsdVertexBufferDescriptor.
All kernels take offset/length/stride to apply subdivision partially in each vertex elements.

Also the offset can be used for client-based VBO aggregation, without modifying index buffers.
This is useful for topology sharing, in conjunction with glDrawElementsBaseVertex etc.
However, gregory patch shader fetches vertex buffer via texture buffer, which index should also
be offsetted too. Although gl_BaseVertexARB extension should be able to do that job, it's a
relatively new extension. So we use OsdBaseVertex() call to mitigate the compatibility
issue as clients can provide it in their way at least for the time being.
2014-05-09 15:44:52 -07:00
Takahito Tejima
2372eb45ef Add tbb kernel to glBatchViewer 2014-05-09 15:44:52 -07:00
Takahito Tejima
a786b2de15 enable GLSL compute kernel in glBatchViewer 2014-05-02 15:21:44 -07:00
Takahito Tejima
207cd494d5 glViewer: stop updating during freeze. 2014-05-02 14:19:08 -07:00
takahito-tejima
b59d67f501 Fixed ptexViewer build error on mac 2014-04-30 20:53:37 -07:00
manuelk
1284fa958b Minor cosmetic fixes to the HUD's font 2014-04-30 16:41:55 -07:00