Commit Graph

11078 Commits

Author SHA1 Message Date
Andre Susano Pinto
a06321d55c Implemented a find_nearest with heaps. This reachs a minimal number of distance queries.
But the cost of maintaining the heap seems to be very high.

For now DFS with local heuristics gets better times.. so BVHTree still uses that.
2008-08-18 19:31:40 +00:00
Andre Susano Pinto
2ce338f7e8 svn merge -r 16077:16174 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-08-18 14:33:26 +00:00
Andre Susano Pinto
a88eb64f70 Simpledeform origin is no longer attache to parent by default
That was due to a current limitation on dag system.. that leads to cyclic dependencies.

So now you can attach the origin of a simpledeform  to an empty and mark whether its
affected by the relative position of empty or the global one.

brecht found a workarround to solve the cyclic dependency by
using a parent of both the mesh and the control empty:

empty_parent
 |
 |-> empty controlling simpledeform
 |-> mesh with simpledeform modifier
2008-08-15 00:51:44 +00:00
Andre Susano Pinto
c37923c7a3 Fixed bug related to some missed rays-hits.. just a lack of a FLT_EPSILON 2008-08-14 15:37:47 +00:00
Andre Susano Pinto
8da4ad74e9 Added subsurface levels option to normal projection.
Now when doing normal projeciton is possible to ask it to project along the normals
that the vertex would have if it was subsurfaced... this gives "better" projections on
low polys.

Point of this commit is to add the feature request from Eclectiel
http://blenderartists.org/forum/showpost.php?p=1181531&postcount=9

workflow as Eclectiel wanted is now possible:

to archieve a nice low-res retopology that aproximates a high-res mesh when subsurfaced:
1 - make base low-poly retopo
2 - apply a shrinkwrap with projection along normal.. and with SS level = N (where N>0)
3 - add a Subsurface with level N
4 - run bretch's script (ss_fit)
2008-08-14 03:05:13 +00:00
Andre Susano Pinto
89be876f96 Fixed problem of "lack of normal information" 2008-08-13 20:18:56 +00:00
Andre Susano Pinto
43bf03580f svn merge -r 15988:16077 https://svn.blender.org/svnroot/bf-blender/trunk/blender
To have the 50% faster nearest_surface point.
Changed mesh_faces_nearest_point to return the face normal instead of collision normal
2008-08-13 19:22:35 +00:00
Andre Susano Pinto
6a8236a8da Fixed a typo
I was using the word "kept" (past tense) instead of "keep" (basic form).
I hope my english teachter dont sees this commit xD
2008-08-13 17:34:09 +00:00
Andre Susano Pinto
3713470204 Fixed compile for windows 2008-08-13 13:36:09 +00:00
Andre Susano Pinto
1e7e8ceaac fixed a bug related with "cullfaces" option on shrinkwrap
enabled openmp during the tree queries (before it was only enabled during tree building)
2008-08-13 01:38:13 +00:00
Andre Susano Pinto
c6de35e558 *Added documentation mainly at shrinkwrap.c
*removed commented code about the dropped shrinkwrap options
*Removed references to "cut plane", "limitMesh".. its now called "auxiliar target"

*Added option to shrinkwrap over an selected axis
*"Normal projection" mode is now called "projection" since it can now project over "normal, and any combination X, Y, Z"
2008-08-12 20:43:10 +00:00
Andre Susano Pinto
7e7d416f4d svn merge -r 15988:16055 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-08-11 13:29:38 +00:00
Andre Susano Pinto
991539d1c8 preparing to merge trunk (those files were sent to trunk) 2008-08-11 13:16:06 +00:00
Andre Susano Pinto
29a44ca927 Moved bvhtree_from_mesh api to its own files
BKE_bvhutils.h and intern/bvhutils.c
2008-08-07 15:18:47 +00:00
Andre Susano Pinto
0b533d022d Added several comments to BLI_kdopbvh
Changed BENCH to print both wall-clock/real time and cpu time
2008-08-07 14:26:27 +00:00
Andre Susano Pinto
523634ca17 svn merge -r 15908:15988 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-08-06 16:50:07 +00:00
Andre Susano Pinto
e57c5ef56c Fixed non_recursive BVHbuild with openmp
CHanged the BENCH functions to use: gettimeofday (wall time) instead of clock (cpu time)
This was to test if the openmp was working right.
2008-08-06 15:46:38 +00:00
Andre Susano Pinto
2d04b641d4 Just a tmp commit about bvhtree build
Theres something broken with BVHtree queries.. updates are not advised at all
2008-08-05 18:49:51 +00:00
Andre Susano Pinto
0008b1d424 Shrink BVHNode by 16bits 2008-08-04 20:30:57 +00:00
Andre Susano Pinto
a0f39107fd Made shrinkwrap variables be initialized when declared 2008-08-04 14:27:25 +00:00
Andre Susano Pinto
919eba04de SimpleDeform modifications:
* Added "Lock axis" options on taper and strech/squash (suggested by ZanQdo)
  * Better control of deform factor (suggested by ZanQdo)
  * Added eModifierTypeFlag_AcceptsCVs (so it now accepts both curves and meshes)
2008-08-04 13:12:35 +00:00
Andre Susano Pinto
d786fead10 Fixed double inflation in case of co_moving points 2008-08-04 11:50:36 +00:00
Andre Susano Pinto
c2cd6bebe6 added openmp support for bvhtree build (max processes = tree_type) 2008-08-03 15:37:24 +00:00
Andre Susano Pinto
ae5217733d Added shrinkwrap as a constraint.
All modes are available:
nearest surface
nearest vertex
normal projection (along X,Y or Z axis)
2008-08-03 02:02:15 +00:00
Andre Susano Pinto
289d875dfd svn merge -r 15688:15908 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-08-01 21:37:36 +00:00
Andre Susano Pinto
9e1ca2c1be Fixed simple deform strech/squash function 2008-07-25 23:52:16 +00:00
Andre Susano Pinto
1537e75cba Converted shrinkwrap to a DeformOnly modifier
*the options "remove faces", "merge" points were removed
*made shrinkwrap work with CVs (curves and nurbs surfaces)
*cleanup shrinkwrap code.. (removed bruteforces and raytree methods)
2008-07-25 18:48:24 +00:00
Andre Susano Pinto
aec6b78ded svn merge -r 15590:15688 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-07-22 12:02:57 +00:00
Andre Susano Pinto
06f67dd531 *BVHTreeFromMesh api changed.. it now stores all information like defaults callbacks to raycast and nearest surface (just to make it easier to use)
*Fixed button size of "Above surface"
2008-07-22 11:50:50 +00:00
Andre Susano Pinto
3c8b695f72 Fixed a bug relative to editmode..
now its calling CDDM_calc_normals when receiving a mesh to deform,
since in edit mode the mesh doenst has normals calculated
2008-07-21 22:36:05 +00:00
Andre Susano Pinto
4c76c57a77 Made shrinkwrap modifier work when target or cutPlane are in editmode. 2008-07-21 18:12:02 +00:00
Andre Susano Pinto
0703d9aad1 Following the same optimization as bvh raycast:
*Made nearest surface also use "quad" bvh tree (instead of splitting quads in 2 bvh nodes).
 Again that leaded to improvements in build and query time.

*BLI_bvhtree_find_nearest api is now following the same concept as BLI_bvhtree_ray_cast

removed code relative to bvhtree_from_mesh_tris.
2008-07-19 15:22:38 +00:00
Andre Susano Pinto
59a2b50171 *Added "kept" mesh above surface option on shrinkwrap to nearest surface
changed a few code relative to project over normal mode (to try to kept code generic and more independent of modifier itself)
2008-07-18 22:24:20 +00:00
Andre Susano Pinto
8d94bfec1b Last commit fixed the file contents.. but some svn props were missing.
So I fixed the problem with merges instead of copying files over.
Also trunk/blender/release/scripts/scripttemplate_ipo_gen.py from revision 14530 was missing. (that was fixed)

svn merge -r 15590:15551 https://svn.blender.org/svnroot/bf-blender/branches/soc-2008-jaguarandi (revert changes to the point where the merge was incorrect)
svn merge -r 15552:15572 https://svn.blender.org/svnroot/bf-blender/branches/soc-2008-jaguarandi (apply branch modifications)
svn merge -r 15392:15590 https://svn.blender.org/svnroot/bf-blender/trunk/blender (merge from trunk)
2008-07-15 21:08:39 +00:00
Andre Susano Pinto
afc30d1a33 There was a problem with the last merge :S
Somehow it didnt finished and didnt added some files under the svn control
(found thanks to lguillaume that reported some files were missing)

Last merge fixed and also merged modifications up to revision 15584.

I checked the diff
svn diff --new . --old https://svn.blender.org/svnroot/bf-blender/trunk/blender
And everything seems to be right now
2008-07-15 12:54:57 +00:00
Andre Susano Pinto
785123cc5a Improved build time on BLI_kdopbvh
Its now faster than raytree (both on build and query)

Things tryed:
 X=>Y=>Z=>X split (reduces build time.. but increases query time)
 bucket sorts
	(initial sorts for fast usage of bucket take a long time)
	(nth is linear.. so its quite fast already)

Best times archieve with:
 *usage of 4-ary trees.. reduces build time and tree size but didnt decreased query time
 *quads are on the same node instead of splitting in 2 tris..
	(this actually turned on speedup on query time.. since tree size is reduced by a factor of 2)
 *test ray-bb before ray-primitive gives better times on both tris and quads

Notes:
 measures where made projecting a sphere from inside the head of suzanne.
2008-07-14 18:42:53 +00:00
Andre Susano Pinto
70730c7226 svn merge -r 15392:15551 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-07-13 13:21:01 +00:00
Andre Susano Pinto
7d6e004153 Adding the Cullface option on normal projection of shrinkwrap when using bvhtrees 2008-07-13 01:49:53 +00:00
Andre Susano Pinto
21d032e919 Added sphere cast (tought it doenst seems to solve the intersection problem)
Fixed SweepingSphereIntersectsTriangleUV
2008-07-11 19:46:35 +00:00
Andre Susano Pinto
d674041f2b Add raycast ability for BLI_kdopbvh
small bvh fixes:
*allow to create any tree type >= 2
*save split axis

changed shrinkwrap to perform normal cast with raytree and bvh tree and print both times:

Shrinkwrap (OBCube)24578 over (OBSuzanne)504482
target = raytree_create_from_mesh(calc->target): 1260.000000ms
shrinkwrap_calc_normal_projection_raytree(&calc): 1850.000000ms
tree = bvhtree_from_mesh_tri(calc->target): 3330.000000ms
shrinkwrap_calc_normal_projection(&calc): 3780.000000ms

On general query time is bit smaller on bvh tree..
but the build time of bvh is pretty big.
(build time can be removed from both if a cache system is added)
But I am still trying to see how fast I can make the bvh build
2008-07-09 19:43:09 +00:00
Andre Susano Pinto
37a017b18a *Added vertex groups on simple deform
*Fixed a few UI things

*Make SimpleDeform and Shrinkwrap to use vertexgroup_get_vertex_weight, a similar function
 "static float vert_weight(MDeformVert *dvert, int group)"  existed on modifier.c, changed
it a bit and moved into BKE_deform.h
2008-07-04 19:56:31 +00:00
Andre Susano Pinto
ad310b5087 Added modes Squash and Strech to SimpleDeform (need testing)
CHanged the add modifier menu to show a submenu for selecting the type of simpledeform.
2008-07-04 01:03:50 +00:00
Andre Susano Pinto
eca709e481 Added lower and upper options on all modes of simple deform
Fixed existent offset after applying bend.
2008-07-02 00:17:08 +00:00
Andre Susano Pinto
c7dbc65488 svn merge -r 15292:15392 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-06-30 22:57:52 +00:00
Andre Susano Pinto
09c898bd65 Modifications on simple modifier
+Added limits on bend
+button to create an empty and make child of object
+empty is now relative to object
2008-06-27 16:45:37 +00:00
Andre Susano Pinto
9629f7ca11 Adding initial SimpleModifier (bend,taper,twist)
(I might only touch this code again late on the week :S, so here is a tmp commit)
2008-06-24 12:04:27 +00:00
Andre Susano Pinto
ac898d39ca Changed the style on shrinkwrapModifier_copyData.
Genscher made me do it the same way that the other 10 modifiers do.
The reason why I initially choosed memcpy was so that if anyone added
parameters on DNA there would be no need to update _copyData, unless
if it was a feature related to memory (eg.: point cache)
2008-06-23 16:23:26 +00:00
Andre Susano Pinto
0f8697b9d2 Fixed bug.. on shrinkwrap_copyModifier 2008-06-23 15:48:03 +00:00
Andre Susano Pinto
e426c7ce29 Added shrinkwrapModifier_isDisabled api function 2008-06-23 14:12:22 +00:00
Andre Susano Pinto
ffbe42129e svn merge -r 15202:15292 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-06-20 21:36:15 +00:00