Commit Graph

255 Commits

Author SHA1 Message Date
Campbell Barton
58587a3881 replace strncpy with BLI_strncpy, in some cases strncpy was being misused since it doesnt ensure \0 termination.
also dont call CTX_data_scene() twice when checking for function arguments.
2011-09-26 18:51:10 +00:00
Sergey Sharybin
a043133bab Fix for recent Campbell's commit. 2011-09-23 19:33:04 +00:00
Sergey Sharybin
799afc1aa4 Fix #28226: Selection highlighting is wrong when Solidify Modifier is used
Set origindices for edges/faces created for rim to ORIGINDEX_NONE.
Also discovered error in recent editmode VBO fix -- it used to crash
when comparing faces with ORIGINDEX_NONE original index.
2011-09-22 16:57:16 +00:00
Bastien Montagne
aa809e6f78 Minor: Bah, doxygen file's doc comments were also missing from warp and navmesh modifiers... 2011-09-22 12:00:24 +00:00
Bastien Montagne
b6bf57e2b0 Minor: Added doxygen file's doc comments in weightvg modifiers. 2011-09-22 11:52:42 +00:00
Sergey Sharybin
3449c0270a Another set of fixes for MSVC 2011-09-20 17:23:52 +00:00
Sergey Sharybin
9d1b4b63b3 Fix for recent commit:
- Some declarations after statement left.
- Do not use static inline functions in MOD_navmesh. It produces errors
  with msvc and not sure it's actually helps -- optimizer should
  make it inlined itself.
2011-09-20 17:06:17 +00:00
Sergey Sharybin
0169079bd1 Get rid of c++ in blenkernel and modifiers
Also use guarded allocations for navmesh stuff.
2011-09-20 16:24:50 +00:00
Dalai Felinto
b263aefb0e TexFace to Material Settings big patch
Summary:
========
The idea here is to move the texface options into the material panel.
For images with the change please visit:
http://code.blender.org/index.php/2011/09/bge-material-texface-changes

1 - Some of the legacy problems 2.49 and 2.5x has with the texface system:
==========================================================================
1.1) Shadow, Bilboard and Halo are mutual exclusive (in the code), yet you can
select a face to be more than one mode.
1.2) Sort only works for blend Alpha yet it's an option regardless of the
Transparency Blend you pick.
1.3) Shared doesn't affect anything in BGE.
1.4) ObColor only works for Text objects (old bitmap texts) when using Texture
Face Materials. (not address yet, I so far ignored obcolor)

2 - Notes:
============
2.1) Now "Use Face Textures" in material Option panel will work in Multitexture
even if there is no texture channel.

2.2) In FaceTexture mode it will use TexFace all the time, even if you don't
check the "Use Texture Face" option in the UI. It's a matter of decision, since
the code for either way is there. I decided by the solution that makes the
creation of a material fast - in this mode the user doesn't need to mess with
textures or this "Use Texture Face" option at all. I'm not strong in my opinion
here. But I think if we don't have this then what is the point of the Texture
Face mode?

2.3) I kept references for tface only when we need the image, UV or the tiling
setting. It should help later when/if we split the Image and UV layers from the
tface struct  (Campbell and Brecht proposal).

3 - Changes in a Nutshell:
==========================
3.1) "Texture Face" panel (in the Mesh/Object Data panel) no longer exists. Those settings are all part of the material properties, visible when Game Render is set.

3.2) "Texture Face" Shading mode (in the Render panel) is now called “Single Texture”, it needs a material for special settings (e.g. Billboard, Alpha Sort, …).

3.3) New options in the Material Panel
* Shadeless option in the Material panel is now supported for all three Shading modes.
* Physics is now toggleable, this is the old Collision option.
* Two Side (on) is now called Back Culling (off).
* Alpha Sort is one of the Alpha options, together (and mutually exclusive) to Alpha Blend, Alpha Clip, Add and Opaque (i.e. solid).
* Shadow, Billboard and Halo are grouped in the “Face Orientation” property.
* "Face Textures" and "Face Textures Alpha" (under Options) can be used for all but GLSL shading mode (to be supported in GLSL eventually).
* The backend in the game engine is still the same as before. The only changes are in the interface and in the way you need to think your materials. The bottomline is: It’s no longer possible to share materials between faces that do not share the same game properties.

4 - Acknowledgment:
==================
Mike Pan for the design discussions, and testing along the whole development process.
Vitor Balbio for the first hands-on code with the interface changes. That helped me a lot to push me into work on that.
Benoit Bolsee and Brecht van Lommel for patch review (* no one reviewed the whole patch, or the latest iteractions, so I still hold liability for any problems).
Blender artists that gave feedback and helped testing the patch.

Patch review and original documentation can be found here:
http://wiki.blender.org/index.php/User:Dfelinto/TexFace
http://codereview.appspot.com/4289041/
2011-09-19 19:55:59 +00:00
Campbell Barton
2222f536f8 use replace 0 with NULL for pointers, set some functions static
also fixed own errors in recent static check commit.
2011-09-16 08:20:21 +00:00
Bastien Montagne
84966d864b WeightVG: Made Edit and Proximity also use the new weightvg_update_vg MDeformWeight** parameter (to avoid another vgroup searching).
Also added to Proximity a check in case vgroup would have no vertices in it.
Plus a few minor edits...
2011-09-15 17:28:18 +00:00
Bastien Montagne
2f50579d9a WeightVG utils, weightvg_update_vg func updates.
* Added an optional array of MDeformModifier pointers, to avoid another search based on defgrp_idx.
* Split out "add/remove verts from vgroup" functions, preparing their move to deform.c (if their current form is validated!).
2011-09-15 16:06:00 +00:00
Bastien Montagne
f8af915b51 WeightVG Mix modifier: updated code to use defgrp_find_index, and make MDeformWeights be searched only once.
Also fixed a bug: when another set mode than "All Vertices" was used and resulting set of verts was empty, all vertices was used, instead of just returning org, unmodified data!
2011-09-15 14:48:50 +00:00
Bastien Montagne
761c44cbc1 Fix [#28654] Warp modifier does not support negative strength when Vertex Group is used.
The vg weight was multiplied by org strength (i.e. neg strength was always skiping all verts!), now multiplying it with abs value of strength.
2011-09-15 11:18:15 +00:00
Campbell Barton
4bd0a2ba2d replace VECCOPY -> copy_v3_v3, added copy_v*_v*_short too for typesafe copying, some parts of the code are copying float -> short normals without scaling. fix coming next. 2011-09-12 04:14:12 +00:00
Benoit Bolsee
b988a2abf8 Recast: fix bad level calls, Recast compiled out if BGE not enabled. SCons updated but not tested. 2011-09-11 14:13:04 +00:00
Campbell Barton
599cd56f53 minor edits / cleanup - no functional changes.
- use 'const float *' and array size in some function declarations.
- replace macros for BLI_math functions INPF, VECCOPY, VECADD etc.
- remove unused VertRen.clip struct member.
- remove static squared_dist() from 2 files, replace with BLI_math function len_squared_v3v3().
- use vertex arrays for drawing clipping background in the 3D viewport.
2011-09-11 02:50:01 +00:00
Campbell Barton
3a5f2272ad cmake edits to navmesh so includes are not added unless the game engines enabled. 2011-09-11 00:08:07 +00:00
Campbell Barton
01dca44a84 disable navmesh feature when building without the game engine. 2011-09-10 04:21:58 +00:00
Guillermo S. Romero
a7f3e347b7 SVN maintenance. 2011-09-09 22:02:12 +00:00
Benoit Bolsee
c1c4743696 svn merge -r 39975:40061 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-09 12:21:41 +00:00
Guillermo S. Romero
ae7401751c SVN maintenance. 2011-09-09 00:46:00 +00:00
Bastien Montagne
1f0bb0e035 Vertex Weight Proximity: minor updates and fixes.
*Updated UI code (replaced “row columns” by splits ;) ).
*Clamped global influence to [0.0, 1.0] range!
*Added/edited some tooltips for Proximity.
*Proximity distance mapping can now be reversed by entering Lowest Dist > Highest Dist.
*Moved mapping before masking in Proximity, much more sensible this way!
2011-09-08 07:36:59 +00:00
Bastien Montagne
698b8930fa Vertex Weight Proximity: fixing bug #28560 (memory leak). 2011-09-07 20:06:04 +00:00
Benoit Bolsee
dbd6658d73 svn merge -r 37306:39975 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-07 15:34:04 +00:00
Campbell Barton
520778163d interface + naming improvements to vertex wright modifier
- WeightVG -> Vertex Weight
- mapping_mode -> falloff_type
- nicer layout for VertexWeightModifiers add/remove options
2011-09-07 07:46:26 +00:00
Guillermo S. Romero
f6a64f4d79 SVN maintenance. 2011-09-07 07:06:43 +00:00
Campbell Barton
c643363905 svn merge -r39930:39947 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-06 00:31:00 +00:00
Lukas Toenne
8e0fe8bff7 Merged the particles-2010 branch with node improvements into trunk.
This branch adds mostly organizational improvements to the node system by renaming the node folders and files. A couple of internal features have been added too.
Detailed information can be found on the wiki page:

http://wiki.blender.org/index.php/User:Phonybone/Particles2010
2011-09-05 21:01:50 +00:00
Bastien Montagne
5a3c6ccadb Merging r39847 through r39930 from trunk into vgroup_modifiers. 2011-09-05 16:27:25 +00:00
Bastien Montagne
4393df9320 VGroup Modifiers: added mapping options to proximity and edit.
*Added Smooth/Sharp/Root/etc. mappings to WeightVGEdit modifier, in addition to custom curve one.
*Added Smooth/Sharp/Root/etc. mappings to WeightVGProximity modifier, without the custom curve one!
*Factorized the common mapping code into MOD_weightvg_util.
2011-09-05 16:16:00 +00:00
Campbell Barton
cc906e0e2a correct float -> double promotion warnings 2011-09-05 05:43:01 +00:00
Campbell Barton
e5209c2059 - vertex group modifiers isDisabled functions were incorrect, need to check if the string is set: == NULL will never be true.
- was doing NULL checks on freeing memory in cases where the values were already accessed (blender would have crashed anyway), so remove the NULL checks.
- use deform.c api weight functions to replace inline weight lookups in some cases.
- change if checks in weightvg_do_mask() so its more obvious whats going on.
2011-09-05 05:28:32 +00:00
Campbell Barton
2c740a9b5e rename vertex group mix "vgroup, vgroup2" to "vgroup_a, vgroup_b"
also clamp more values between 0.0 and 1.0
2011-09-05 04:53:23 +00:00
Campbell Barton
e8346fa84c simplify get_vert2ob_distance, mat4_to_loc_rot_size isnt needed. 2011-09-05 04:00:08 +00:00
Campbell Barton
1ba71e2caf change proximity method since minimum distance of 0.0 wasnt working at all. 2011-09-05 03:53:26 +00:00
Campbell Barton
5fd8ffd242 - mask_tex_map_obj --> mask_tex_map_object
- dont allow negative min distances
2011-09-05 03:26:49 +00:00
Campbell Barton
57411d1c5f minor edits.
- init proximity to 1.0f
- min/max proximity dist were not being copied.
- minor edits to comments - use ascii chars in a few places.
2011-09-05 03:09:49 +00:00
Sergey Sharybin
317908a330 Fix #28423: Screw-modifier crash in cunjunction with subsurf modifier
Problems was caused by angle=2*pi and steps=2 in screw modifier.
Such configuration produced duplicated geometry to close object
and it was confusing for subsurf cache.

Restrict steps=2 for screw modifier now, so now 3<=steps<=512.
2011-09-04 11:13:41 +00:00
Bastien Montagne
cd6f93bdc9 vgroup_modifiers: Definitively removed addtionnal mapping/clamping options in WeightVGEdit mod, including from DNA struct. 2011-08-23 12:33:45 +00:00
Bastien Montagne
58af2c36ac vgroup_modifiers: Removed (commented out, for now) addtionnal mapping/clamping options in WeightVGEdit mod, leaving the only curve mapping stuff.
Also, updated all three modifiers with new foreachTexLink walking func.
2011-08-17 13:07:51 +00:00
Bastien Montagne
236a94268e Merging r39199 through r39485 from trunk into vgroup_modifiers. 2011-08-17 11:11:43 +00:00
Campbell Barton
0b23d378fb fix [#28225] Solidify Modifier creates wrong results when vertex group is attached
infact this is not really a bug, irrespective zero vertex group weights gave overlapping geometry which isn't useful, add an option to set the thickness factor for zero weighted verts.
2011-08-14 06:43:58 +00:00
Brecht Van Lommel
c265a686d8 Modifiers: add callback to loop over each texture assigned to a modifier. 2011-08-12 18:11:22 +00:00
Bastien Montagne
97d4240911 Merging r38818 through r39198 from trunk into vgroup_modifiers. 2011-08-08 21:28:51 +00:00
Bastien Montagne
e2c24bac6c vgroup_modifiers: Now clamping output values to [0.0, 1.0] range (and added min/max mapping values for Prowimity modif). 2011-08-08 21:12:51 +00:00
Campbell Barton
af39f26360 fix, uvproject modifier wasn't copying the uv layer name,
also edit var names from recent commit to better fit with other functions.
2011-08-01 05:25:30 +00:00
Nicholas Bishop
6c3bb8b903 EditMesh-based skin node drawing 2011-07-31 02:03:48 +00:00
Nicholas Bishop
cae05598b1 Added DNA and RNA for skin modifier, stubbed in skin modifier functions 2011-07-31 02:03:28 +00:00
Bastien Montagne
a22f75606e vgroup_modifiers: Fixed last problems with WP mode, plus a small fix in weightvg_util.c.
It seems WeightVG modifiers can’t enable the eModifierTypeFlag_SupportsMapping flag...
2011-07-29 13:25:58 +00:00